视图
- 视图是一种数据库对象,是从一张或者多张表或者视图中导出的虚表,它所对应的数据并没有真正存在视图,而是存在所引用的表
- 优点:安全,简化数据操作,着重于特定数据
授权视图权限
GRANT CREATE VIEW TO SCOTT;
创建简单视图
CREATE OR REPLACE VIEW V_EMP
AS
SELECT EMPNO 工号,ENAME 姓名,JOB 岗位,SAL 薪资 FROM EMP;
查询视图
SELECT * FROM V_EMP;
指定视图的别名
CREATE OR REPLACE VIEW V_EMP_ALIAS(工号,姓名)
AS
SELECT EMPNO,ENAME FROM EMP;
SELECT * FROM V_EMP_ALIAS WHERE 工号=7369;
查看视图可修改的列
SELECT TABLE_NAME,COLUMN_NAME,UPDATABLE,INSERTABLE,DELETABLE
FROM USER_UPDATABLE_COLUMNS WHERE TABLE_NAME='V_EMP_ALIAS';
SELECT * FROM EMP;
视图新增
INSERT INTO V_EMP_ALIAS VALUES(3409,'NAME');
创建只读视图
CREATE OR REPLACE VIEW V_EMP_READONLY
AS
SELECT EMPNO,ENAME,SAL FROM EMP
WITH READ ONLY;
创建约束视图
- WITH CHECK OPTION
- 约束视图里面的约束就是WHERE后面的条件
CREATE OR REPLACE VIEW V_EMP_CHECK
AS
SELECT EMPNO,ENAME,SAL,DEPTNO FROM EMP WHERE DEPTNO=10
WITH CHECK OPTION CONSTRAINT V_EMP_CK;
创建复杂视图
CREATE OR REPLACE VIEW V_EMPDEPT_SUM
AS
SELECT D.DNAME 部门名,COUNT(1) 人数,
MAX(SAL) 最高工资,MIN(SAL) 最低工资,SUM(SAL) 总工资 FROM EMP E,DEPT D
WHERE E.DEPTNO=D.DEPTNO GROUP BY D.DNAME;
删除视图
DROP VIEW 视图名;
网友评论