第1章 七嘴八舌聊SQL
1.1 什么是SQL
1.2 什么是数据库
第2章 简单检索
2.1 基础查询:姻缘介绍所的联络清单
2.1.1 检索整张表(通配符“*”)
2.1.2 检索整张表的限制
2.1.3 检索特定列
2.1.4 理解表中的“列”与“行”
2.1.5 关于SQL语句的书写规范
2.2 对查询结果排序:鱼儿的大小和颜色
2.2.1 根据单列内容排序
2.2.2 升序和降序
2.2.3 排序的必要性和原理
2.2.4 根据多列内容排序
2.2.5 使用列别名排序
2.2.6 使用列编号排序
2.2.7 ORDER BY的其他使用事项
2.3 LIMIT分页语句:跳跃的青蛙
2.3.1 限制结果的输出行数
2.3.2 LIMIT的用法分析
2.3.3 浅谈SQL语法
2.3.4 搭配LIMIT进行数据更新
2.4 去掉重复的输出行:唯一的组合值
2.4.1 使用DISTINCT
2.4.2 对整张表去重没有意义:初识主键
2.4.3 另一种去重的办法:使用GROUP BY
2.4.4 MySQL中列别名的特殊用法
2.4.5 如何在SQL语句中添加注释
第3章 数据过滤与模糊查询
3.1 基础的数据过滤:酷似“苏菲·玛索”的女孩
3.1.1 初识WHERE从句
3.1.2 比较运算符
3.1.3 理解空值
3.1.4 利用空值进行过滤
3.1.5 使用BINARY区分过滤条件中的大小写
3.2 使用逻辑操作符:挑选优质的巴尔干甜豆
3.2.1 操作符AND和OR
3.2.2 AND和OR的执行原理
3.2.3 组合查询:UNION ALL与UNION
3.2.4 再次理解AND和OR
3.2.5 使用小括号改变连接对象
3.2.6 操作符IN和NOT
3.2.7 课后阅读:《胶囊时报》专栏采访
3.3 模糊查询:谓词LIKE和正则表达式REGEXP
3.3.1 模糊查询的适用场景
3.3.2 得心应手的百分号(%)
3.3.3 专一的下画线(_)
3.3.4 让特殊符号回归符号本身(\\)
3.3.5 正则表达式的一般使用场景
3.3.6 正则表达式的更多使用场景
第4章 显示栏、CASE表达式与常用函数
4.1 创建显示栏:卡路奇欧的“贪婪美德”
4.1.1 使用算术运算符创建显示栏
4.1.2 将MySQL当作计算器
4.1.3 算术运算符与空值:COALESCE函数
4.1.4 创建拼接栏:“猫牌胶水”CONCAT函数
4.2 神奇的变形咒语:CASE表达式
4.2.1 初识CASE表达式
4.2.2 CASE表达式的一般使用原理
4.2.3 不同的输出形式和对应效果
4.2.4 CASE表达式的规律总结
4.3 千奇百怪的函数:MySQL的生物多样性
4.3.1 函数多样性的原因
4.3.2 处理时间的函数
4.3.3 处理字符串的函数
4.3.4 处理数值的函数
第5章 聚集函数、窗口函数与数据分组
5.1 使用聚集函数:返回一组数据的各项指标
5.1.1 什么是聚集函数
5.1.2 统计个数和统计行数:COUNT函数
5.1.3 COUNT(*)与COUNT(列名)的原理解释
5.1.4 求和:SUM函数
5.1.5 求均值:AVG函数
5.1.6 求最大值与最小值:MAX函数和MIN函数
5.2 GROUP BY数据分组:对数据进行打包处理
5.2.1 数据分组的重要性
5.2.2 分组计算的产物与分组的原理
5.2.3 分组前的数据过滤:使用WHERE过滤行
5.2.4 指定多个分组依据
5.2.5 配合使用WITH ROLLUP:贴心的小计与总计
5.2.6 对空值分组:验证COUNT(列名)与COUNT(*)
5.3 使用HAVING从句进行过滤:“韦尔集团”的大麻烦
5.3.1 分组后的数据过滤:使用HAVING过滤组
5.3.2 WHERE的不完美替代品
5.3.3 “三巨头”的会面:同时使用WHERE、GROUP BY和HAVING
5.4 窗口函数:等级、累计与拆分
5.4.1 初识窗口函数语法
5.4.2 不一样的ORDER BY
5.4.3 非必要的PARTITION BY
5.4.4 RANK、DENSE_RANK和ROW_NUMBER
5.4.5 累计计算:将聚集函数用作窗口函数
5.4.6 平移变动的窗口:累计计算的拆分
第6章 复合查询
6.1 利用子查询进行过滤:忧郁的萨茉莉公主
6.1.1 利用子查询进行过滤
6.1.2 利用子查询过滤的关键思路及关联的基础
6.1.3 普遍存在的“中间人”
6.1.4 正序子查询的书写思路
6.1.5 完全限定列名
6.2 初识联结的建立:拆分表的逆向操作
6.2.1 理解主键和外键
6.2.2 关联的设定机制
6.2.3 使用WHERE建立联结
6.2.4 什么是笛卡儿积
6.2.5 等值行与不等值行
6.2.6 内部联结的语法
6.2.7 子查询和联结的区别
6.3 自联结与自然联结:巧妙的复制
6.3.1 建立自联结:巧妙的复制
6.3.2 建立自然联结:不走寻常路的简洁
6.4 外部联结:向左走,还是向右走
6.4.1 不同于以往的关联大表
6.4.2 不同联结方式的比较
6.5 关联子查询的建立:另一只看不见的手
6.5.1 标量子查询
6.5.
展开