視圖

1 本質
  將select語句的檢索結果用表的形式保存下來,因此有時視圖稱爲假表。這是因爲視圖本身不包含任何數據的,僅僅是從對象表中動態地抽取數據,並將數據組織在一起,外表看起來像一個物理表。
  
2 作用
  將多個物理表中的數據通過視圖動態地組織在一起,用戶可以像使用普通物理表那樣使用它。
  
3 特徵
 (1)可以公開表中特定的行或列,通過視圖進行權限權限管理。
 (2)簡化複雜的SQL查詢,將經常使用的連接或子查詢條件定義爲視圖,不僅可以簡化SQL語句,當連接或子查詢條件發生改變時,因爲只用修改視圖的定義,可以大大減少受影響的代碼範圍。
 (3)可以限制可插入/更新的值範圍,即使用[WITH CHECK POINT]命令。

4 創建視圖

create view 視圖名(列名,...)as select 語句 [with check point];

即對指定的<select 語句>創建視圖,包含指定列[列名,...]
通常情況下,推薦加with check point ,從而避免發生不必要的錯誤

 注意:在創建視圖時select語句中不能包含如下內容:
   (1)系統變量/用戶變量的參照
   (2)temporary類型的表
   (3)from語句中的子查詢
  
5 定義視圖時最好將所有的視圖名指定爲一個共同的特徵,如[v_]的形式開頭。這時可以使用LIKE關鍵字將所有特徵的表或視圖顯示出來。如show table like ‘v_%’;

6 顯示視圖中所有列的信息

show fields from 視圖名;

7 刪除視圖

drop view 視圖名;

8 對視圖進行插入/更新/刪除操作時,以下幾種條件下不能進行:
 (1)視圖的列中含有統計函數的情況下
 (2)視圖定義時使用了group by/having語句,distinct語句,union語句的情況下
 (3)視圖定義時使用了子查詢的情況下
 (4)進行跨越多個表進行數據的變更(插入/更新/刪除)操作
 
9 視圖是一個非常方便的功能。但是就性能來說並非一個最好的選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章