创建视图
修改一个视图最简单的方法是使用带OR REPLACE的 CREATE VIEW语句,这允许视图的旧版本被代替,避免了删除视图和重建视图的必要,要是删除了视图,你必须在新视图上重新给对象授权。
视图其实是提供一个窗口,让用户对视图所在的基表进行查询和数据操作,所以用户在视图上的修改会影响基表,要避免这种情况,应在CREATE VIEW语句中使用WITH READ ONLY选项,即把视图设置为只读。例如:
CREATE VIEW parts_456874_vu AS SELECT id_number, description, quantity
FROM inventory WHERE manufacturer_id = 456874 WITH READ ONLY;
要是WITH READ ONLY换成WITH CHECK OPTION,则指明只有允许被视图访问的行才能被插入或更新。
当视图定义包含了GROUP BY子句,关键字DISTINCT,或视图中没有包括基表中所有带NOT NULL 约束的列时,不能在视图上进行DML操作(包括删除,修改,插入数据)。
USER_VIEWS数据字典显示用户所拥有的视图的描述,ALL_VIEWS数据字典显示用户有权访问的视图的描述,ALL_OBJECTS数据字典显示用户有权访问的对象(包括视图)的信息,USER_OBJECTS数据字典显示用户所拥有的对象的描述。
在视图中进行插入操作,必须注意基表中带NOT NULL 约束的列不被忽略。
DESCRIBE 是SQL*PLUS命令,用于显示表和视图的结构,同义词,或指定函数和过程的详述。
视图实际上是一个逻辑表,可基于多个表或视图定义视图时不能包括ORDER BY子句。
阅读(775) | 评论(0) | 转发(0) |