1、视图
什么是视图?如何创建?有什么用?需要注意什么?
2、子查询
什么是子查询?有什么用?
3、标量子查询
什么是标量子查询?有什么用?
4、关联子查询
什么是关联子查询?有什么用?
5、子查询和视图的关系
1、视图
什么是视图?如何创建?有什么用?需要注意什么?
视图是临时表
create view 视图名称(<列名一>,<列名二>,...)
as
<select ...>
CREATE view 按性别汇总(性别,人数)
as
SELECT 性别,COUNT(*)
FROM student
GROUP BY 性别;
注意事项一:不要在视图基础上再次创建视图,会降低查询效率
注意是想二:不能往视图里插入数据,视图实际上保存的是sql语句
2、子查询
什么是子查询?有什么用?
实际上就是嵌套select语句
select 性别,人数
FROM (
SELECT 性别,COUNT(*) AS 人数
FROM student
GROUP BY 性别)as 按性别汇总;
in ,any ,all 的使用方法
select 学号,成绩
from score
where 成绩 >any(select 成绩 from score where 课程好='0002')
--与下面语句等价
select 学号,成绩
from score
where 成绩 >(select min(成绩) from score where 课程好='0002')
any 和all 和要结合比较运算符 = ,<>,>,>=,<,<=使用
子查询的注意事项:
![a632c109d5b57f5082dbc3203f1a302d.png](https://img-blog.csdnimg.cn/img_convert/a632c109d5b57f5082dbc3203f1a302d.png)
避免多层嵌套子查询,as 可以省略
![22d6ef91e45fa43d800b1fa75ecbc1a5.png](https://img-blog.csdnimg.cn/img_convert/22d6ef91e45fa43d800b1fa75ecbc1a5.png)
sql的执行顺序会在面试中用到
3、标量子查询
什么是标量子查询?有什么用?
查询与返回的值是单一的值叫做标量子查询
![c4f4152c98fdc97cb88ee63fabb5f14e.png](https://img-blog.csdnimg.cn/img_convert/c4f4152c98fdc97cb88ee63fabb5f14e.png)
![188eb5354aeb80e2b789292f66929321.png](https://img-blog.csdnimg.cn/img_convert/188eb5354aeb80e2b789292f66929321.png)
![c4f4152c98fdc97cb88ee63fabb5f14e.png](https://img-blog.csdnimg.cn/img_convert/c4f4152c98fdc97cb88ee63fabb5f14e.png)
标量子查询查找出来是单一的值,就可以和运算进行比较
4、关联子查询
什么是关联子查询?有什么用?
![570f94c1b6cf4f4e69f478fe7ed60028.png](https://img-blog.csdnimg.cn/img_convert/570f94c1b6cf4f4e69f478fe7ed60028.png)
select 学号,课程号,成绩
from score as a
where 成绩 >(select AVG(成绩) from score as b where a.课程号=b.课程号 group by 课程号)
在组里进行关联子查询,s2只在子查询里有效
![6443fc55c5058b69bc70f3a8ad2f7db3.png](https://img-blog.csdnimg.cn/img_convert/6443fc55c5058b69bc70f3a8ad2f7db3.png)
5、子查询和视图的关系
![e6057656fff6b968c69a08ee14c791a9.png](https://img-blog.csdnimg.cn/img_convert/e6057656fff6b968c69a08ee14c791a9.png)
视图对于要频繁使用的sql语句保存为视图。