首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 視圖基礎操作完整指南:建立、檢視、修改、刪除與透過視圖操作基礎表

     編輯:MySQL 綜合教學

為何使用視圖

  • 封裝複雜查詢:提升 SQL 復用性。
  • 安全性控管:隱藏敏感欄位(如薪資),僅暴露必要資料。
  • 邏輯抽象:跨表關聯簡化為單一虛擬表。

視圖特性

  1. 虛擬表,不儲存實體資料。
  2. 欄位可來自不同基礎表。
  3. 建立/刪除不影響基礎表。
  4. 更新視圖直接影響基礎表(單表視圖)。
  5. 多表視圖不可 INSERT/DELETE。

建立視圖

CREATE VIEW view_name AS SELECT_statement;

範例:

USE zhaojd_test;
CREATE TABLE t_product (
    id INT PRIMARY KEY,
    pname VARCHAR(20),
    price DECIMAL(8,2)
);
INSERT INTO t_product VALUES (1,'apple',6.5), (2,'orange',3);

CREATE VIEW view_product AS SELECT id, pname FROM t_product;
SELECT * FROM view_product;

結果:隱藏 price 欄位。

七種視圖建立範例

類型範例
常數視圖CREATE VIEW v1 AS SELECT 3.1415926;
聚合函數視圖CREATE VIEW v2 AS SELECT COUNT(*) FROM t_student;
排序視圖CREATE VIEW v3 AS SELECT name FROM t_student ORDER BY id DESC;
內連接視圖CREATE VIEW v4 AS SELECT s.name FROM t_student s JOIN t_group g ON s.group_id=g.id WHERE g.id=2;
外連接視圖CREATE VIEW v5 AS SELECT s.name FROM t_student s LEFT JOIN t_group g ON s.group_id=g.id WHERE g.id=2;
子查詢視圖CREATE VIEW v6 AS SELECT s.name FROM t_student s WHERE s.id IN (SELECT id FROM t_group);
UNION 視圖CREATE VIEW v7 AS SELECT id,name FROM t_student UNION ALL SELECT id,name FROM t_group;

檢視視圖

  • SHOW TABLES;:同時列出表與視圖名稱。
  • SHOW TABLE STATUS [FROM db] [LIKE 'pattern'] \G:Engine=NULL、Comment=VIEW 識別視圖。
  • SHOW CREATE VIEW view_name \G:完整定義。
  • DESCRIBE view_name;:欄位結構。
  • SELECT * FROM information_schema.views WHERE table_name='view_name' \G:系統表查詢。

刪除視圖

DROP VIEW view_name [, view_name2 ...];

修改視圖

  • CREATE OR REPLACE VIEW view_name AS new_query;:刪除重建一步到位。
  • ALTER VIEW view_name AS new_query;:就地修改。

透過視圖操作基礎表

查詢

同表查詢,將表名換為視圖名。

資料異動(單表視圖)

INSERT INTO view_name VALUES (...);
UPDATE view_name SET col='val' WHERE ...;
DELETE FROM view_name WHERE ...;

實際影響基礎表資料。

多表視圖限制

來源超過一張基礎表時,禁止 INSERT/DELETE,僅允許 UPDATE(且僅限單一基礎表欄位)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved