SQL创建视图,理解了什么是视图以及管理它们的规则和约束后,我们来创建视图。
视图用CREATE VIEW语句来创建。与CREATE TABLE一样,CREATE VIEW只能用于创建不存在的视图。
说明:视图重命名
删除视图,可以使用DROP语句,其语法为DROP VIEW viewname;
。覆盖(或更新)视图,必须先删除它,然后再重新创建。
利用视图简化复杂的联结
一个最常见的视图应用是隐藏复杂的SQL,这通常涉及联结。请看下面的例子:
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
,将列出订购了任意产品的顾客。
检索订购了产品RGAN01的顾客,可如下进行:
SELECT cust_name, cust_contact
FROM ProductCustomers
WHERE prod_id = 'RGAN01';
输出结果如下:
cust_name cust_contact
------------------- ------------------
Fun4All Denise L. Stephens
The Toy Store Kim Howard
这条语句通过WHERE子句从视图中检索特定数据。当DBMS处理此查询时,它将指定的WHERE子句添加到视图查询中已有的WHERE子句中,以便正确过滤数据。
可以看出,视图极大地简化了复杂SQL语句的使用。利用视图,可一次性编写基础的SQL,然后根据需要多次使用。
提示:创建可重用的视图
创建不绑定特定数据的视图是一种好办法。例如,上面创建的视图返回订购所有产品而不仅仅是RGAN01的顾客(这个视图先创建)。扩展视图的范围不仅使得它能被重用,而且可能更有用。这样做不需要创建和维护多个类似视图。
酷客网相关文章:
评论前必须登录!
注册