Oracle视图的使用

--视图的语法
create [ or replace ] [NO Force | Force] View
schema.view_name--视图名称
[(alias,...)inline_constraint(s)]--视图的字段别名或内联约束
[out_of_line_constraint(s)]--也是视图的约束
as
subquery--视图的查询语句
[With {Read Only | Check Option [Constraint constraint_name]}]--视图的约束

--关键字No Force和Force
No Force :表示不强制创建视图。也是默认项。
Force :表示强制创建视图,也就是如果查询的表不存在,也可以创建该视图。但视图创建后在创建视图引用的源表,这样视图才有意义。
--关键字 With Read Only 和 With Check Option
With Read Only :是视图的约束关键字,表示视图只读。不可以更改视图数据。默认情况是可以更改视图数据的。
With Check Option :是视图的约束关键字,表示视图在更改数据时,必须满足视图查询源表语句where 关键字后的条件。


--视图介绍:其实视图也是虚表,但视图拥有表一样的特性,可以更改数据信息,添加约束信息。
--就是视图可以使用Insert、Update、Delete关键字操纵视图数据。也可以给视图添加Primary Key(主键)、Foreign Key(外键)、Uniqen(唯一)、Check(检查)的约束。
--无论是修改视图数据或修改视图的约束都跟修改表的格式相同。
--实例
Alter view view_name
Add pk_view_name
Primary key (view_name.column_name);

--具体将就With Check Option关键字的含义
create view Force View_Test
as
select id,Name,Age from table_name
where id>10
With Check Option;

--表示视图View_Test如果在使用Insert、Update、Delete语句时必须满足Id>10这个条件。



--这里具体讲解下创建带列的视图,这样的视图虽然不常用,还是了解下吧
create Or replace view View_test1
(
id,
name constraint name_unq unique Rely disable novalidate,
Address,
Remark,
constraint pk_view_test_id primary key (id) rely disable novalidate
)
as 
select id,name,Address,Remark from Table_name1
where id>20
with check option;
--constraint name_unq unique Rely disable novalidate
采用inline方式对列创建unique约束
--constraint pk_view_test_id primary key (id) rely disable novalidate
采用out_of_line方式为视图View_test1设置主键约束。
--Rely disable novalidate
关键字表示约束对此前和此后的数据都不进行检查。也就是个失效关键字

 

posted on 2017-03-15 20:16  拿着菜刀  阅读(3348)  评论(0)    收藏  举报

导航