做一个平台费用是多少,如何优化网站速度,怎么做网页超链接,网站标题被别人改了 应该怎么办目录
一、序列是什么
二、序列的用途
二、创建序列
三、查看、修改、删除序列
四、使用序列
#xff08;1#xff09;在插入语句中使用
#xff08;2#xff09;不在插入语句中使用
五、使用序列的例子 一、序列是什么
数据库对象分为#xff1a;用户、视图、索引…目录
一、序列是什么
二、序列的用途
二、创建序列
三、查看、修改、删除序列
四、使用序列
1在插入语句中使用
2不在插入语句中使用
五、使用序列的例子 一、序列是什么
数据库对象分为用户、视图、索引、触发器、存储过程、序列、图表 (Diagram)、规则 (Rule)、表、缺省值 (Default)序列是其中之一。
1个序列可以生成大量唯一数字可以把它理解为一个唯一数字生成器 二、序列的用途
主要用于实现oracle的自增长
mysql建表时可以在给主键添加auto increment实现自增长但是oracle没有提供自增长的机制只有通过“序列触发器”实现主键自增长 二、创建序列
create sequence 序列名 increment by 3 -- 每次加3个如果是-3就是每次减3 nomaxvalue -- 不设置最大值 【maxvalue 99 -- 设置最大值为99】 【minvalue 1 -- 设置最小值为1】 start with 1 -- 从1开始计数 //如果不指定默认从minvalue开始递增从maxvalue递减 NOCYCLE -- 不循环一直累加 CACHE 10; --在内存中预先创建10个序列需要用到就先直接从缓存取减少时间数字越大性能越好但占用内存也越大 order -- 产生的序列值有顺序比如第1个序列值是1第二个2..... 【noorder】 --无序 三、查看、修改、删除序列
查看desc 序列名
修改 alter sequence 序列名 maxvalue 200 cache 3; 重命名rename 旧序列名 to 新序列名;
删除drop sequence 序列名 四、使用序列
1在插入语句中使用
伪列CURRVAL返回当前第1次用必须先NEXTVAL生成序列号、NEXTVAL生成并返回下一个一个新的序列号 create sequence student_seq nomaxvalue start with 1 NOCYCLE order; insert into sutdent(sid,name) values(student_seq.NEXTVAL,‘王五’); 2不在插入语句中使用
select student_seq.NEXTVAL from dual; //dual表是系统数据库sys下的一个虚拟表 五、使用序列的例子
通过触发器实现oracle数据库中student表的主键自增长 第一步建表 create table student( int sid not null primary key, varchar name not null ) 第二步创建序列 -- 起始值为1步长为1没有最大值 CREATE SEQUENCE seq_student START WITH 1 INCREMENT BY 1 NOMAXVALUE; 第二步创建触发器 create or replace trigger student_trg before insert on studnet for each row begin select seq_student.nextval into :new.sid from dual; end;