1. 程式人生 > >關於SQL檢視的建立和使用方法

關於SQL檢視的建立和使用方法

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
SQL SERVER學生表student 建立一個檢視,實驗一下: Create view vw1 as Select 學號,姓名,所屬院系 From student Where 課名=’軟體工程’ and 所屬院系=’計算機’ 執行語句建立檢視: 建立的一個成功的檢視vw1 建立的一個成功的檢視vw1 建立檢視的語法: Create view 檢視名稱[(欄位1) (欄位2) (欄位3)…] AS Select 查詢語句 [with  check  option] 引數:[with check  option]可選項,防止使用者對資料插入、刪除、更新是操作了檢視範圍外的基本表的資料。 刪除檢視的語法: Drop view 檢視名稱