视图和表的区别
匿名 · 更新于 2013/11/19
表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。像上面的老兄说的一样视图就是一条语句,实际上视图从表中去数据。只是给我们的感觉好直接从表中取得一样。表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。 表和视图可以更新,但是视图的更新受到约束。
比如,
group by
和表连接生成的视图不能更新表是实实在在得保存数据的实体,写入的数据都保存在表中,而视图是不保存数据的,也没有数据。像上面的老兄说的一样视图就是一条语句,实际上视图
从表中去数据。只是给我们的感觉好像直接从表中取得一样。
表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。 表和视图可以更新,但是视图的更新受到约束。 比如,group by和表连接生成的视图不能更新对于INSERT DELETE UPDATE操作,视图要必须遵守规则
比如
INSERT:
所有列必须包含在
INSERT
语句中,即使基表中的列可能为
NULL 或在基表中定义了 DEFAULT 约不能在 INSERT 语句的 VALUES 子句中指定 DEFAULT 关键字。 INSERT 语句提供的值必须符合在一个成员表的分区列上定义的 CHECK 约束逻辑。 如果一个成员表包含具有标识属性的列,则不能使用 INSERT 语句。 如果一个成员表包含 timestamp 列,则不能使用 INSERT 语句。 如果存在具有同一视图或任一员表的自联接,则不能使用 INSERT 语句
