MySQL:视图

视图是虚拟的表,只包含使用时动态检索数据的查询。

视图的使用方式和普通的表一样,那么为什么要使用视图呢?

1、视图的好处

回忆在联结讲解中举的例子:列出订购物品TNT2的所有客户信息,如果又需要列出物品ABC的所有信息呢,那么同样的SQL要再写一次,如果能够把整个查询包装成一个视图,那么就可以重用SQL,轻松地检索数据。另外,使用视图也可以保护数据,授予表的特定部分的访问权限而不是整张表的访问权限。

2、视图的使用

例1:创建一个可以返回订购任意产品的客户列表。

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`

 

 

订购了TNT2的用户信息:SELECT * FROM productcustomers WHERE prod_id='TNT2'

订购了ANV02的用户信息:SELECT * FROM productcustomers WHERE prod_id='ANV02'

例2:利用视图格式化检索后的数据,使用时可以直接用

供应商的名字vend_name和地区vend_city两列存为 “供应商名(地区)”的格式 

CREATE VIEW vendlocation AS
SELECT CONCAT(RTRIM(vend_name), '(', RTRIM(vend_city), ')') AS vend_title
FROM vendors ORDER BY vend_name

3、更新视图

更新一个视图将更新其基表,但是MySQL确定不了被更新的基数据的情况下不允许更新,也就是说存在分组、联结、子查询、并等操作都不允许视图的更新。

 

posted @ 2019-11-08 16:23  贾力  阅读(97)  评论(0编辑  收藏  举报