1.什么是視圖?
視圖是一個虛擬的表,是一個表中的數據經過某種篩選后的顯示方式,視圖由一個預定義的查詢select語句組成。
2.視圖的特點。
視圖中的數據並不屬於視圖本身,而是屬於基本的表,對視圖可以像表一樣進行insert,update,delete操作。
視圖不能被修改,表修改或者刪除后應該刪除視圖再重建。
視圖的數量沒有限制,但是命名不能和視圖以及表重復,具有唯一性。
視圖可以被嵌套,一個視圖中可以嵌套另一個視圖。
視圖不能索引,不能有相關聯的觸發器和默認值,sql server不能在視圖后使用order by排序。
舉例:查詢“心理學”考試成績大於80的學生的“學號”、“姓名”、“所屬院系”。 Student(學號,姓名,性別,所屬院系) Course(課號,課名,學分) Score(學號,課號,考試成績,平時成績) 這需要通過聯合查詢來解決問題了,參數不足,只得如此,來寫一條語句試試: Select st.學號,st.姓名,st.所屬院系 from student as st,course as co,score as sc Where co.課名=’心理學’ and sc.考試成績>80 and st.學號=sc.學號 and co.課號=sc.課號 這條語句看起來很長,有一點點復雜,如果每次都要先寫這條語句查詢后在對查詢的結果操作,就會顯得復雜,創建一個視圖就能解決這個問題了。
創建視圖: Create view vw1 as Select st.學號,st.姓名,st.所屬院系 from student as st,course as co,score as sc Where co.課名=’心理學’ and sc.考試成績>80 and st.學號=sc.學號 and co.課號=sc.課號 這樣就可以世界查看視圖,查看數據了。
3.視圖的功能
1.簡化用戶操作
2.能以不同的角度觀察同一個數據庫
3.對重構數據庫提供了邏輯獨立性:
利用視圖將需要的數據合並或者篩選,但是不影響原表的數據和結構
3.對機密數據提供安全保護:
可以建立不同的視圖對用不同的用戶,以達到安全的目的。
4.視圖的 ‘增刪改查’
http://www.w3school.com.cn/sql/sql_view.asp