mysql之3视图

视图是什么?

视图是一张虚拟的表,它其实就是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 查询文章名称和分类名称;

猜你喜欢

转载自blog.csdn.net/weixin_41111189/article/details/83411914
今日推荐