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;--查看当前用户下所有的对象

 

上一篇:mysql占用CPU超过100%解决过程


下一篇:MySQL--外连接查询