一、视图
视图
视图中存放的是SQL的查询语句,当使用客户端连接到数据库使用视图时,视图中的SQL查询语句会创建一张临时表。当客户端和数据库连接断开时,临时表会被自动删除。
使用视图
- 创建视图
create view 视图名称(<视图列表1>,<视图列表2>...)
as
<select 查询语句>;
注:select子句中的列名顺序要和create view中的列名顺序一致,列名可以不一样但是对应关系一致。
![6e49736c8adffdacb2a77bac9fe75c06.png](https://i-blog.csdnimg.cn/blog_migrate/3f687980a331469e0edfb26b9f166a6d.jpeg)
- 使用视图
在from子句中将表名替换成视图名称就可以使用视图,当数据更新后视图也会自动更新。
![222fefa268114c470f5de5a4017bbfa6.png](https://i-blog.csdnimg.cn/blog_migrate/eb296ae3d007e1b76282c66d15dc0442.jpeg)
- 删除视图
![1afae44fa25e71b68f493a20c433bcae.png](https://i-blog.csdnimg.cn/blog_migrate/b90ece7f484e5956cfbaba8930e6800f.jpeg)
视图的优势
- 可以将频繁使用的SQL查询语句保存为视图,提高效率;
- 视图结果可以随着原表数据更新而更新;
- 视图不保存数据,可以节省存放数据的空间。
视图使用的注意事项
- 不要在视图的基础上再创建视图,会降低视图的效率;
- 不能往视图中插入数据。
二、子查询
子查询
子视图类似于一次性的视图,在from子句中直接写出定义视图的SQL查询语句,是在一个select子句中嵌套的另一个select子句。
![9afefd42e4ec68f2270bcc2c3854f399.png](https://i-blog.csdnimg.cn/blog_migrate/2abb954113238b6ea07527ebaed9cdcf.jpeg)
注:在SQL查询语句中存在子查询时,会先运行子查询再运行外部查询语句。
使用子查询
子查询除了放在from子句中,还可以放在where子句中与运算