一、简单查询
创建学校数据库的表




sql语句如下:




练习:查找学生




二、汇总分析
- 练习:汇总分析


- 练习:分组 group by



- 练习:分组结果的条件 having



- 练习:对查询结果排序 order by





三、复杂查询
- 子查询



- 日期函数

- topN问题
- 例:如何找到每个类别下用户最喜欢的产品
- 例:每个类别下用户点击最多的5个商品是什么?
- 如何解决:分组取最大值、最小值、每组最大的N条(top N)记录




四、多表查询







- 行列如何转换
- Q、


- 第一步:使用常量列输出目标表的结构

- 第二步:使用case表达式,替换常量列为对应的成绩


- 第三步:分组,并使用最大值函数max取出每个方块的最大值

五、如何提高SQL查询的效率
- select子句中尽量少用*,需要查询哪些列数据就写哪几列
- where子句中,避免在比较符号的左侧出现表达式、函数等操作,要放在右侧
- 尽量避免使用 in 和 not in,因为使用这两个会导致数据库进行全表搜索
- 尽量避免使用 or,因为使用这个也会导致数据库进行全表搜索
- 根据需要返回的数据行数,使用limit子句