前言 從今天開始本系列文章就帶各位小伙伴學習資料庫技術。資料庫技術是Java開發中必不可少的一部分知識內容。也是非常重要的技術。本系列教程由淺入深, 全面講解資料庫體系。 非常適合零基礎的小伙伴來學習。 全文大約 【1297】字,不說廢話,只講可以讓你學到技術、明白原理的純乾貨!本文帶有豐富案例及配 ...
前言
從今天開始本系列文章就帶各位小伙伴學習資料庫技術。資料庫技術是Java開發中必不可少的一部分知識內容。也是非常重要的技術。本系列教程由淺入深, 全面講解資料庫體系。 非常適合零基礎的小伙伴來學習。
全文大約 【1297】字,不說廢話,只講可以讓你學到技術、明白原理的純乾貨!本文帶有豐富案例及配圖,讓你更好的理解和運用文中的技術概念,並可以給你帶來具有足夠啟迪的思考......
一. 視圖
1. 什麼是視圖
視圖,虛擬表,從一個表或多個表中查詢出來的表,作用和真實表一樣,包含一系列帶有行和列的數據。視圖中,用戶可以使用SELECT語句
查詢數據,也可以使用INSERT,UPDATE,DELETE
修改記錄,視圖可以使用戶操作方便,並保障資料庫系統安全。
2. 視圖特點
優點:
● 簡單化,數據所見即所得。
● 安全性,用戶只能查詢或修改他們所能見到得到的數據。
● 邏輯獨立性,可以屏蔽真實表結構變化帶來的影響。
缺點:
● 性能相對較差,簡單的查詢也會變得稍顯複雜。
● 修改不方便,特變是複雜的聚合視圖基本無法修改。
3. 視圖的創建
下麵給各位小伙伴介紹視圖的創建語法,as後面就是SELECT查詢的SQL語句。是不是很簡單呢。
語法:CREATE VIEW 視圖名 AS 查詢數據源表語句;
舉個慄子:創建視圖。
#創建 v_student 的視圖,其視圖從 student 表中查詢到學生id和名字。
CREATE VIEW v_student AS select SId,Sname from student;
使用視圖其實和使用表沒啥區別,正常查詢就可以了。如下:
#查詢 v_student 視圖中所有學生。
SELECT * FROM v_student;
4. 視圖的修改
語法一的意思是兼具視圖創建和修改的功能,視圖如果存在就修改,如果視圖不存在就創建視圖。而語法二只有修改功能。
語法一: CREATE OR REPLACE VIEW 視圖名 AS 查詢語句;
語法二: ALTER VIEW 視圖名 AS 查詢語句;
舉個慄子:修改視圖。
#方式 1:如果視圖存在則進行修改,反之,進行創建
CREATE OR REPLACE VIEW v_student AS SELECT SId,Sname,Sage from student;
#方式 2:直接對已存在的視圖進行修改
ALTER VIEW v_student AS SELECT SId,Sname,Sage from student;
5. 視圖的刪除
下麵這個最簡單的語法就是刪除視圖的語法。健哥友情提醒,使用起來要小心哦,刪了就沒了。
DROP VIEW 視圖名
舉個慄子:刪除視圖。
#刪除v_student視圖。 DROP VIEW v_student;
註意: 刪除視圖不會影響原表。
6. 視圖的註意事項
註意:
● 視圖不會獨立存儲數據,原表發生改變,視圖也發生改變。沒有優化任何查詢性能。
● 如果視圖包含以下結構中的一種,則視圖不可更新。
● 聚合函數的結果。
● DISTINCT 去重後的結果。
● GROUP BY 分組後的結果。
● HAVING 篩選過濾後的結果。
● UNION、UNION ALL 聯合後的結果。
二. 結語
最後在這裡對本文核心要點進行總結:
1. 視圖是資料庫中簡單實用的一種工具,可以將複雜的多表查詢封裝成視圖,在查詢的時候只需要簡單的一個查詢就能得到想要的結果。
2. 註意在創建視圖中包含聚合函數、DISTINCT 去重、GROUP BY 分組、HAVING 篩選、UNION ALL 查詢結果合併的時候,視圖不可以更新。