视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。
使用视图
- 视图使用CREATE VIEW语句来创建
- 使用SHOW CREATE VIEW viewname;来查看创建视图的语句
- 使用DROP VIEW viewname删除视图
输入
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的视图,它联结三个表。为检索订购了产品TNT2的客户,可以:
输入
SELECT cust_name,cust_contact
FROM productcustomers
WHERE prod_id = 'TNT2';
输出
使用视图重新格式化检索出的数据
输入
CREATE VIEW vendorlocations AS
SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')')
AS vend_title
FROM vendors
ORDER BY vend_name;
这样就创建了一个格式化的视图
输入
SELECT *
FROM vendorlocations;
输出
使用视图过滤不想要的数据
例如,可以定义一个customeremaillist视图,它过滤没有电子邮件地址的客户。
输入
CREATE VIEW customeremaillist AS
SELECT cust_id,cust_name,cust_email
FROM customers
WHERE cust_email IS NOT NULL;
输入
SELECT *
FROM customeremaillist;
输出
使用视图与计算字段
输入
CREATE VIEW orderitemsexpanded AS
SELECT order_num,
prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
FROM orderitems;
输入
SELECT *
FROM orderitemsexpanded;
输出