Oracle快速入门(视图)

一、视图

1、视图概念

是对查询结果的一个封装

视图里面所有的数据,都是来自于原表,来自于它查询的那张表,视图本身不存储任何数据。

2、功能

(1)能够封装复杂的查询结果
(2)屏蔽表中的细节

3、语法:

create {or replace} view 视图的名称 as 查询语句 {with read only};

4、模拟视图屏蔽内容的方式

在这里插入图片描述

5、创建一个视图

create or replace view view_test1 as select ename,job,mgr from emp;

6、查看创建的视图(屏蔽了表当中的细节)

在这里插入图片描述

7、通过视图修改数据

update view_test1 set ename = 'SMITH2' where ename = 'SMITH';

修改视图当中的数据以后,视图的数据和原表当中的数据都会发生改变

select * from view_test1;

在这里插入图片描述

select * from emp;

在这里插入图片描述

8、注意:通常不要通过视图修改数据,视图创建的时候,通常要加上with read only

9、创建一个只读视图

create or replace view view_test2 as select ename,job,mgr from emp with read only;

10、查看这个只读视图

select * from view_test2;

在这里插入图片描述

11、修改这个只读视图

update view_test2 set ename = 'SMITH3' where ename = 'SMITH2';

报错,设置只读视图后不能修改
在这里插入图片描述

12、视图封装的复杂语句

create view view_test3 as select 
       sum(cc) "TOTAL",
       sum(case yy when '1980' then cc end) "1980",
       sum(case yy when '1981' then cc end) "1981",
       sum(case yy when '1982' then cc end) "1982",
       sum(case yy when '1987' then cc end) "1987"
from 
       (select to_char(hiredate,'yyyy') yy,count(1) cc from emp group by to_char(hiredate,'yyyy')) tt;

在这里插入图片描述

二、同义词的概念

1、建view_test3视图的同义词为dept

create synonym dept for view_test3;

2、通过同义词的方式查询出对应表当中的数据

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/108432659
今日推荐