java学习资料

视图、序列、索引、同义词

2018-05-02  本文已影响0人  一格命MrLixinyu

create view empvie10创建一个视图
as
select emopno,ename,job
from emp
where deptno = 10
逻辑上上的一个表,没有实际的保存数据,
视图根据查询表的数据变化,
只能引用查询表的数据
对emp做了一个不同视角的查询
视图一般只能管理员权限才能使用
对数据范围做一个权限,保护敏感数据;
限制其他用户对数据表的访问,
create or replace 创建或者替换
with read only 默认 只读选项
确保视图是不能进行增删改(dml)
序列
序列是按照一定规则能自动增加/减少数字的一种数据库对象
通常可以使用序列自动的生成主键值;
create sequence 创建序列
sequencename 序列对象的名字
increment by n 序列连续两个值之间的间隔n默认1
START WITH n :序列起始值n,该项省略,起始值为1
MAXVALUE n :序列最大值;NOMAXVALUE :指定序列无最大值
MINVALUE n :序列最小值;NOMINVALUE :指定序列无最小值
CYCLE|NOCYCLE:表示序列在达到最大值或最小值之后是否继续产生序列值,NOCYLE表示不再产生,NOCYLE是默认选项。
CACHE n|NOCACHE:表示序列值被服务器预先分配并存储在内存中,NOCACHE表示不预先分配并存储,CACHE 20是默认选项

CREATE SEQUENCE test_seq
START WITH 10 --序列从10开始
INCREMENT BY 2 --序列每次增加2
MAXVALUE 100 --序列最大值100
MINVALUE 9 --序列最小值9
CYCLE --序列循环,每次增加2,一直到100后回到9从新开始
CACHE 10; --缓存中序列值个数为10

NEXTVAL和CURRVAL伪列

CURRVAL:表示序列返回的当前值;
NEXTVAL:表示序列返回的下一个值;

CURRVAL在被引用之前,必须先使用NEXTVAL来产生一个序列值;

可用语句 序列名.CURRVAL或 序列名.NEXTVAL来访问序列
dual 测试的单行函数 仅有一行一列

序列用途

NEXTVAL和CURRVAL伪列
您可以在下列情况使用NEXTVAL 和 CURRVAL:
SELECT 语句的SELECT列表中,但不包括子查询中的SELECT语句
INSERT 语句中的子查询SELECT列表中
INSERT 语句的VALUES子句中
UPDATE 语句的SET子句中
下列情况不能使用 NEXTVAL 和 CURRVAL:
在视图的SELECT列表中
包含DISTINCT关键字的 SELECT语句中
含有 GROUP BY, HAVING, ORDER BY子句的SELECT语句中
SELECT, DELETE, UPDATE 语句的子查询中
含有 DEFAULT表达式的 CREATE TABLE、 ALTER TABLE 语句中

上一篇 下一篇

猜你喜欢

热点阅读