首頁 >資料庫 >mysql教程 >MYSQL中檢視的用法介紹(程式碼範例)

MYSQL中檢視的用法介紹(程式碼範例)

不言
不言轉載
2019-02-27 13:51:383033瀏覽

這篇文章帶給大家的內容是關於MYSQL中視圖的用法介紹(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

1、什麼是視圖

執行一SQL,將結果集保存在一張虛擬表中

(相關推薦: MySQL教學

2、為什麼要使用檢視

  1. #重複利用SQL語句

  2. 簡化SQL查詢,快速取數據

  3. 只用知道表的部分結構

  4. 保護數據,根據特定授權

  5. #更改資料格式和表示,視圖可傳回與底層表的表示和格式不同的資料。

注意事項
• 在檢視建立後,可以用與表格基本上相同的方式使用(查詢、篩選、排序資料、與其他檢視或連結、(新增、更新))
• 視圖只是用來查看儲存在別處的資料的設施,本身不包含數據,而傳回的資料也是從其他資料表檢索出來的。
• 因為視圖本身不包含數據,索引多個表連結或巢狀可能有效能問題,需測試

3、規則和限制

  1. 表格名稱必須唯一(與其他檢視和表格)

  2. 建立檢視沒有限制

  3. 足夠權限

  4. #視圖可以嵌套,可以從其他視圖查詢來建構一個視圖

  5. #如果視圖和從視圖查詢都有order by,視圖中的order by將會被覆寫

  6. 檢視不能索引

  7. #檢視可以和資料表一起使用

4、使用檢視

  1. 建立檢視create view

  2. 檢視建立檢視的語句。 Show create view viewname

  3. 刪除視圖drop view viewname

  4. 更新視圖,1⃣️ 先drop後create 2⃣️ 直接用create or replace view

  5. 利用視圖簡化複雜的連結查詢

#5、利用視圖簡化複雜的連結查詢


建立視圖

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

使用視圖

SELECT cust_name, cust_contact
FROM productcustomers
WHERE prod_id = 'TNT2';

6、用視圖重新格式化擷取的資料

select concat (rtrim(vend_name) , '(',rtrim(vend_country),')') as vend_title   from vendors order by vend_name;
如果常用到這個格式的話,可以建立一個檢視

CREATE VIEW vendorlocations AS
SELECT
    concat ( rtrim( vend_name ), '(', rtrim( vend_country ), ')' ) AS vend_title 
FROM
    vendors 
ORDER BY
    vend_name;
可以直接透過檢視查詢來得出結果

SELECT * FROM vendorlocations;
7、用檢視篩選不想要的資料

create view custmeremaillist AS
SELECT cust_id ,cust_name,cust_email
from customers
where cust_email is not NULL;

直接使用視圖

SELECT * from custmeremaillist ;

8、使用視圖與計算欄位


mysql查詢

SELECT
    prod_id,
    quantity,
    item_price,
    quantity * item_price AS expanded_price 
FROM
    orderitems
WHERE order_num=20005;
建立視圖#########################################
CREATE VIEW orderitemsexpanded AS
SELECT
    order_num,
    prod_id,
    quantity,
    item_price,
    quantity * item_price AS expanded_price 
FROM
    orderitems
WHERE order_num=20005;
###使用檢視###
SELECT
    *
FROM
    orderitemsexpanded
WHERE order_num=20005;
######9、更新檢視#########通常,檢視是可以更新的(insert、update、delete)。更新視圖將更新基底表。如果視圖中有以下定義將無法更新。 ###
1. 分组(group by 和 having)
2. 联结
3. 自查询
4. 并
5. 聚合函数(min()、count()、sum()等)
6. Distinct
7. 导出(计算)列
###所以檢視最好直接使用select查詢。 ############### ###

以上是MYSQL中檢視的用法介紹(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除