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

關於SQL視圖的創建和使用方法

select 一個數 關於 用戶 獨立性 聯合 height mtk markdown

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 scWhere co.課名=’心理學’ and sc.考試成績>80 and st.學號=sc.學號 and co.課號=sc.課號這條語句看起來很長,有一點點復雜,如果每次都要先寫這條語句查詢後在對查詢的結果操作,就會顯得復雜,創建一個視圖就能解決這個問題了。 創建視圖:
Create view vw1 asSelect st.學號,st.姓名,st.所屬院系 from student as st,course as co,score as scWhere co.課名=’心理學’ and sc.考試成績>80 and st.學號=sc.學號 and co.課號=sc.課號這樣就可以世界查看視圖,查看數據了。 3.視圖的功能1.簡化用戶操作2.能以不同的角度觀察同一個數據庫3.對重構數據庫提供了邏輯獨立性:利用視圖將需要的數據合並或者篩選,但是不影響原表的數據和結構3.對機密數據提供安全保護: 可以建立不同的視圖對用不同的用戶,以達到安全的目的。建立一個表如圖所示:技術分享圖片
SQL SERVER學生表student建立一個視圖,實驗一下:Create view vw1 asSelect 學號,姓名,所屬院系From studentWhere 課名=’軟件工程’ and 所屬院系=’計算機’運行語句建立視圖:技術分享圖片建立的一個成功的視圖vw1 建立視圖的語法:Create view 視圖名稱[(字段1) (字段2) (字段3)…]ASSelect 查詢語句[with check option]參數:[with check option]可選項,防止用戶對數據插入、刪除、更新是操作了視圖範圍外的基本表的數據。刪除視圖的語法:Drop view 視圖名稱

關於SQL視圖的創建和使用方法