为什么使用视图:
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;--查看当前用户下所有的对象