Oracle序列和视图
序列
序列是按照一定规则提供连续数字的对象
序列可以是升序的,也可以是降序的
更简单的叙述,序列就是mysql和sql server中的自增
创建序列
使用CREATE SEQUENCE语句创建序列 从?开始
CREATE SEQUENCE 序列名 START WITH 1;--序列从1开始
start with 1–从1开始,定义序列的初始值(即产生的第一个值),默认为1
- increment by 1 --每次递增1,如果省略,则默认为1,如果出现负值,序列的值是按照步长递减的。
- MAXVALUE 2000 --最大2000,定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时系统能够产生的最大值是10的27次方,递减序列最大值是-1。
- MINVALUE 10 --最小10,MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时递减序列系统能够产生的最小值是10的26次方;对于递增序列最小值是1。
- NOCYCLE --表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环
- CACHE --定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。:对序列进行内存缓冲,可以改善序列性能。
- NEXTVAL --序列中下一个有效的值
- CURRVAL --当前值
通过序列的伪列来访问序列的值
SELECT sext_id.NEXTVAL FROM dual;--查询下一个值
SELECT sext_id.CURRVAL FROM dual;--查询当前值
序列的使用
INSERT INTO 表名 VALUES (序列名.nextval,name,age);
更改序列
将序列的步长改为3
ALTER SEQUENCE 序列名 increment by 3;
删除序列
DROP SEQUENCE 序列名;
视图
在创建视图的时候一定要赋给用户权限
视图以经过定制的方式显示来自一个或多个表的数据
视图可以视为'虚拟表'或'存储的查询'
创建视图所依据的表称为'基表'
视图的优点有
--提供了另外一种级别的表安全性
--隐藏的数据的复杂性
--简化的用户的SQL命令
--隔离基表结构的改变
--通过重命名列,另一个角度提供数据
创建视图
视图简单的来说:就是把一张表或多张表查询一边,然后保存起来,以后直接查询视图,不用在查多张表了。
CREATE VIEW 视图名 AS SELECT * from 表名;
创建带检查约束的视图
使用WITH CHECK OPTION 选项创建视图,当通过试图对底层表进行的 insert ,update 操作必须保证操作结果也在视图中,不允许操作后使视图中的数据减少
CREATE VIEW 视图名 AS SELECT * from 表名 WITH CHECK OPTION
使用ORDER BY 子句创建视图
CREATE VIEW 视图名 AS SELECT * from 表名 ORDER BY 字段名;
创建只读视图,该视图只可用于查询
CREATE VIEW 视图名 AS SELECT * from 表名 WITH READ ONLY;
创建链接视图
创建链接视图,注意:主键表中的列不能修改,主键表称为建保留表是指基于多个表所创建的视图,即定义视图的查询是一个连接查询。
主要目的是为了简化连接查询;
更新基表,视图也发生相应的更改
create view 视图名 as 两表联合查询;