中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

mysql視圖的作用是什么及怎么創建

發布時間:2022-11-02 10:58:26 來源:億速云 閱讀:126 作者:iii 欄目:MySQL數據庫

本篇內容介紹了“mysql視圖的作用是什么及怎么創建”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

  • 常見的數據庫對象

  • mysql視圖的作用是什么及怎么創建

  • 視圖的作用

1、視圖一方面可以幫我們使用表的一部分而不是所有的表,另一方面也可以針對不同的用戶制定不同的查詢視圖
2、視圖是一種 虛擬表 ,本身是 不具有數據 的,占用很少的內存空間,它是 SQL 中的一個重要概念
3、視圖建立在已有表的基礎上, 視圖賴以建立的這些表稱為基表
4、視圖的創建和刪除只影響視圖本身,不影響對應的基表。但是當對視圖中的數據進行增加、刪除和修改操作時,數據表中的數據會相應地發生變化,反之亦然
5、向視圖提供數據內容的語句為 SELECT 語句, 可以將視圖理解為存儲起來的 SELECT 語句
6、在數據庫中,視圖不會保存數據,數據真正保存在數據表中。當對視圖中的數據進行增加、刪除和修改操作時,數據表中的數據會相應地發生變化;反之亦然
7、視圖,是向用戶提供基表數據的另一種表現形式。通常情況下,小型項目的數據庫可以不使用視圖,但是在大型項目中,以及數據表比較復雜的情況下,視圖的價值就凸顯出來了,它可以幫助我們把經常查詢的結果集放到虛擬表中,提升使用效率。理解和使用起來都非常方便

mysql視圖的作用是什么及怎么創建

  • 格式

CREATE [OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW 視圖名稱 [(字段列表)]
AS 查詢語句
[WITH [CASCADED|LOCAL] CHECK OPTION]
  • 代碼案例

# 針對于單表
# 方式1:視圖中的字段與基表的字段有對應關系
CREATE VIEW vu_emp1
AS
SELECT employee_id, last_name, salary
FROM emps;

# 確定視圖中字段名的方式1:
CREATE VIEW vu_emp2
AS
SELECT employee_id emp_id, last_name lname, salary #查詢語句中字段的別名會作為視圖中字段的名稱出現
FROM emps
WHERE salary > 8000;

# 確定視圖中字段名的方式2:
CREATE VIEW vu_emp3(emp_id,NAME,monthly_sal) #小括號內字段個數與SELECT中字段個數相同
AS
SELECT employee_id,last_name,salary 
FROM emps
WHERE salary > 8000;

# 方式2:視圖中的字段在基表中可能沒有對應的字段
CREATE VIEW vu_emp_sal
AS
SELECT department_id,AVG(salary) avg_sal
FROM emps
WHERE department_id IS NOT NULL
GROUP BY department_id;

# 針對于多表
CREATE VIEW vu_emp_dept
AS
SELECT e.employee_id, e.department_id, d.department_name
FROM emps e JOIN depts d
ON e.`department_id` = d.`department_id`;

# 利用視圖對數據進行格式化
CREATE VIEW vu_emp_dept1
AS
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.`department_id` = d.`department_id`;

# 基于視圖創建視圖
CREATE VIEW vu_emp4
AS
SELECT employee_id, last_name
FROM vu_emp1;
  • 查看視圖

# 語法1:查看數據庫的表對象、視圖對象
SHOW TABLES;

# 語法2:查看視圖的結構
DESCRIBE vu_emp1;

# 語法3:查看視圖的屬性信息
SHOW TABLE STATUS LIKE 'vu_emp1';

# 語法4:查看視圖的詳細定義信息
SHOW CREATE VIEW vu_emp1;
  • "更新"視圖中的數據

# 一般情況,可以更新視圖的數據
# 更新視圖的數據,會導致基表中數據的修改
UPDATE vu_emp1
SET salary = 20000
WHERE employee_id = 101;

# 同理,更新表中的數據,也會導致視圖中的數據的修改
UPDATE emps
SET salary = 10000
WHERE employee_id = 101;

# 刪除視圖中的數據,也會導致表中的數據的刪除
DELETE FROM vu_emp1
WHERE employee_id = 101;

# 不能更新視圖中的數據
# 更新失敗,avg_sal只是1個平均數,基表中不存在該字段
UPDATE vu_emp_sal
SET avg_sal = 5000
WHERE department_id = 30;

# 刪除失敗,可能基表中不存在department_id
DELETE FROM vu_emp_sal
WHERE department_id = 30;
  • 修改視圖,會覆蓋原有的視圖

# 方式1
CREATE OR REPLACE VIEW vu_emp1
AS
SELECT employee_id, last_name, salary, email
FROM emps
WHERE salary > 7000;

# 方式2
ALTER VIEW vu_emp1
AS 
SELECT employee_id, last_name, salary, email, hire_date
FROM emps;
  • 刪除視圖

# 方式1
DROP VIEW vu_emp4;
# 方式2
DROP VIEW IF EXISTS vu_emp2,vu_emp3;

“mysql視圖的作用是什么及怎么創建”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

玛多县| 沙洋县| 通化市| 鄄城县| 阳山县| 中牟县| 静乐县| 开远市| 元江| 原阳县| 高平市| 塔城市| 林州市| 商南县| 阿巴嘎旗| 河池市| 新宾| 锡林浩特市| 安化县| 正宁县| 山阳县| 吉木乃县| 东丰县| 洮南市| 太康县| 黄平县| 巫山县| 政和县| 浦东新区| 稷山县| 临汾市| 勐海县| 太和县| 江都市| 开远市| 余干县| 呼图壁县| 兴国县| 财经| 南乐县| 江陵县|