1. 程式人生 > >mysql之3檢視

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 查詢文章名稱和分類名稱;