视图

视图

  • 视图是一种数据库对象,是从一张或者多张表或者视图中导出的虚表,它所对应的数据并没有真正存在视图,而是存在所引用的表
  • 优点:安全,简化数据操作,着重于特定数据

授权视图权限

GRANT CREATE VIEW TO SCOTT;

创建简单视图

CREATE OR REPLACE VIEW V_EMP
AS
SELECT EMPNO 工号,ENAME 姓名,JOB 岗位,SAL 薪资 FROM EMP;

查询视图

SELECT * FROM V_EMP;

指定视图的别名

  • 注意:别名个数必须匹配SELECT中的字段个数
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');

创建只读视图

  • WITH READ ONLY
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;

创建复杂视图

  • 一般不能进行DML操作
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 视图名;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,469评论 0 9
  • 视图 视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示。视图对应于一个SELECT语句,结果集被賦予...
    程序员必修课阅读 555评论 0 1
  • 为方便测试,创建表emp,包含以下信息: 视图VIEW 视图是数据库对象之一,在SQL语句中体现的角色与表一致。但...
    smallnumber阅读 364评论 0 1
  • 1.有困境是人生常态。不做事就不会遇到困境。 2.面对困境的态度有两种:抱怨和逃避,有后悔情绪。你要觉知它。立刻斩...
    谢会芳阅读 172评论 0 0
  • 昨天下班路过小区门口,忽然想起回家吃什么啊? 家里好像“无草无粮”了,炒菜没菜,吃馒头也没一个,哎! 一个男人孤独...
    老帽先生阅读 878评论 0 0