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 语句中