mysql之3檢視
阿新 • • 發佈:2018-11-03
檢視是什麼?
檢視是一張虛擬的表,它其實就是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 查詢文章名稱和分類名稱;