SQL —— 檢視操作
檢視
檢視是虛擬的表,與包含資料的表不同的是檢視紙包含使用時動態檢索資料的查詢
檢視實際上就是一個儲存查詢,可以混合和匹配來自基本表(或其他檢視)的資料,從而建立在很多方面象另一個普通表那樣的起的作用。可以建立一個簡單的查詢,僅僅從一個表(另一個檢視)選擇幾列或幾行,而忽略其他行或列,或者也可以建立一個複雜查詢。連線幾個表查詢,使得這些連線查詢看起來更像一個表。
檢視是虛擬的表,是一個表中的資料經過某種篩選後的顯示方式,檢視由一個預定義的查詢select語句組成。
注意:
1、因為檢視不包含資料,所以每次使用檢視時,都必須處理查詢執行時所需要的任一個檢索,如果用多個聯結和過濾建立了複雜的檢視或者嵌套了檢視,可能造成效能下降的很厲害,因此在部署使用了大量檢視的應用前應該進行測試。
2、一般應該將檢視用於檢索而不是更新。
使用檢視的原因
1、重用SQL語句。
2、簡化複雜的SQL操作。
3、使用表的組成部分而不是整個表。
4、保護資料,可以給使用者授予表的特定部分的訪問許可權而不是整個表的訪問許可權。
5、更改資料格式和表示,檢視可以返回與底層表的表示和格式不同的資料。
檢視的規則和限制
1、與表一樣,檢視必須唯一名。
2、對於可以建立的檢視數目沒有限制。
3、為了建立檢視,必須具有足夠的訪問許可權,這些許可權由資料庫管理人員授予。
4、檢視可以巢狀。
5、ORDER BY 語句可以在檢視中使用,但如果從該檢視檢索資料的SELECT語句中包含ORDER BY語句,那麼該檢視中的ORDER BY語句將被覆蓋。
6、檢視不能索引,也不能關聯觸發器或是預設值。
7、檢視可以與表一起使用。
建立檢視語法
CREATE VIEW 檢視名稱[(欄位1) (欄位2) (欄位3)…]
AS
SQL語句
[with check option];
引數[with check option]可選項,防止使用者對資料插入、刪除、更新是操作了檢視範圍外的基本表的資料。
刪除檢視語法
DROP VIEW 檢視名稱;
更新檢視
通常,一般情況下,檢視時可以更新的(即可以對它們使用INSERT、UPDATE、DELETE),更新一個檢視將更新其基表(檢視本身沒有資料),如果對檢視增加或刪除行,實際上是對其基表增加或刪除行。
並不是所有檢視都可以更新(例如:存在分組、聯結、子查詢、並操作、聚集函式、去重操作或去重函式、匯出列、計算列……這些都不能更新檢視)。
語法
1、方法一:直接使用CREATE OR REPLACE VIEW語法
CREATE OR REPLACE VIEW 檢視名稱[(欄位1) (欄位2) (欄位3)…]
AS
SQL語句
[with check option];
引數[with check option]可選項,防止使用者對資料插入、刪除、更新是操作了檢視範圍外的基本表的資料。
2、方法二:先用DROP刪除需要更新的檢視,然後再用CREATE建立一個全新的檢視。