【學習】SQL基礎-015-檢視

Kevin_Weig發表於2018-04-10
1、本質:邏輯資料集,沒有真正資料

2、型別
    簡單檢視:不使用函式,不使用聚合;一般可以接受DML
    複雜檢視:使用函式和聚合;不能接受DML

3、原理
    oracle 訪問 user_views 資料字典,找到檢視的子查詢並執行,返回資料;
    訪問檢視,實際是訪問基表;
    檢視是存放在資料字典中的一條子查詢。

4、建立
    前提:create view 許可權
    語法:
          
    引數:
         force:     即使子查詢中明細表不存在,也建立檢視。
          noforce: 預設值,如果明細表不存在,則引發錯誤。

         with check option 加約束進行檢查,對檢視進行 dml 操作時,檢查建立時的 where 條件。 確保DML在特定範圍內操作
          with read only      只能進行查詢,不能透過檢視修改基表。  禁止DML操作

5、應用例
    查詢表空間的使用情況
    create view tablesp_usage as
             select a.tablespace_name as tablespace_name,
                     to_char(a.total/1024/1024,99999999) as total_mb,
                     to_char((a.total-b.free)/1024/1024,99999999) use_mb,
                     to_char(b.free/1024/1024,99999999) as free_mb,
                     to_char(((total-free)/total)*100,999.99) as "Used %"
             from
                   (select tablespace_name,sum(bytes) as total from dba_data_files
                    group by tablespace_name) a,
                   (select tablespace_name,sum(bytes) as free from dba_free_space
                    group by tablespace_name) b
            where a.tablespace_name=b.tablespace_name order by 5 desc;

6、刪除
     drop view 不會刪除基表資料

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31476473/viewspace-2152745/,如需轉載,請註明出處,否則將追究法律責任。

相關文章