--视图的语法 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 关键字表示约束对此前和此后的数据都不进行检查。也就是个失效关键字