第一节
1.1 视图概述
1.2.1知识概述
1、简介
视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的集合或组合。
2、优点:
简化数据操作:视图可以简化用户处理的方式;
着重于特定数据:不必要的或敏感的数据可以不出现在视图中;
视图提供了一个简单而有效的安全机制(只读),可以定制不同用户对数据访问;
提供向后兼容性:视图使用户能够在表的结构构更改时为表创建向后兼容接口。
对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
用户通过简单的查询可以从复杂查询中得到结果。
维护数据的独立性,试图可从多个表检索数据。
对于相同的数据可产生不同的视图。
注意:视图不能提高性能
1.3 创建、修改、删除视图的语法
1.3.1 知识概述
1、创建和修改视图
CREATE [OR REPLACE] [FORCE] VIEW view_name
AS subquery
[WITH CHECK OPTION ]
[WITH READ ONLY]
OR REPLACE:如果视图已存在,则重新创建视图,相当于修改视图;
FORCE:不管基表是否存在,都会创建视图;
subquery :select 查询语句(可以是单表,可以使多表,可以包含子查询);
WITH CHECK OPTION:插入或修改的数据必须满足视图定义的约束;
WITH READ ONLY:该视图只能查询,不能修改或者插入数据。
2、删除视图
DROP VIEW view_name
1.4 视图-简单视图
1.4.1 知识概述
简单视图:subquery子句是一个单表查询语句。
创建:
CREATE OR REPLACE VIEW VIEW_OWNERS
AS SELECT * FROM T_OWNERS WHERE OWNERTYPEID=1;
查询视图数据:SELECT * FROM VIEW_OWNERS [WHERE OWNERTYPEID=1];
修改视图数据:UPDATE VIEW_OWNERS SET NAME=’Oracle’ WHERE ID=2;
删除视图数据: DELETE FROM VIEW_OWNERS WHERE ID=2;
注意:不建议在视图上插入、修改、删除数据
1.5 视图-带检查约束的视图
1.5.1 知识概述
带检查约束的视图:使用WITH CHECK OPTION关键字,
create or replace view view_address2 as
select * from T_ADDRESS where areaid=2
with check option;
使用[WITH CHECK OPTION]关键字后,在插入、修改数据时会检查是否满足subquery子句中的where条件,只有满足才能执行保存到数据库中。
第二节
2.1 视图-只读视图
2.1.1知识概述
使用关键字WITH READ ONLY,此时只能查询视图中的数据,不能插入、修改和删除操作。
2.2 视图-带错误的视图
2.2.1知识概述
使用关键字FORCE,意思是强制执行创建视图的语句,忽略表不存在的错误
2.3 视图-多表关联的视图
2.3.1知识概述
2.3.1.1 创建
其中的subquery子句是一个多表关联的select查询语句。
2.3.1.2 键保留表
官方介绍:
A table is key preserved if every key of the table can also be a key of the result of the join.
It is not necessary that the key or keys of a table be selected for it to be key preserved.
It is sufficient that if the key or keys were selected, then they would also be key(s) of the result of the join.
键保留表的理解是:
一个复杂视图,若需要出现键保留表的话则必须保证基表中至少有一张表是有主键的!(如果两个没有主键表进行关联时是不会出现键保留表的;另外如果视图中有一张基表具有主键,就一定会出现另一张基表成为键保留表的现象)
其次,这两张表在进行关联时(可以是表连接也可以是多表查询,但一定要有关联条件,其关联条件其实相当于两表的主外键关系),如果关联条件是使用了主键的话,则外键表为键保留表。
2.4 视图案例-聚合统计的视图
2.4.1 知识概述
该类型的subquery子句是一个分组统计或者排序的select查询语句
2.5 物化视图-概述和语法
2.5.1 知识概述
2.5.1.1 概述