第一章第六节 SQL的使用(六)视图
视图为虚拟的表,它包含的不是数据而是根据需要检索数据的查询。视图可用来简化数据处理。
如对下面的SELECT语句。
1 | SELECT cust_name, cust_contact |
若将除最后一行外的所有查询包装为一个虚拟表ProCust,则检索简化为。
1 | SELECT cust_name, cust_contact |
视图的优点
视图有如下优点。
对视图的使用与对表的使用相同。
视图的限制
视图的创建与使用有如下限制。
创建视图
使用CREATE VIEW语句来创建,使用DROP VIEW删除视图,要更新视图,必须先DROP它然后再重新创建它。
利用视图简化复杂的联结
上述具体的视图ProCust的创建如下。
1 | CREATE VIEW ProCust AS |
利用视图,可一次性编写基础的SQL语句,再根据需要多次使用。
利用视图重新格式化检索数据
如之前使用的SQL语句如下
1 | SELECT CONCAT(vend_name, '(', vend_country, ')') FROM Vendors ORDER BY vend_name; |
将此查询定义为视图
1 | CREATE VIEW VenLoc AS |
也可以将视图应用于WHERE子句。
视图与计算字段
视图也可以简化计算字段的使用,如之前使用的SQL语句如下。
1 | SELECT prod_id, quantity, item_price, quantity*item_price FROM OrderItems WHERE order_num=20008; |
现将其转换为一个视图。
1 | CREATE VIEW OrderItemsEx AS |