視圖是一個虛擬表,其內容由查詢定義。同真實的表同樣,視圖包含一系列帶有名稱的列和行數據。可是,視圖並不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,而且在引用視圖時動態生成的。數據庫
視圖是oracle又一個數據對象,其主要做用是簡化操做,提升安全,知足不一樣用戶的查詢需求,視圖不是一個真正存在的物理表,它是根據別的表動態生成的。安全
建立視圖的基本語法:oracle
n 建立視圖ide
create view 視圖名 as select 語句 [with read only]spa
n 建立或修改視圖對象
create or replace view 視圖名 as select語句 [with read only]索引
n 刪除視圖ci
drop view 視圖名it
當表結構過於複雜,請使用視圖吧!入門
快速入門:
咱們來建立一個視圖
案例:建立和emp表(empno,ename,job)徹底一致的視圖,看看帶with read only和不帶的區別。
若是建立視圖的時候,不但願用戶經過視圖對源表進行其餘操做,則建議開with read only
視圖能夠簡化操做,好比:咱們但願查詢僱員的名字和部門編號和部門名稱,
傳統:查詢兩張表
視圖簡化:create or replace view myview as select emp.ename,dept.deptno,dept.dname from emp,dept where emp.deptno=dept.deptno with read only;
View created
n 視圖與表的區別
①表須要佔用磁盤空間,視圖不須要
②視圖不能添加索引
③使用視圖能夠簡化複雜查詢,好比:學生選課系統
④視圖有利於提升安全性,好比:不一樣用戶查看不一樣視圖