目的:
简化数据库操作,隐藏数据的复杂性。重新格式化底层数据或者保证他们的安全。
应用规则:
1.像表一样,必须唯一的命名视图(不能利用其他任何表或视图的名称来命名视图)
2.创建的视图没有数量限制,创建视图需要数据库管理员授权
3.视图可以嵌套,视图中可以使用order by(但是如果在从视图中检索数据的SELECT 中也使用了order by 视图的order by 会被覆盖)
4. 视图不能建立索引,也不能具有与他们关联的触发器或默认值
5.视图和表可以结合使用
操作规则
a.创建:create view viewname as (select 语句)
b.删除:drop view viewname
c.更新: 要更新视图,可以选择先删在创建。或者可以直接使用create or replace view viewname。如果视图不存在,将创建。否则,替换。
使用视图
1.简化复杂连接
Create view productcustomers AS
select cust_name,cust_contact.prod_id
from customer,orders,orderitems
where customers.cust_id=orders.cust_idand order.order_num =ordersitem.order_num
Select cust_name,cust_contact from productcustomers where prod_id='zhulu';
2.可以使用视图进行和计算字段。
3.更新视图(更多是指更新数据)
连接视图是指在一个视图的定义查询的from字句中引用了多个表或视图。而可更新的连接视图是指能够执行 UPDATE,INSERT,和 DELETE 操作的连接视图。为了保证视图是可更新的,其定义中不能包含以下语法结构:
集合操作符
DISTINCT 操作符
聚合函数或分析型函数
GROUP BY,ORDER BY,CONNECT BY,或 START WITH 字句
在 SELECT 之后的列表中使用集合表达式
在 SELECT 之后的列表中使用子查询
连接(join)(但是有例外情况)
对于不可更新的视图,可以利用 INSTEAD OF 触发器对其数据进行修改。
总结
视图的本身并不存在数据。
用户可以通过视图以不同形式来显示基表中的数据,视图的强大之处在于它能够根据不同用户的需要来对基表中的数据进行整理。视图常见的用途如下:
通过视图可以设定允许用户访问的列和数据行,从而为表提供了额外的安全控制 隐藏数据复杂性 .
视图中可以使用连接(join),用多个表中相关的列构成一个新的数据集。此视图就对用户隐藏了数据来源于多个表的事实