一、创建视图
- 什么是视图:视图中存放的是SQL查询语句,使用视图时,会运行视图里的SQL查询语句创建一张临时表。SQL查询语句中列的顺序和视图中列的顺序是一一对应的。
- 视图的作用:当有些SQL语句需要频繁使用时,就可以创建为视图,直接在from子句后面引用视图,不必每次都书写完整的SQL语句。可以简化我们的工作量。视图可以随原表数据更新而更新。
- 使用注意事项:避免创建多重视图(即在视图的基础上再次创建),这样会降低SQL的性能;视图中不能插入数据。
练习:
创建视图‘按课程号汇总’:
create
运行视图:
select
二、子查询
- 什么是子查询:在一个SQL语句中嵌套另一个SQL语句。可视为一个一次性的视图。
- 子查询的作用:可以放到where子句里从而构造复杂的查询条件,例如in(子查询)、any(子查询)、all(子查询)等。
- 使用注意事项:使用all得到的是数据集合,不能直接用于数据计算;尽量避免层层嵌套;尽量使用as为列设置别名。
练习:
找出成绩比课程0002的全部成绩里的任意一个高的学生:
select
找出成绩比课程0002的全部成绩高的学生:
select
三、标量子查询
- 什么是标量子查询:将子查询的结果返回为单一值。
- 标量子查询的作用:任何使用单一值的地方都可以运行标量子查询,和比较运算符一起进行数据运算。
- 使用注意事项:不能返回多行查询记录。
练习:
查询大于平均成绩的学生学号和成绩:
select
假设差生(成绩<=60),优等生(成绩>=80),查询成绩介于差生平均成绩和优等生平均成绩之间的学生:
select
四、关联子查询
- 什么是关联子查询:在子查询中使用关联条件。
- 关联子查询的作用:将数据进行分组后,在每个组里进行比较时使用。
- 使用注意事项:关联条件只能写在子查询里。
练习:
查找出每个课程中大于对应课程平均成绩的学生:
select
查找每个课程里成绩最高的学生:
select
五、常用的函数汇总
汇总函数
count(计数),sum(求和),avg(平均值),min(最小值),max(最大值)
算术函数
- 四舍五入:round(数值,保留小数位数)
- 绝对值:abs(数值)
- 求余数:mod(被除数,除数)
日期函数
- 当前日期:current_date
- 当前时间:current_time
- 当前日期和时间:current_timestamp
- 获取日期的年月日:year(日期),month(日期),day(日期)
- 日期对应星期几:dayname(日期)
字符串函数
- 字符串长度:length(字符串)
- 大小写转换:lower(),upper()
- 字符串拼接:concat(字符串1,字符串2)
- 字符串替换:replace(字符串,被替换字符串,用什么字符串替换)
- 字符串截取:substring(字符串,截取起始位置,截取长度)
六、SQL ZOO练习
![7e84ff8221652b9b5bf76187156f6812.png](https://img-blog.csdnimg.cn/img_convert/7e84ff8221652b9b5bf76187156f6812.png)
![1451a210ece44ede11cccb46555069cd.png](https://img-blog.csdnimg.cn/img_convert/1451a210ece44ede11cccb46555069cd.png)
![7f8fa7c49c02b694ccde0efd5bd98cc3.png](https://img-blog.csdnimg.cn/img_convert/7f8fa7c49c02b694ccde0efd5bd98cc3.png)
![247d08ea30031b3f89889798ce985224.png](https://img-blog.csdnimg.cn/img_convert/247d08ea30031b3f89889798ce985224.png)
![1a4eb8f0eda924379e1f38b479dc6dd5.png](https://img-blog.csdnimg.cn/img_convert/1a4eb8f0eda924379e1f38b479dc6dd5.png)
![80a495dbc3e4bebbf2f8e61ede3933ff.png](https://img-blog.csdnimg.cn/img_convert/80a495dbc3e4bebbf2f8e61ede3933ff.png)
![061d0c69b661af22cb45ffee0afc1c7b.png](https://img-blog.csdnimg.cn/img_convert/061d0c69b661af22cb45ffee0afc1c7b.png)
![b3c8d4670dba475231d6b8a3ede3667e.png](https://img-blog.csdnimg.cn/img_convert/b3c8d4670dba475231d6b8a3ede3667e.png)
![882777866d52054e37e6651f3892fec3.png](https://img-blog.csdnimg.cn/img_convert/882777866d52054e37e6651f3892fec3.png)
![ac57e482d3bce5c7f8b348418bdcd8bc.png](https://img-blog.csdnimg.cn/img_convert/ac57e482d3bce5c7f8b348418bdcd8bc.png)