--10.schema object
Select * From t ;
--VIEWS
Create View view_t1 As Select Id From t;
Select * From view_t1; --简单视图,可以插入数据
Create View view_t (Id,Name,id_add) As Select Id,Name,Id+1 From t;
Select * From view_t; --复杂视图,不能插入数据
Alter Table t Add Constraint pk_t Primary Key(Id); --为表t的id字段增加主键pk_t,对表增加主键后,对视图同样有效
Create View view_t_readonly(Id,Name,id_add) As Select Id,Name,Id+1 From t With Read Only; --创建只读的视图
Select * From dba_constraints Where table_name ='VIEW_T_READONLY'; --查看readonly的约束 CONSTRAINT_TYPE O=READONLY
Create View view_t_check(Id,Name,id_add) As Select Id,Name,Id+1 From t Where Id<=10 With Check Option; --创建带判断条件的视图
Insert Into view_t_check(Id,Name) Values(5,'re');--允许
Insert Into view_t_check(Id,Name) Values(15,'re');--不允许,违反with check option
Select * From dba_constraints Where table_name ='VIEW_T_CHECK'; --查看With Check Option的约束 CONSTRAINT_TYPE V=With Check Option
Create View view_t2 As Select distinct Id From t; --带聚合函数的视图
Insert Into view_t2(Id) Values(11); --不允许,创建的视图,带聚合函数
--alter view当表被重新更改后,视图需要重新编译
Alter View view_t Compile;
--Sequences 序列
Create Sequence seq_test Increment By 1 Start With 1 Nomaxvalue Nominvalue ; --序列默认增长步长为1,默认从1开始,默认没有最大,最小值;cache是默认每次在内存中初始化多少个值
--cache=10时,每次初始化10个数,如果内存刷新,初始化未使用的数将会丢失,所有序列能保证唯一,不能保证连续
--cache-1时,性能将收到影响
Select seq_test.Nextval From dual; --查询序列的下一个值
--synonyms 同义词,对象的别名
Create Synonym syn_t For t; --创建表t的同义词syn_t
Select * From syn_t; --使用起来和表t一样
Create Synonym syn_t1 For System.t@dbl; --创建同义词syn_t1,封装dbl数据库下,system用户下的表t
--public synonym 公共同义词 不加public就是private synonym私有同义词
Create Public Synonym psyn_t For t; --创建t的共有同义词psyn_t,让所有用户都可以访问
Select * From dba_synonyms Where table_name = 'T';
--grant授权 其他用户访问前需要'授权'
Create User a Identified By a; --创建用户a
Grant Select On psyn_t To a; --对用户a授权同义词psyn_t的selec权限
Grant Insert,Update,Delete On t To a; --授予其他权限
Select * From dba_tab_privs Where grantee='A'; --查看用户a具备了哪些权限
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15810196/viewspace-1079755/
,如需转载,请注明出处,否则将追究法律责任。