一、CREATE VIEW语句创建视图
语法格式为:
CREATE [OR PLACE] [FORCE|NOFORCE] VIEW [<用户方案名>.]<视图名> [(<列名>[,....n])]
AS
<SELECT 查询语句>
[WITH CHECK OPTION [ CONSTRAINT<约束名>] ]
[WITH READ ONIY]
(1)OR REPLACE:在创建视图时,如果已有同名视图,则重新创建。
(2)FORCE:表示强制创建一个视图,无论视图的基表是否存在或拥有者是否有权限,NOFORCE则相反,默认为NOFORCE。
(3)列名:可以自定义视图中包含的列。
(4)SELECT查询语句:可在SELECT 语句中查询多个表或视图,以表明新创建的视图所参照的表或视图。
(5)WITH CHECK OPTION:在视图上所进行的修改都要符合SELECT语句所指的限制条件。这样可以确保数据修改后,仍可通过视图查询到修改的数据。
(6)WITH READ ONLY:规定视图中不能执行删除、插入、更新操作,只能检索数据。
【例1】创建CS_KC视图,包括计算机专业各学生的学号、其选修的课程号及成绩。要保证对该视图的修改要符合专业为“计算机”这个条件。
【例2】创建计算机专业学生的平均成绩视图CS_KC_AVG,包括学号和平均成绩。
二、查询视图
视图定义后,可如查询表那样对视图进行查询。
三、更新视图
1、插入数据
2、修改数据
使用UPDATE语句可以通过视图修改基本表的数据。
【例】将CS_XS视图中所有学生的总学分增加8分。
注:视图依赖多个基本表时,一次修改只能更改一个表中值,不能跨表修改。
3、删除数据
使用DELETE语句。
【例】删除视图CS_XS中学号为151115的学生的记录
四、修改图
Oracle系统中,没有单独的修改视图的语句,修改视图定义的雨具就是创建视图的语句。
修改视图而不是删除和重建视图的好处是,相关权限依然存在,系统不会将其作为不同的视图来对待。
【例】修改视图CS_KC的定义,增加姓名,课程名和成绩等字段。
五、删除视图
DROP VIEW语句
格式:DROP VIEW <视图名>
【例】