1. 视图作用和含义
视图以经过定制的方式显示来自一个或多个表的数据,可视为虚拟表或存储的查询;创建视图所依据的表被称为基表;
视图的优点:
提供另外一种级别的表安全性;
隐藏数据的复杂性;
简化用户sql命令;
隔离基表结构的改变;
通过重命名列,从另一个角度提供数据
2. 视图的使用
2.1 创建视图
create [or replace] [force] view 视图名称 as select语法 [with check option] [with read only]
force 即使基表不存在,先行建立视图,待基表建立后,视图可用
with check option 通过视图进行的修改,必须能通过视图看到修改后的结果
with read only 只读
2.2 查看视图:
select * from user_views;
2.3 更新视图
键保留表:
一个复杂视图,若需要出现键保留表则必须保证基表中至少有一张表是有主键的;其次,这两张表在进行关联时(可以是表连接也可以是多表查询,但一定要有关联条件,其关联条件相当于两表的主外键关系),如果关联条件使用主键的话,则外键表为键保留表。
在视图上可以使用修改数据的DML语句,但有一定限制:只能修改一个底层的基表;对于复杂视图,只能修改键保留表的列,不能更新非键保留表的列;
如果违反基表的约束条件,则无法更新视图;如果视图包含连接操作符、distinct关键字、集合操作符、聚合函数或group by 子句,则无法更新视图;如果视图包含伪列或表达式,则无法更新视图
2.3 删除视图
drop view 视图名