關於SQL檢視的建立和使用方法
阿新 • • 發佈:2019-02-13
SQL檢視的建立和使用
檢視這個東西在其他的軟體中,我們也經常看得到,例如word中就有檢視,我們不難發現,檢視似乎是一種顯示方式,就像WORD一樣,有幾種顯示版面,這就是檢視,那麼SQL中的檢視又該怎麼定義呢?今兒我要學習一下,做個筆記。這是在繼SQL資料庫高階查詢和子查詢之後的又一個重要內容。
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.對機密資料提供安全保護:
可以建立不同的檢視對用不同的使用者,以達到安全的目的。
建立一個表如圖所示:
SQL SERVER學生表student
建立一個檢視,實驗一下:
Create view vw1 as
Select 學號,姓名,所屬院系
From student
Where 課名=’軟體工程’ and 所屬院系=’計算機’
執行語句建立檢視:
建立的一個成功的檢視vw1
建立檢視的語法:
Create view 檢視名稱[(欄位1) (欄位2) (欄位3)…]
AS
Select 查詢語句
[with check option]
引數:[with check option]可選項,防止使用者對資料插入、刪除、更新是操作了檢視範圍外的基本表的資料。
刪除檢視的語法:
Drop view 檢視名稱