视图
从表中抽出的逻辑上相关的数据集合
1.为什么使用视图:
控制数据访问
简化查询
数据独立性
避免重复访问相同的数据
2.创建视图
在CREATE VIEW语句中嵌入子查询
语法:
create
[ or replace ] -----替代
[ force ] ------强制创建视图
view
view_name [ (column1,column2,…) ]
as
select …
[ with check option ]-----检查
[ constraint constraint_name ]
[ with read only ];----只读
子查询可以是复杂的SELECT 语句
–查询视图
select * from dept_20;
1.创建视图或覆盖视图
create or repalce view 视图名称 as
创建只读视图不可修改
create or replace view dep_20 as select * from emp where deptno=20 with read only;
2.修改视图
使用CREATE OR REPLACE VIEW 子句修改视图
例:CREATE OR REPLACE VIEW empvu80
(id_number, name, sal, department_id)
AS SELECT employee_id, first_name || ’ ’ || last_name, salary, department_id
from employees department_id = 80;
CREATE VIEW 子句中各列的别名应和子查询中各列相 对应
视图中使用DML的规定
当视图定义中包含以下元素之一时不能使用insert :
组函数
GROUP BY 子句
DISTINCT 关键字
ROWNUM 伪列
列的定义为表达式
表中非空的列在视图定义中未包括
3.删除视图
删除视图只是删除视图的定义,并不会删除基表的数据
DROP VIEW view;
例:DROP VIEW empvu80;
总结:
视图是将一个sql查询语句保存到数据库中,可以和使用表一样去使用视图
视图中是不存储任何数据的,视图中所有的数据都来源于表中.
视图分为只读视图,和可读写的视图
视图创建语法:
create view 视图名称[(“别名”,…)] as select 列 别名,… from 表名 [with read only];