MySQL/Oracle視圖的創建與使用


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM