Sivo 悉见

视图和表的区别

匿名 · 更新于 2013/11/19

表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。像上面的老兄说的一样视图就是一条语句,实际上视图从表中去数据。只是给我们的感觉好直接从表中取得一样。表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。      表和视图可以更新,但是视图的更新受到约束。
比如,
group   by

和表连接生成的视图不能更新表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。像上面的老兄说的一样视图就是一条语句,实际上视图

从表中去数据。只是给我们的感觉好像直接从表中取得一样。   

  

表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。  表和视图可以更新,但是视图的更新受到约束。  比如,group   by和表连接生成的视图不能更新对于INSERT   DELETE   UPDATE操作,视图要必须遵守规则      
比如
INSERT:    
所有列必须包含在
INSERT  
语句中,即使基表中的列可能为
NULL   或在基表中定义了 DEFAULT   约不能在 INSERT   语句的   VALUES   子句中指定   DEFAULT   关键字。    INSERT   语句提供的值必须符合在一个成员表的分区列上定义的   CHECK   约束逻辑。    如果一个成员表包含具有标识属性的列,则不能使用   INSERT   语句。     如果一个成员表包含   timestamp   列,则不能使用   INSERT   语句。    如果存在具有同一视图或任一员表的自联接,则不能使用   INSERT   语句