資料庫視圖
A. 如何直接操作資料庫中的視圖
這個你得先弄明白什麼叫視圖 說白了,視圖就是一個或多個表根據一定的sql語句生成的一個動態的東西 好比你有兩個表 表1 id name 1 aa 表2 id name 2 bbb 視圖是 create view view1 as select * from 表1 union all select * from 表2; 視圖的內容是 id name 1 aaa 2 bbb 當表1或表2里增加數據的時候,這個視圖隨著表是動態變化的,所以,視圖不可以做增,刪,改的操作
B. 資料庫中視圖的好處是什麼
1、視點集中:
視圖集中即是使用戶只關心它感興趣的某些特定數據和他們所負責的特定任務。
2.、簡化用戶的相關操作:
因為在定義視圖時,若視圖本身就是一個復雜查詢的結果集,這樣在每一次執行相同的查詢時,不必重新寫這些復雜的查詢語句,只要一條簡單的查詢視圖語句即可。可見視圖向用戶隱藏了表與表之間的復雜的連接操作。
3、定製數據:
視圖能夠實現讓不同的用戶以不同的方式看到不同或相同的數據集。因此,當有許多不同水平的用戶共用同一資料庫時,這顯得極為重要。
4、合並分割數據:
視圖可以重新保持原有的結構關系,從而使外模式保持不變,原有的應用程序仍可以通過視圖來重載數據。
5、安全性高:
視圖可以作為一種安全機制。通過視圖用戶只能查看和修改他們所能看到的數據,如果某一用戶想要訪問視圖的結果集,必須授予其訪問許可權。視圖所引用表的訪問許可權與視圖許可權的設置互不影響。
(2)資料庫視圖擴展閱讀:
視圖的特點:
1、視圖通常也被稱為子查詢,是從一個或多個表導出的虛擬的表,其內容由查詢定義。具有普通表的結構,但是不實現數據存儲;
2、對視圖的修改:單表視圖一般用於查詢和修改,會改變基本表的數據;
3、多表視圖一般用於查詢,不會改變基本表的數據;
4、視圖可以使應用程序和資料庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的,有了視圖之後,程序可以建立在視圖之上,從而程序與資料庫表被視圖分割開來。
C. 資料庫中視圖的作用
視圖作用比較廣的,首先視圖可以將不同表中的數據通過關聯實現多表數據輸出,比如說,有一個類型表 uType,有欄位tId,tName,有個產品表 uProct,有欄位pId,pName,tId,此時你可以通過建立一張視圖vProct將產品表和產品類型一起輸出
SELECT p.pId AS 產品編號,p.pName AS 產品名稱,t.tId AS 產品類型編號,t.tId AS 產品類型編號
FROM uProct AS p INNER JOIN uType AS t ON p.tId = t.tId;
這樣就可以在程序里使用
SELECT * FROM vProct 來做產品資料的查詢了
它可以減少我們編碼的工作量,也方便維護。
D. 資料庫中的視圖又什麼用
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。
對其中所引用的基礎表來說,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其它資料庫的一個或多個表,或者其它視圖。分布式查詢也可用於定義使用多個異類源數據的視圖。如果有幾台不同的伺服器分別存儲組織中不同地區的數據,而您需要將這些伺服器上相似結構的數據組合起來,這種方式就很有用。
通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。
視圖的作用
* 簡單性。看到的就是需要的。視圖不僅可以簡化用戶對數據的理解,也可以簡化他們的操作。那些被經常使用的查詢可以被定義為視圖,從而使得用戶不必為以後的操作每次指定全部的條件。
* 安全性。通過視圖用戶只能查詢和修改他們所能見到的數據。資料庫中的其它數據則既看不見也取不到。資料庫授權命令可以使每個用戶對資料庫的檢索限制到特定的資料庫對象上,但不能授權到資料庫特定行和特定的列上。通過視圖,用戶可以被限制在數據的不同子集上:
使用許可權可被限制在基表的行的子集上。
使用許可權可被限制在基表的列的子集上。
使用許可權可被限制在基表的行和列的子集上。
使用許可權可被限制在多個基表的連接所限定的行上。
使用許可權可被限制在基表中的數據的統計匯總上。
使用許可權可被限制在另一視圖的一個子集上,或是一些視圖和基表合並後的子集上。
* 邏輯數據獨立性。視圖可幫助用戶屏蔽真實表結構變化帶來的影響。
二、視圖的優點
(1)視圖能簡化用戶的操作
(2)視圖機制可以使用戶以不同的方式查詢同一數據
(3)視圖對資料庫重構提供了一定程度的邏輯獨立性
(4)視圖可以對機密的數據提供安全保護
三、視圖的安全性
視圖的安全性可以防止未授權用戶查看特定的行或列,是用戶只能看到表中特定行的方法如下:
1 在表中增加一個標志用戶名的列;
2 建立視圖,是用戶只能看到標有自己用戶名的行;
3 把視圖授權給其他用戶。
四、邏輯數據獨立性
視圖可以使應用程序和資料庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與資料庫表被視圖分割開來。視圖可以在以下幾個方面使程序與數據獨立:
1 如果應用建立在資料庫表上,當資料庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
2 如果應用建立在資料庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使資料庫表不動。
3 如果應用建立在視圖上,當資料庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
4 如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而資料庫可以不動。
五、視圖的書寫格式
CREATE VIEW <視圖名>[(列名組)]
AS <子查詢>
DROP VIEW <索引名>
注意:視圖可以和基本表一樣被查詢,但是利用視圖進行數據增,刪,改操作,會受到一定的限制。
(1)由兩個以上的基本表導出的視圖
(2)視圖的欄位來自欄位表達式函數
(3)視圖定義中有嵌套查詢
(4)在一個不允許更新的視圖上定義的視圖
E. 資料庫報表的視圖有幾種每種視圖的功能是什麼
1、關系視圖:Oracle視圖是作為資料庫對象存在的,因此,創建之後也可以通過工具或數據字典來查看視圖的相關信息。
2、內嵌視圖:在from語句中的可以把表改成一個子查詢,內嵌視圖為子查詢的一種,可以與數據表、視圖一樣作為查詢語句的數據源存在,但在形式上有較大的區別,內嵌視圖不必使用create view命令進行創建,因此,在數據字典中也無法獲得相應信息。
內嵌視圖的特點在於無須創建真正的資料庫對象,而只是封裝查詢,因此會節約資料庫資源,同時不會增加維護成本。但是內嵌視圖不具有可復用性,因此當預期將在多處調用到同一查詢定義時,還是應該使用關系視圖。
3、對象視圖:對象類型在資料庫編程中有許多好處,但有時,應用程序已經開發完成。為了迎合對象類型而重建數據表是不現實的。對象視圖正是解決這一問題的優秀策略。
對象視圖創建之後,同樣可以在數據字典中獲得其相應信息。利用Oracle內置視圖user_views可以獲得對象視圖相關信息。Oracle中的對象數據實際仍然以關系數據的形式存儲。
但是,對象的特性,例如繼承、封裝等,都為開發人員提供了更加靈活的處理形式。同樣,可以構造復雜的對象類型來封裝復雜的多表查詢。
4、物化視圖:常用於資料庫的容災,不是傳統意義上虛擬視圖,是實體化視圖,和表一樣可以存儲數據、查詢數據。主備資料庫數據同步通過物化視圖實現,主備資料庫通過data link連接,在主備資料庫物化視圖進行數據復制。當主資料庫垮掉時,備資料庫接管,實現容災。
(5)資料庫視圖擴展閱讀
視圖可以使應用程序和資料庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與資料庫表被視圖分割開來。視圖可以在以下幾個方面使程序與數據獨立:
1、如果應用建立在資料庫表上,當資料庫表發生變化時,可以在表上建立視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
2、如果應用建立在資料庫表上,當應用發生變化時,可以在表上建立視圖,通過視圖屏蔽應用的變化,從而使資料庫表不動。
3、如果應用建立在視圖上,當資料庫表發生變化時,可以在表上修改視圖,通過視圖屏蔽表的變化,從而應用程序可以不動。
4、如果應用建立在視圖上,當應用發生變化時,可以在表上修改視圖,通過視圖屏蔽應用的變化,從而資料庫可以不動。
F. 資料庫創建視圖
create view shitu as select 學號,姓名,電話號碼 from Stu_v_student where sex='男';
G. 什麼是資料庫視圖
聯系:視圖(view)是在基本表之上建立的表,它的結構(即所定義的列)和內容(即所有數據行)都來自基本表,它依據基本表存在而存在。一個視圖可以對應一個基本表,也可以對應多個基本表。視圖是基本表的抽象和在邏輯意義上建立的新關系
區別:1、視圖是已經編譯好的sql語句。而表不是
2、視圖沒有實際的物理記錄。而表有。
3、表是內容,視圖是窗口
4、表只用物理空間而視圖不佔用物理空間,視圖只是邏輯概念的存在,表可以及時四對它進行修改,但視圖只能有創建的語句來修改
5、表是內模式,視圖是外模式
6、視圖是查看數據表的一種方法,可以查詢數據表中某些欄位構成的數據,只是一些sql語句的集合。從安全的角度說,視圖可以不給用戶接觸數據表,從而不知道表結構。
7、表屬於全局模式中的表,是實表;視圖屬於局部模式的表,是虛表。
8、視圖的建立和刪除隻影響視圖本身,不影響對應的基本表。
H. 資料庫怎樣創建視圖
sql資料庫創建視圖的方法:1、登錄「sql server managment」;2、在指定資料庫中選擇「視圖」,右鍵單擊選擇「新建視圖」選項;3、添加要關聯的表;4、默認是主鍵關聯的,可以調整關聯欄位;5、按「ctrl+s」保存即可