文章目录

  • 1. 视图(Views)
  • 2. 优点
  • 3.语法结构:创建视图
  • 4. 修改更新视图
  • 5. 撤销视图
  • 6. 视图中`DML`规则
  • 7. 视图索引


1. 视图(Views)

视图(View)创建使用,视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即可。也可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

2. 优点

  1. 做复杂的查询逻辑时可以简化你的思考过程,保存复杂的查询过程
  2. 用视图可以隐藏一定的信息,用过滤后查询出来的数据集组成视图,可以访问表中的子集,可以访问表中行的子集,屏蔽建表时底层的基表,实现一定的安全性,
  3. 可以重命名列名。在表中有些列名定义没有代表意义为了让用户看到列名就可以知该列是什么数据,可以在组建视图时重命名列名。
  4. 从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。
  5. 可以合并分离的数据,创建分区视图 。当数据量大的时候,这时我们就可以使用union关键字,将数据表整合在一起

3.语法结构:创建视图

CREATE [OR REPLACE] [FORCE |NOFORCE ]VIEW view_name AS
SELECT column_name(s)
	FROM table_name
WHERE condition

视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。在子查询中不能包含ORDER BY ,子查询可以是复杂的SELECT语句

参数

作用

OR REPLACE

如果视图存在,重建、修改这个视图

FORCE

不管引用的表是否存在,都创建这个视图

NOFORCE

只有当表存在的时候,才能创建这个视图(默认方式)

WITH CHECK OPTION

只有子查询能够检索出的行才能够被插入,修改,或删除。默认情况下对此不作检查,没有指定约束名,系统会自动为约束命名,形式为SYS_Cn

WITH READ ONLY

只读,不可对视图做DML操作

4. 修改更新视图

CREATE OR REPLACE VIEW 语法

CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

5. 撤销视图

DROP VIEW

6. 视图中DML规则

1.冲突

视图定义中出现: GROUP BY、ORDER BY DISTINCT ROWNUM不能使用INSERT,DELETE,UPDATE

7. 视图索引

想要在视图中创建索引,在基表创建即可。

CREATE INDEX [索引名] ON [表名](列名);