- 视图
- 子查询
- 标量子查询
- 关联子查询
- 如何用SQL解决业务问题
- 各种函数
- sqlzoo
一、视图
1.1 视图
临时表,存放的是sql查询语句,不是数据。
![8c3dedaeba9f889f37dccf15b44ba295.png](https://i-blog.csdnimg.cn/blog_migrate/df04c40f3e18e749afedeec2382200c6.jpeg)
1.2 创建和删除视图
/*创建视图*/
create view 视图名称<列名1,列名2,....> as select
/*删除视图*/
drop view 视图名称
1.3 视图的应用
- 定义一个视图
![284c5a7c15bbd119f833963aea9c683b.png](https://i-blog.csdnimg.cn/blog_migrate/79f21535cc650face0f5a3495a27d01f.png)
![f2a144b1026c178f136eb662f1a0fd02.png](https://i-blog.csdnimg.cn/blog_migrate/b2710d56a0218e549196dd99ba8c1f2e.png)
- 使用视图(在from子句中使用视图名称代表表名称)
![db91973f979e78e4ea488d42c1427ba6.png](https://i-blog.csdnimg.cn/blog_migrate/1b1aae414a5af17acaba8027841ec268.png)
1.4 优势及注意事项
- 优势
①sql查询语句需频繁使用,可保存成视图
②视图中的数据随着原表的变化自动更新,可保证数据的最新状态
③视图不需要保存数据,可节省存放数据设备的空间。
- 注意事项
①视图的列名与查询的列名一一对应
![bad4c602725686620f49f2ef93dfc8de.png](https://i-blog.csdnimg.cn/blog_migrate/e9693aceb064587b0bcc1e77392039d6.jpeg)
②避免在视图基础上再创建视图;视图里不能插入数据会报错
③不能用order by 语句定义视图,没有经过聚合汇总,未使用distinct的视图才能进行刷新
二、子查询
2.1 子查询
子查询:一次性视图,在select 语句中再嵌套一个select查询语句;当SQL查询语句运行结束以后它就消失了;当SQL查询语句里面有子查询时,先运行子查询语句得到一张临时表&#x