视图是什么?
视图是一张虚拟的表,它其实就是sql语句查询返回的结果集;
先看个例子:
SELECT cust_name , cust_contact
FROM customers , orders,orderitems
WHERE customers.cust_id = orders.cust_id
AND orderitems.order_num = orders.order_num
AND pro_id = '223';
此查询用来检索订购了某个特定产品的客户。任何需要这个数据的人都必须理解相关表的结构,包括如何创建查询以及对表的联结。为了检索其他的产品的相同数据,必须修改最后的where字句。
现在,加入可以把这个查询包装成一个名为productcustomers的虚拟表,可以轻松的检索出相同的数据:
select cust_name , cust_contact
from productcustomers
where pro_id = '223';
那么如何创建视图呢?可通过如下所示:
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;
这条语句创建一个名为productcustomers的视图,他联结三个表用以返回已订购了任意产品的所有客户的列表。如果执行select * from productcustomers ,将列出订购了任意产品的客户。
如果我们要检索订购了id为223的产品的客户,可以使用如下:
SELECT cust_name, cust_contact
FROM productcustomers
WHERE pro_id = '223';
可以看出视图可以极大地简化复杂sql语句,利用视图编写一个基础的查询,可以在其基础上再做条件查询。
视图创建语句:create view viewname as sql查询
如:create view articlecategory as select article_name, cat_name from article as art left join article_cat as cat on art.cat_id=cat.id 查询文章名称和分类名称;
扫描二维码关注公众号,回复:
3916310 查看本文章