數據庫--視圖的基本概念以及作用

視圖(子查詢):是從一個或多個表導出的虛擬的表,其內容由查詢定義。具有普通表的結構,但是不實現數據存儲。
對視圖的修改:單表視圖一般用於查詢和修改,會改變基本表的數據,
多表視圖一般用於查詢,不會改變基本表的數據。

--創建視圖--
create or replace view v_student as select * from student;
--從視圖中檢索數據--
select * from v_student;
--刪除視圖--
drop view v_student;

作用:

①簡化了操作,把經常使用的數據定義爲視圖。

  我們在使用查詢時,在很多時候我們要使用聚合函數,同時還要 顯示其它字段的信息,可能還會需要關聯到其它表,這時寫的語句可能會很長,如果這個動作頻繁發生的話,我們可以創建視圖,這以後,我們只需要select * from view就可以啦,這樣很方便。

②安全性,用戶只能查詢和修改能看到的數據。

  因爲視圖是虛擬的,物理上是不存在的,只是存儲了數據的集合,我們可以將基表中重要的字段信息,可以不通過視圖給用戶,視圖是動態的數據的集合,數據是隨着基表的更新而更新。同時,用戶對視圖可以隨意的更改和刪除,可以保證數據的安全性。 

③邏輯上的獨立性,屏蔽了真實表的結構帶來的影響。

  視圖可以使應用程序和數據庫表在一定程度上獨立。如果沒有視圖,應用一定是建立在表上的。有了視圖之後,程序可以建立在視圖之上,從而程序與數據庫表被視圖分割開來。

缺點:
①性能差
  數據庫必須把視圖查詢轉化成對基本表的查詢,如果這個視圖是由一個複雜的多表查詢所定義,那麼,即使是視圖的一個簡單查詢,數據庫也要把它變成一個複雜的結合體,需要花費一定的時間。
②修改限制
  當用戶試圖修改視圖的某些信息時,數據庫必須把它轉化爲對基本表的某些信息的修改,對於簡單的視圖來說,這是很方便的,但是,對於比較複雜的試圖,可能是不可修改的。

在定義數據庫對象時,不能不加選擇地來定義視圖,應該權衡視圖的優點和缺點,合理地定義視圖。

視圖(子查詢):是從一個或多個表導出的虛擬的表,其內容由查詢定義。

具有普通表的結構,但是不實現數據存儲。

對視圖的修改:單表視圖一般用於查詢和修改,會改變基本表的數據,

   多表視圖一般用於查詢,不會改變基本表的數據。

--創建視圖--
create or replace view v_student as select * from student;
--從視圖中檢索數據--
select * from v_student;
--刪除視圖--
drop view v_student;

作用:

①簡化了操作,把經常使用的數據定義爲視圖。

②安全性,用戶只能查詢和修改能看到的數據。

③邏輯上的獨立性,屏蔽了真實表的結構帶來的影響。

發佈了29 篇原創文章 · 獲贊 23 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章