1. 程式人生 > 其它 >Oracle筆記17——Oracle檢視

Oracle筆記17——Oracle檢視

為什麼使用檢視:
1.限制其它使用者對資料庫表的訪問,因為檢視可以有選擇性的顯示資料庫表的一部分
2.容易實現複雜的查詢
3.對於相同的資料可以產生不同的試圖


建立檢視
CREATE VIEW 檢視名 AS 子查詢;

--簡單建立
1.建立一個檢視v_emp10,通過該檢視只能檢視10號部門的員工編號,員工姓名,職位
CREATE VIEW v_emp10
AS
SELECT empno, ename, job FROM emp WHERE deptno = 10;

--建立檢視時,在子查詢中使用列的別名
CREATE OR REPLACE view v_emp10--CREATE OR REPLACE:當檢視不存在時create建立,當檢視存在時replace替換
AS SELECT empno 員工編號, ename 員工姓名, job 職位 FROM emp WHERE deptno = 10; 2.建立一個檢視v_dept_avgsal,通過該檢視可以檢視每個部門的名稱,最低工資,最高工資,平均工資 CREATE VIEW v_dept_avgsal AS SELECT d.dname 部門名稱, MIN(sal) 最低工資, MAX(sal) 最高工資, AVG(sal) 平均工資 FROM dept d, emp e WHERE d.deptno = e.deptno GROUP BY d.dname; --等價於 CREATE VIEW v_dept_avgsal(部門名稱, 最低工資, 最高工資, 平均工資)
AS SELECT d.dname, MIN(sal), MAX(sal), AVG(sal) FROM dept d, emp e WHERE d.deptno = e.deptno GROUP BY d.dname; ---------------------------------- --使用檢視查詢資料 ---------------------------------- SELECT * FROM v_emp10; SELECT * FROM v_dept_avgsal; --------------------------------------------------------------
-- 刪除檢視 -------------------------------------------------------------- DROP VIEW v_emp10; -------------------------------------------------------------- -- 資料字典 -------------------------------------------------------------- SELECT * FROM user_tables;--查詢當前使用者下所有的表格 SELECT * FROM user_constraints;--檢視當前使用者下所有的約束 SELECT * FROM user_cons_columns;--檢視約束關聯的列資訊 SELECT * FROM user_indexes;--查詢當前使用者下所有的索引 SELECT * FROM user_ind_columns;--檢視索引關聯的列資訊 SELECT * FROM user_views;--檢視當前使用者下所有的檢視 SELECT * FROM user_updatable_columns;--檢視檢視或表關聯的列是否允許DML操作 SELECT * FROM user_objects;--檢視當前使用者下所有的物件