创建序列:
CREATE SEQUENCE name [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}]
INCREMENT BY n 一次增长n 个数字 NOMAXVALUE 缺省值10E+27 NOMINVALUE 缺省值1 NOCYCLE 不循环, 常用于唯一关键字 CACHE n 在内存里缓存n个序列,出错回退时会丢失
序列号的名称一般可以采用“表名_字段名”的命名规则
插入自动增长序列号字段的方法
INSERT时如果要用到从1开始自动增长的数字做唯一关键字, 应该先建立一个序列号.
20
CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1
MAXVALUE 99999 NOCYCLE NOCACHE;
其中最大的值按字段的长度来定,比如定义的自动增长的序列NUMBER , 最大值为999999
INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL
SQL> insert into s_dept(id, name, region_id) values (s_dept_id.nextval, 'finance', 2);
查询序列号的情况
SQL> select sequence_name, min_value, max_value, increment_by, last_number from user_sequences;
改变序列号
SQL> ALTER SEQUENCE sequence [INCREMENT BY n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}]; 注意: 不能改变它的起始值 如果要改变序列的起始值, 先把序列号删除掉, 再新建一个.
SQL>DROP SEQUENCE sequence;
视图的查询
有distinct的查询
有group by,having,order by的查询
有子查询的查询
表里的缺省值