Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1466781
  • 博文数量: 416
  • 博客积分: 13005
  • 博客等级: 上将
  • 技术积分: 3297
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 16:26
文章分类

全部博文(416)

文章存档

2014年(1)

2013年(4)

2012年(46)

2011年(64)

2010年(12)

2009年(4)

2008年(40)

2007年(187)

2006年(58)

分类: Oracle

2007-02-02 09:46:02

创建视图 
修改一个视图最简单的方法是使用带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子句。 

阅读(831) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~