1.视图:从一个或多个表/视图导出的表。视图是一个虚表,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义操作与视图相关联的基表。
①优点:为用户集中数据,简化查询和处理;屏蔽数据性的复杂性;简化用户权限管理;便于数据共享
②创建视图:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW [schema.]view_name /*FORCE强制创建,无论基表是否存在或拥有者是否有权限*/
[(column_name [...n])]
AS
select_statement
[WITH CHECK OPTION [CONSTRAINT constraint_name]] /*修改符合指定的限制条件,如age>30,只能向视图插入>30的值*/
[WITH READ ONLY] /*视图不能删、插入、更新,只能检索*/
③例:
CREATE OR REPLACE VIEW CS_KC_AVG(num,score_avg) /*在视图中显示的列名num,score_avg*/
AS
SELECT XH,AVG(CJ)
FROM CS_KC
GROUP BY XH;
④更新视图
可更新视图条件:单表;不使用连接函数、集合运算函数和组函数;创建视图的SELECT语句没有集合函数且没有GROUP BY、ONNECT BY、START WITH子句及DISTINCT关键字;不包含计算得到的列;不包含只读属性。
对视图的多表更新可用替代触发器。
⑤删除视图
DROP VIEW [schema.]view_name
2.同义词:给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称。公用、私有同义词
同义词可以指向的对象:表、视图、过程、函数、包和序列。创建了数据库链接后还可为远程数据库创建同义词。
①创建同义词
CREATE [PUBLIC] SYSNONYM [schema.]synonym_name /*PUBLIC表公用同义词,schema指定将要创建同义词所属的方案,默认当前用户*/
FOR [schema.]object [@dblink] /*@dblink表明同义词是远程数据库同义词*/
例:
CREATE SYNONYM SYSTEM.XS
FOR ADMIN.XS@MY_LINK;
②删除同义词
DROP [PUBLIC] SYNONYM [schema.]synonym_name /*schema指定要删除的同义词的用户方案*/
3.序列:通过提供唯一数值的顺序表来简化程序设计工作。不保证生成一串连续不断的值。
①创建/修改序列:使用过程中可修改递增量,不能修改当前值
CREATE|ALERT SEQUENCE [schema.] sequence_name /*序列名称*/
[INCREMENT BY integer] /*递增或递减值*/
[START WITH integer] /*初始值*/
[MAXVALUE integer|NOMAXVALUE] /*最大值*/
[MINVALUE integer|NOMINVALUE] /*最小值*/
[CYCLE|NOCYCLE] /*若循环,升序达到最大后生成最小,降序达到最小后生成最大;不循环达到极限后停止生成*/
[CACHE integer|NOCACHE] /*设置高速缓冲区*/
[ORDER|NOORDER] /*序列号是序列,否则按照次序生成*/
②例:
CREATE SEQUENCE ADMIN.SEQ_TEST
INCREMENT BY -2 START WITH 2000
MAXVALUE 2000
MINVALUE 1
CYCLE
CACHE 20
NOORDER;
③使用:
SELECT SEQ_TEST.NEXTVAL FROM dual; /*下一个值*/
SELECT SEQ_TEST.CURRVAL FROM dual; /*当前值,必须在进行NEXTVAL后用*/
④删除序列:
DROP SEQUENCE sequence_name;
①优点:为用户集中数据,简化查询和处理;屏蔽数据性的复杂性;简化用户权限管理;便于数据共享
②创建视图:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW [schema.]view_name /*FORCE强制创建,无论基表是否存在或拥有者是否有权限*/
[(column_name [...n])]
AS
select_statement
[WITH CHECK OPTION [CONSTRAINT constraint_name]] /*修改符合指定的限制条件,如age>30,只能向视图插入>30的值*/
[WITH READ ONLY] /*视图不能删、插入、更新,只能检索*/
③例:
CREATE OR REPLACE VIEW CS_KC_AVG(num,score_avg) /*在视图中显示的列名num,score_avg*/
AS
SELECT XH,AVG(CJ)
FROM CS_KC
GROUP BY XH;
④更新视图
可更新视图条件:单表;不使用连接函数、集合运算函数和组函数;创建视图的SELECT语句没有集合函数且没有GROUP BY、ONNECT BY、START WITH子句及DISTINCT关键字;不包含计算得到的列;不包含只读属性。
对视图的多表更新可用替代触发器。
⑤删除视图
DROP VIEW [schema.]view_name
2.同义词:给不同的用户使用数据库对象时提供一个简单的、唯一标识数据库对象的名称。公用、私有同义词
同义词可以指向的对象:表、视图、过程、函数、包和序列。创建了数据库链接后还可为远程数据库创建同义词。
①创建同义词
CREATE [PUBLIC] SYSNONYM [schema.]synonym_name /*PUBLIC表公用同义词,schema指定将要创建同义词所属的方案,默认当前用户*/
FOR [schema.]object [@dblink] /*@dblink表明同义词是远程数据库同义词*/
例:
CREATE SYNONYM SYSTEM.XS
FOR ADMIN.XS@MY_LINK;
②删除同义词
DROP [PUBLIC] SYNONYM [schema.]synonym_name /*schema指定要删除的同义词的用户方案*/
3.序列:通过提供唯一数值的顺序表来简化程序设计工作。不保证生成一串连续不断的值。
①创建/修改序列:使用过程中可修改递增量,不能修改当前值
CREATE|ALERT SEQUENCE [schema.] sequence_name /*序列名称*/
[INCREMENT BY integer] /*递增或递减值*/
[START WITH integer] /*初始值*/
[MAXVALUE integer|NOMAXVALUE] /*最大值*/
[MINVALUE integer|NOMINVALUE] /*最小值*/
[CYCLE|NOCYCLE] /*若循环,升序达到最大后生成最小,降序达到最小后生成最大;不循环达到极限后停止生成*/
[CACHE integer|NOCACHE] /*设置高速缓冲区*/
[ORDER|NOORDER] /*序列号是序列,否则按照次序生成*/
②例:
CREATE SEQUENCE ADMIN.SEQ_TEST
INCREMENT BY -2 START WITH 2000
MAXVALUE 2000
MINVALUE 1
CYCLE
CACHE 20
NOORDER;
③使用:
SELECT SEQ_TEST.NEXTVAL FROM dual; /*下一个值*/
SELECT SEQ_TEST.CURRVAL FROM dual; /*当前值,必须在进行NEXTVAL后用*/
④删除序列:
DROP SEQUENCE sequence_name;