关于视图的一些认识
今天接觸到了視圖的概念,并應用到了系統上。在網上搜了下基礎概念,記錄下來以備需要。
1.關于視圖?
視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,并且在引用視圖時動態生成。?
對其中所引用的基礎表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其它數據庫的一個或多個表,或者其它視圖。分布式查詢也可用于定義使用多個異類源數據的視圖。如果有幾臺不同的服務器分別存儲組織中不同地區的數據,而您需要將這些服務器上相似結構的數據組合起來,這種方式就很有用。?
通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。?
2.視圖的權限
視圖可以隱藏基表,可以禁止所有用戶訪問數據庫表,而要求用戶只能通過視圖操作數據。這種方法可以保護用戶和應用程序不受某些數據庫修改的影響。例如,如果可以創建一個名為 "本月銷售額 "的視圖。在每月的第一天,可以相應地修改視圖的定義。如果沒有這個視圖,用戶每月都必須重新編寫查詢以選擇相應月份的銷售額。?將用戶限定在表中的特定行上。?
例如,只允許雇員看見工作跟蹤表內記錄其工作的行。?
將用戶限定在特定列上。?
例如,對于那些不負責處理工資單的雇員,只允許他們看見雇員表中的姓名列、辦公室列、工作電話列和部門列,而不能看見任何包含工資信息或個人信息的列。?
將多個表中的列聯接起來,使它們看起來象一個表。?
聚合信息而非提供詳細信息。?
例如,顯示一個列的和,或列的最大值和最小值。
3.視圖的寫法
create or replace view v_nameas
select t1.*,t2.*,t3.*
from A表 t1, B表 t2, C表 t3
where t1.a=t2.b and t2.b1=t3.c
?
轉載于:https://www.cnblogs.com/miketwais/p/view.html
總結
- 上一篇: Can you answer these
- 下一篇: ajax方式表单拦截