日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 基础 ———— 视图的应用与总结

發布時間:2025/3/12 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 基础 ———— 视图的应用与总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

視圖是一種虛擬表,和普通表的使用是一樣的,視圖的一大特點就是“臨時性”,是通過表動態生成的數據,只保存SQL邏輯,不保存查詢結果。

視圖在實際生產中主要有兩種應用場景:

1、多個地方用到同樣的查詢結果;

2、該查詢使用的SQL比較復雜。

下面,我們來總結一下這個在開發中經常會用到的知識點。

一、視圖的優勢

首先,視圖并不能提高SQL的性能,它的作用在于更好的組織數據。優勢有以下幾點:

1、重用SQL語句。

2、簡化復雜的SQL操作,隱藏一部分SQL細節。

3、保護數據,提高安全性。

二、視圖的創建

視圖的創建和表一樣,也用到了 CREATE 關鍵字。

CREATE[OR REPLACE][ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}][DEFINER = user][SQL SECURITY { DEFINER | INVOKER }]VIEW view_name [(column_list)]AS select_statement[WITH [CASCADED | LOCAL] CHECK OPTION]

忽略可選部分,則:

CREATE 視圖名 AS 查詢語句

查詢語句可以是一個普通表,或者是其他視圖。

CREATE OR REPLACE VIEW limit_emp AS SELECT emp_id 員工編號,emp_name 姓名,salary 工資,dept_id 部門編號 FROMemp ;

查看和使用視圖的方式和普通表完全一樣:

SELECT * FROM limit_emp;

三、查看已創建的視圖

創建好視圖之后,如何查看已創建的視圖呢?如果使用Navicat 或 SQLyog,可以直接在左側的 “表文件夾”下方的“視圖文件夾”查看:

如果希望使用SQL來查看,因為MySQL認為視圖也是一種表,所以可以使用如下語句:

SHOW TABLES;

如果想僅查詢出視圖,那么可以執行:

SHOW TABLE STATUS WHERE COMMENT = 'view';

或者,直接查看指定名稱的視圖:

SHOW CREATE VIEW limit_emp;

?

四、視圖的修改

視圖的修改可有兩種方式:

1、不確定是否已經存在該視圖,可創建并替換,CREATE OR REPLACE VIEW:

CREATE OR REPLACE VIEW limit_emp AS SELECT * FROM emp

2、確定已經存在了該視圖,直接更新 ALTER??VIEW:

ALTER VIEW limit_emp AS SELECT * FROM emp

五、更新視圖數據

視圖中的數據是允許修改的,如果對視圖執行 INSERT 、UPDATE 、DELETE 不僅對視圖本身有效果,其背后的表也是會有影響的。但在實際生產中,往往會嚴格控制視圖的更新操作,且會將視圖設置為只讀模式,即只用視圖來簡化查詢,避免通過視圖來對原表進行修改。

雖然視圖可以更新,但是如果創建視圖的語句中包含了以下這些關鍵字,那么同樣無法執行更新:

1、分組函數、DISTINCT、GROUP BY 子句、HAVING、UNION。

2、常量視圖

3、SELECT 語句中包含子查詢

4、JOIN 子句

5、FROM 一個不能更新的視圖

6、WHERE 子句的子查詢引用了 FROM 子句中的表

六、視圖的刪除

DROP VIEW 視圖名, 視圖名, ...;

七、視圖和表的比較

?創建語法關鍵字物理空間占用使用
CREATE TABLE占用增刪改查
視圖CREATE VIEW不占用一般只做查詢

?

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的MySQL 基础 ———— 视图的应用与总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。