SQL-view

简单理解SQL的视图就是:

  1. 视图从代码上看是一个select语句
  2. 视图从逻辑上看是一个虚拟表

优缺点

  • 优点
    • 简化查询
    • 增加数据的保密性
  • 缺点
    • 增加了数据库的维护成本
    • 视图只是简化了查询,但是并不能加快查询的速度

格式

1
2
3
4
5
create view 视图的名字
as
--select的前面不能加begin
select语句
--select的后面不能加end
1
2
3
4
5
6
7
8
9
--error 不行
create view via
as
select AVG(sal) from emp
-----------
--ok 可以
create view via
as
select AVG(sal) "avg_sal" from emp

视图 VS 不用视图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
--原始数据
create table emp(
empno int primary key,
ename nvarchar(10),
sal int,
deptno int
)
insert into emp values (7369,'smith',1800,20);
insert into emp values (7499,'allen',1500,10);
insert into emp values (7521,'ward',1900,30);
insert into emp values (7566,'jones',2000,30);
insert into emp values (7654,'martin',1800,10);
insert into emp values (7698,'blake',1800,30);
select * from emp

--求出平均工资最高的部门的编号和部门的平均工资
--不用视图
select * from
--各部门编号跟平均工资
(select deptno,AVG(sal) "avg_sal" from emp group by deptno) "T"
where "T"."avg_sal"=(select MAX("E"."avg_sal") from
--最高平均工资
(select deptno,AVG(sal) "avg_sal" from emp group by deptno) "E"
)



--用视图
create view viemp
as
select deptno,AVG(sal) "avg_sal" from emp group by deptno
select * from viemp where avg_sal=(select MAX(avg_sal) from viemp)
--对比很明显,就是简化查询语句,让你写的SQL更简洁

最后更新: 2020年05月10日 10:50

原始链接: https://yesong17.github.io/2020/03/12/view%E8%A7%86%E5%9B%BE/

× 请我吃大餐~
打赏二维码