91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MYSQL中視圖如何使用

發布時間:2020-10-10 17:52:58 來源:億速云 閱讀:182 作者:小新 欄目:MySQL數據庫

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中視圖如何使用大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

美姑县| 辉县市| 句容市| 子洲县| 长治县| 突泉县| 阜康市| 玉树县| 新野县| 肃南| 静海县| 衡南县| 灯塔市| 宜君县| 泰州市| 阳东县| 新巴尔虎左旗| 池州市| 平南县| 河池市| 阜新| 且末县| 常山县| 石台县| 滕州市| 舞阳县| 保康县| 长葛市| 句容市| 新源县| 威信县| 郑州市| 乳山市| 垣曲县| 韩城市| 井研县| 宜都市| 文化| 丰都县| 乌海市| 霍山县|