
方法和详细的 *** 作步骤如下:
1、第一步,打开HBuilder工具,并在Web项目的js文件夹中创建一个新的JavaScript文件ConnDBjs,使用require()引入mysql模块,然后将该值分配给变量mysq,见下图,转到下面的步骤。
2、第二步,完成上述步骤后,调用createConnection()方法设置主机,用户名,密码,端口并返回数据,见下图,转到下面的步骤。
3、第三步,完成上述步骤后,调用mysql模块中的connect()方法以连接到mysql数据,见下图,转到下面的步骤。
4、第四步,完成上述步骤后,编写查询语句SQL并将其作为字符串分配给变量sq,见下图,转到下面的步骤。
5、第五步,完成上述步骤后,调用query(),根据返回值判断结果,然后打印返回,见下图。这样,就解决了这个问题了。
应该是
select
{字段名}
from
{数据表名}
where
字段名
like
'%上海%'
条件中应该是某个字段内的值中包含上海,你写的是数据表名
sequence是序列号的意思,每次取的时候它会自动增加。sequence与表没有从属关系,与表一样属于用户。
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。
1、Create Sequence语法
首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,CREATE SEQUENCE emp_sequence
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;
一旦定义了emp_sequence,你就可以用CURRVAL,NEXTVAL
CURRVAL=返回 sequence的当前值
NEXTVAL=增加sequence的值,然后返回 sequence 值
比如:
emp_sequenceCURRVAL
emp_sequenceNEXTVAL
可以使用sequence的地方:
- 不包含子查询、snapshot、VIEW的 SELECT 语句
- INSERT语句的子查询中
- NSERT语句的VALUES中
- UPDATE 的 SET中
可以看如下例子:
INSERT INTO emp VALUES
(empseqnextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);
SELECT empseqcurrval FROM DUAL;
但是要注意的是:
第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。
一次NEXTVAL会增加一次SEQUENCE的值。但是如果你在同一个条SQL语句里面针对同一个sequence使用多次NEXTVAL,其值都是一样的。
如果指定CACHE值,ORACLE就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,oracle自动再取一组到cache。
使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失 所以可以在create sequence的时候用nocache防止这种情况。
2、Alter Sequence
你或者是该sequence的owner,或者有ALTER ANY SEQUENCE 权限才能改动sequence 可以alter除start至以外的所有sequence参数如果想要改变start值,必须 drop sequence 再 re-create
Alter sequence 的例子:
ALTER SEQUENCE emp_sequence
INCREMENT BY 10
MAXVALUE 10000
CYCLE -- 到10000后从头开始
NOCACHE ;
影响Sequence的初始化参数:
SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。
可以很简单的Drop Sequence
DROP SEQUENCE order_seq;
修改sequence参数:
拥有ALTER ANY SEQUENCE 权限才能改动sequence 可以alter除start至以外的所有sequence参数如果想要改变start值,必须 drop sequence再create。例:
alter sequence SEQ maxvalue 9999999;
alter sequence SEQ cache 10;
在Sql语句中可以使用sequence的地方:
(1)不包含子查询、snapshot、VIEW的 SELECT 语句
(2)INSERT语句的子查询中
(3)INSERT语句的values中
(4)UPDATE 的 SET中
例如:
insert into student(id,name) values(seqNextval,'jack');
注意:
第一次NEXTVAL返回的是初始值,随后的NEXTVAL会返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则报如下错误:
ORA-08002 序列currval尚未在会话中定义。
使用一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你多次执行包含NEXTVAL的一条语句,其值就是不一样的。
删除sequence:drop sequence seq_a;
当删除sequence后,对应它的同义词会被保留,但是引用时会报错。
oracle为了在rac环境下为了sequence的一致性,使用了三种锁:row cache lock、SQ锁、SV锁。
row cache lock的目的是在sequence指定nocache的情况下调用sequencenextval过程中保证序列的顺序性;
SQ锁是应用于指定了cache+noorder的情况下调用sequencenextval过程中。
SV 锁(dfs lock handel) 是调用sequencenextval期间拥有的锁。前提是创建sequence时指定了
cache 和order属性 (cache+order)。order参数的目的是为了在RAC上节点之间生成sequence的顺序得到保障。
扩展资料:
定义Sequence:定义一个seq_test,最小值为10000,最大值为99999999999999999,从20000开始,增量的步长为1,缓存为20的循环排序Sequence。
定义方法:
create sequence seq_test
minvalue 10000
maxvalue 99999999999999999
start with 20000
increment by 1
cache 20
cycle
order;
DB2的写法:
create sequence seq_test
as bigint
start with 20000
increment by 1
minvalue 10000
maxvalue 99999999999999999
cycle
cache 20
order;
PostgreSQL的写法:
create sequence seq_test
increment by 1
minvalue 10000
maxvalue 99999999999999999
start 20000
cache 20
cycle;
二、Oracle、DB2、PostgreSQL数据库Sequence值的引用参数为:currval、nextval,分别表示当前值和下一个值。下面分别从三个数据库的Sequence中获取nextval的值。
Oracle中:seq_testnextval
例如:select seq_testnextval from dual;
DB2中:nextval for SEQ_TOPICMS
例如:values nextval for seq_test;
PostgreSQL中:nextval(seq_test)
例如:select nextval('seq_test');
三、Sequence与indentity的区别与联系
Sequence与indentity的基本作用都差不多。都可以生成自增数字序列。
Sequence是数据库系统中的一个对象,可以在整个数据库中使用,和表没有任何关系;indentity仅仅是指定在表中某一列上,作用范围就是这个表。
四、postgresql中的Sequence分配策略(postgresql83x)
调用select nextval(seq_test);后,系统马上分配一个序号给用户,然后系统的次Sequence马上加上之前设置的步长(increment by 1),不论此序号用户是否使用。
调用select currval(seq_test);返回当前的序列号,该序列号只要没有使用,就不会变化,直到被使用后,才会变化,并且该序列号已经分配给当前请求,不会再分配给其他的请求。
所以,减少浪费时,使用currval,不在乎浪费,而且id不连续的话,可以使用nextval。因为一旦分配给你后,使用失败,将会把该序列号丢弃!
参考资料:
参考资料:
MySQL 创建数据库
创建数据库就是在系统磁盘上划分一块区域用于存储和管理数据,管理员可以为用户创建数据库,被分配了权限的用户可以自己创建数据库。
需要更多主流数据库创建方法的知友可以看看下面这篇文章:
数据库怎么创建?4种流行数据库的创建方法介绍_树懒学堂
MySQL中创建数据库的基本语法格式如下:
其中“db_name”是将要创建的数据库名称,该名称不能与已经存在的数据库重名。
例子:创建数据库
创建数据库 shulanxt,输入语句如下:
按回车键执行语句,创建名为shulanxt的数据库。
鼠标右键点击连接名称,然后点击“打开连接”
创建数据库
第1步,创建数据库
点击菜单栏“查询”下的“新建查询,就可以打开输入sql语句的地方。
然后输入创建数据库的sql语句,点击运行,可以看到sql语句执行结果。
鼠标右键连接名称,选择“刷新”,就可以看到创建的数据库了
第2步,修改数据库编码
因为我们数据库里会存放中文内容,所以需要修改数据库编码,不然会面会报错。按下图设置数据库的编码。
修改完,点击“确定”按钮。
创建表
数据库shop名称前面的图标是灰色的,表示当前没有使用这个数据库。
在数据库名称上鼠标右键,选择“打开数据库”。
点击数据库(shop)下的查询,鼠标右键选中“新建查询”。以这种方式打开的查询编辑器里的sql语句都是针对当前这个数据库的。
在查询编辑器里输入下面创建商品表(Product)的sql语句,点击“运行”按钮就会执行sql语句。
-- 创建商品表(Product) CREATE TABLE Product (product_id CHAR(4) NOT NULL, product_name VARCHAR(100) NOT NULL, product_type VARCHAR(32) NOT NULL, sale_price INTEGER , purchase_price INTEGER , regist_date DATE , PRIMARY KEY (product_id));
鼠标右键点击“表”,选中“刷新”,我们就可以看到创建的表。双击表名,可以看到创建的表和sql语句里定义的一样。
插入数据
点击下图红框的地方,我们回到刚才写sql语句的查询编辑器里。
在查询编辑器里写入下面插入数据的sql语句。
-- 插入数据 INSERT INTO Product VALUES ('0001', 'T恤' ,'衣服', 1000, 500, '2009-09-20'); INSERT INTO Product VALUES ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11'); INSERT INTO Product VALUES ('0003', '运动T恤', '衣服', 4000, 2800, NULL); INSERT INTO Product VALUES ('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20'); INSERT INTO Product VALUES ('0005', '高压锅', '厨房用具', 6800, 5000, '2009-01-15'); INSERT INTO Product VALUES ('0006', '叉子', '厨房用具', 500, NULL, '2009-09-20'); INSERT INTO Product VALUES ('0007', '擦菜板', '厨房用具', 880, 790, '2008-04-28'); INSERT INTO Product VALUES ('0008', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');
这时候不要点击“运行”,因为运行会把这个“查询编辑器”里所有的sql都执行一遍。但是创建表的sql语句刚才我们已经执行过了,现在只需要执行创建数据的sql语句。
首先,用鼠标选中要执行的那部分sql语句。
然后点击下图红框的地方,就会只执行选中的sql语句。
我们可以通过界面下方的sql执行结果,看sql运行是否有报错,如果没有报错,表示sql运行成功。
双击表名,我们就可以看到已经插入的数据。
ps:如果你之前打开过表,会遇到下面的问题
出现运行选中代码后,product表未生成数据。
解决办法:按下图 *** 作先关掉打开的表,然后重新打开
我们按下图顺序 *** 作,将刚才的sql语句保存下来,万一以后需要。
保存后的sql语句,可以在下图红框的地方看到
我们也可以把创建数据库的sql语句保存下来。
我们可以看到,创建数据库的语句保存在连接名下(图中红色的部分),因为这部分语句是创建数据库的,不针对任何特定的数据库。
而数据库shop下创建的sql语句保存在它自己的查询里面(图中蓝色部分),表示这里的语句是针对这个特定的数据库的 *** 作。
双击保存的查询名称,可以再次打开查询编辑器,对sql进行编辑。
导出数据库
按下图 *** 作我们将数据库导出成文件。这样以后你可以将文件分享给其他人,别人也可以使用你的数据库,或者作为数据库的备份,哪天你数据库里的数据丢了,可以使用这个文件恢复。
导出成功后,我们就可以在刚才保存文件的路径下看到这个sql脚本文件后缀是sql,这种类型的文件叫做sql脚本文件。
我们使用软件notepad++打开sql脚本文件(windows用notepad++,在mac上可以用sublime text),没有这个软件的去官网下载一个,这个软件可以打开各种类型的文件,是技术学习的必备工具。
打开后可以看到sql脚本文件,就是我们刚才写的sql语句,还有软件导出时自动加了些sql语句。所以sql脚本文件就是一个包括了sql语句,文件名后缀是sql的文件。
如果你有特别留意的话,会发现我们刚才导出的sql脚本文件里,有这样一句sql:
DROP TABLE IF EXISTS `product`;
也就是说,如果数据库里已经有这个表了,那么就删除表以后再执行后面的sql语句。
因为有时候数据库里面表了,如果没有这一句会报错。
导入sql脚本文件
按下图 *** 作把刚才的sql文件导入数据库里。
选择要导入的sql脚本文件,其他默认,然后点击开始。
出现下面的信息,表示导入成功。如果不是下面的信息,表示导入有错误,具体查看报错信息,根据报错信息顺藤摸瓜来解决。
导入成功后,点击关闭。刷新数据库可以看到导入的数据。
Mick《sql基础教程》里的数据如何导入数据库里?
前面我们演示了创建数据库、在哪写sql语句、导出sql脚本文件,导入sql脚本文件,知道了sql脚本文件是怎么来的。现在我们回到Mick《sql基础教程》中的第1章的1-3《SQ概要:sql语句及其种类》(对应书里第32页)。
我们看如何把书中说的sql脚本文件(CreateTableProductsql)导入数据库里。
为了演示整个过程,我们把刚才创建的表删掉。
第1步,修改sql脚本文件
用notepad++打开sql脚本文件,瞅瞅里面有啥。
我们看到里面是创建表和增加数据的sql语句。
因为有时候导入数据会报错,当再次运行导入sql脚本文件,会报类似下面的错误:表已经存在。
为了防止上面的错误,我一般都会在建立表的sql前面加上这么一句(product是表名,根据你的实际需求,修改成你对应的表名):
-- 表存在时,先删除表 DROP TABLE IF EXISTS Product;
第2步,创建数据库
因为我们前面已经创建了数据库。后面导入数据,如果没有数据库,需要先创建数据库。
第3步,导入sql脚本文件
按下图步骤 *** 作
导入结果显示未成功(Unsuccessfully),我们看如何根据报错信息顺藤摸瓜找到原因。
将下图1处的下拉框拉到最上面,我们就可以看到详细的报错信息是: [Err] 1366 - Incorrect string value: "\xD0\xF4" for column。
把这个报错信息放到搜索引擎中,很快就可以找到解决方案。报错原因是因为编码的问题。
或者报下面的错误:
解决办法:用notepad++打开sql脚本文件,然后按下图修改sql脚本文件编码:
在notpad++中设置好编码以后,记得点击“保存”使sql脚本文件修改生效。
我将修改编码后的sql脚本文件保存到下面这个文件里了
再次运行导入sql文件,执行成功。刷新表,可以看到导入的数据。
以上就是关于JAVASCRIPT如何 *** 作数据库全部的内容,包括:JAVASCRIPT如何 *** 作数据库、access数据库在sq视图中如何模糊查询数据表中的数据、sql中sequence的用法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)