一、视图
- 视图中存放着sql查询语句,而非数据
- create view 视图名称(<视图列名1>,<视图列名2>) as <select 查询语句>;
- 查询语句列的顺序和视图名称列的顺序要一一对应
- 频繁使用或者sql语句非常繁琐时,可使用视图帮助提高效率
![819b02830746a4ebe22a9c5eb79f121d.png](https://i-blog.csdnimg.cn/blog_migrate/5122012f6b0d5fbcae0c6f673d19a2b7.jpeg)
- 第一步点击run
- 点击backups-refresh即可
- 在from子句中,用视图名称代替表名就可以了 (eg. select 性别,人数 from 按性别汇总)
- 只需要调出视图,就可以随时使用结果了(视图会自动更新,因为视图存放select子句)
二、子查询
- 在select查询语句中嵌套了另外一个查询语句
- 在from子句中直接写定义视图的sql查询语句
- 子查询除了放在from子句后面,可以放在where子句与in,any all构成复杂查询
- sql子查询报错:先运行子查询部分,如果报错,那么问题就在子查询上面。如果没有,再查外部查询。
![76363fff97ee103f14c91ea58da110f5.png](https://i-blog.csdnimg.cn/blog_migrate/ed48e84974a063d9702bb91d6abaa812.jpeg)
- 找出每个课程成绩最低的学号--第一次错误书写
![75c5ecefc886ce28bcbf69daf86c2a9d.png](https://i-blog.csdnimg.cn/blog_migrate/616a3d5235cb4fb067a2623fb5ab900d.jpeg)
![1a5d52be5fd95d91c5b7c789bbd48206.png](https://i-blog.csdnimg.cn/blog_migrate/e7c6168ee3d229a64c77cfbf6d94230d.jpeg)
- any(子查询)与some(子查询)相同
- all (子查询)
![97c7d6f5b1e3dabc2f243aa49e3f8798.png](https://i-blog.csdnimg.cn/blog_migrate/40181bd0153b06b460e3a60279771486.jpeg)
![f86d7dbd1583eadfd7fe020c55bd8957.png](https://i-blog.csdnimg.cn/blog_migrate/f61244a9f6ebd2c200328c1641d30333.jpeg)
- ⚠️避免使用多层嵌套子查询
- select from 子查询 【as 子查询名称】--此部分可以省略
![4ce7009016f73c1e712be6b10b2aac51.png](https://i-blog.csdnimg.cn/blog_migrate/078f2d797741e45eede918bad3469d1b.jpeg)
三、标量子查询
- 标量子查询必须返回一行一列的查询结果,是单一的值,可以和比较运算符一起使用(=,>),实现复杂查询;普通子查询返回多行结果
- 如果子查询返回多行,那么就不在是标量子查询了
![414584094f6a83669a3f3bb8c7ed7ba2.png](https://i-blog.csdnimg.cn/blog_migrate/b76d4b935134773cc02aee7c20de883f.jpeg)
![deb0d68a87261198abe3d331c5e96884.png](https://i-blog.csdnimg.cn/blog_migrate/335026ae11ba1a35813c60bc3d96086f.jpeg)
![a823de12c24a1129e11343be57564178.png](https://i-blog.csdnimg.cn/blog_migrate/56c6b6eb5372059c048251ff445c6583.jpeg)
![853cc77812574c3616dba7a5ec4e4a65.png](https://i-blog.csdnimg.cn/blog_migrate/e78bccd5bf84191ff4ec165ceae8dfb5.jpeg)
![153c6117ebf89dc68fb715b0132c442a.png](https://i-blog.csdnimg.cn/blog_migrate/21808adb537d379ffb91347fb972388a.jpeg)
四、关联子查询
![8cc08a1412b4a18101d6ee85c1cc7574.png](https://i-blog.csdnimg.cn/blog_migrate/6be6202d6f40486c81f36ac8dafb6099.jpeg)
- ·当每个组内进行比较时,使用关联子查询
![a99d74ec6d080723859ba297571e9601.png](https://i-blog.csdnimg.cn/blog_migrate/381c6ae84e59074bd7b09defe0b1aee4.jpeg)
五、各种函数
求余数:mod(被除数,除数)
![b326bf4575f36987f6fe09091d062bc6.png](https://i-blog.csdnimg.cn/blog_migrate/75dd6a752af6dd4f62070392abd66904.jpeg)