TreeviewCopyright © qgao 2021-* all right reserved, powered by aleen42

视图

https://blog.csdn.net/kxbarcode/article/details/81660934

定义

视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。

视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。

说白了,视图就是一条select语句。

根据视图所对应的子查询种类分为几种类型:

  • 简单视图:SELECT语句是基于单表建立的,且不包含任何函数运算、表达式或分组函数,此时视图是基表的子集;
  • 复杂视图:SELECT语句同样是基于单表,但包含了单行函数、表达式、分组函数或GROUP BY子句;
  • 连接视图:SELECT语句是基于多个表的。

语法

创建一个简单视图V_EMP_10,来显示部门10中的员工的编码、姓名和薪水:

CREATE VIEW v_emp_10 [alias]
AS
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno = 10;

查看视图结构:

DESC v_emp_10;

查询视图和查询表的操作相同:

SELECT * FROM v_emp_10; #此时视图的列名,和创建视图时的列名一致,

视图的作用

  • 简化复杂查询:如果需要经常执行某项复杂查询,可以基于这个复杂查询建立视图,此后查询此视图即可;

  • 限制数据访问:视图本质上就是一条SELECT语句,所以当访问视图时,只能访问到所对应的SELECT语句中涉及到的列,对基表中的其它列起到安全和保密的作用。

对视图进行更新操作(INSERT或UPDATE)

简单视图能够执行DML操作,除了:

  • 在基表中定义了非空列,但简单视图对应的SELECT语句并没有包含这个非空列,导致这个非空列对视图不可见;
  • 如果视图定义中包含了函数、表达式、分组语句、DISTINCT关键字或ROWNUM伪列;
  • 违反基表的约束条件。
# 简单视图可以通过DML操作影响到基表数据。
INSERT INTO v_emp_10
VALUES(1234, ‘DOCTOR’, 4000, 10);
Copyright © qgao 2021-* all right reserved,powered by Gitbook该文件修订时间: 2022-06-06 16:56:43

results matching ""

    No results matching ""