基本概念
视图是虚拟的表,不包含数据,其将有用的查询的结果包装成一个虚拟的表,方便之后的使用。
使用视图可以简化复杂的SQL操作,不需要访问整个表只需要访问特定部分,从而可以保护数据,可以给用户设定特定部分的访问权限
视图使用的规则
- 创建的视图数目没有限制
- 视图可以嵌套,与真实表的使用基本一致
- order by可以使用在视图中,但如果从该视图检索数据的select中也含有order by,那么该视图中的order by 会被覆盖
使用视图
- 创建视图
create view view_name as select...
创建名叫productcustomers的视图 ,它联结了三个表
create view productcustomers as
select cust_name,cust_contact,prod_id
from customers,orders,orderitems
where customers.cust_id =orders.cust_id
and orderitems.order_num=orders.order_num;
- 使用视图查询
select cust_name,cust_contact
from productcustomers
where prod_id='TNT2';
- 更新视图
视图是可更新的,和表一样,可以对其使用insert,update和delete。更新一个视图将更新其基表,对视图增加或删除行,实际上是对其基表增加或删除行。
不是所有的视图都可以更新,如果视图定义中存在分组、联结、子查询、并、聚集函数、DISTINCT以及导出列等操作,则其不能更新。
一般,我们将视图用于检索而不是更新。