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 查询文章名称和分类名称;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值