封面
版权信息
作者介绍
内容简介
前言
第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 排序的必要性和原理
- APP免费
2.2.4 根据多列内容排序
- APP免费
2.2.5 使用列别名排序
- APP免费
2.2.6 使用列编号排序
- APP免费
2.2.7 ORDER BY的其他使用事项
- APP免费
2.3 LIMIT分页语句:跳跃的青蛙
- APP免费
2.3.1 限制结果的输出行数
- APP免费
2.3.2 LIMIT的用法分析
- APP免费
2.3.3 浅谈SQL语法
- APP免费
2.3.4 搭配LIMIT进行数据更新
- APP免费
2.4 去掉重复的输出行:唯一的组合值
- APP免费
2.4.1 使用DISTINCT
- APP免费
2.4.2 对整张表去重没有意义:初识主键
- APP免费
2.4.3 另一种去重的办法:使用GROUP BY
- APP免费
2.4.4 MySQL中列别名的特殊用法
- APP免费
2.4.5 如何在SQL语句中添加注释
- APP免费
第3章 数据过滤与模糊查询
- APP免费
3.1 基础的数据过滤:酷似“苏菲·玛索”的女孩
- APP免费
3.1.1 初识WHERE从句
- APP免费
3.1.2 比较运算符
- APP免费
3.1.3 理解空值
- APP免费
3.1.4 利用空值进行过滤
- APP免费
3.1.5 使用BINARY区分过滤条件中的大小写
- APP免费
3.2 使用逻辑操作符:挑选优质的巴尔干甜豆
- APP免费
3.2.1 操作符AND和OR
- APP免费
3.2.2 AND和OR的执行原理
- APP免费
3.2.3 组合查询:UNION ALL与UNION
- APP免费
3.2.4 再次理解AND和OR
- APP免费
3.2.5 使用小括号改变连接对象
- APP免费
3.2.6 操作符IN和NOT
- APP免费
3.2.7 课后阅读:《胶囊时报》专栏采访
- APP免费
3.3 模糊查询:谓词LIKE和正则表达式REGEXP
- APP免费
3.3.1 模糊查询的适用场景
- APP免费
3.3.2 得心应手的百分号(%)
- APP免费
3.3.3 专一的下画线(_)
- APP免费
3.3.4 让特殊符号回归符号本身(\\)
- APP免费
3.3.5 正则表达式的一般使用场景
- APP免费
3.3.6 正则表达式的更多使用场景
- APP免费
第4章 显示栏、CASE表达式与常用函数
- APP免费
4.1 创建显示栏:卡路奇欧的“贪婪美德”
- APP免费
4.1.1 使用算术运算符创建显示栏
- APP免费
4.1.2 将MySQL当作计算器
- APP免费
4.1.3 算术运算符与空值:COALESCE函数
- APP免费
4.1.4 创建拼接栏:“猫牌胶水”CONCAT函数
- APP免费
4.2 神奇的变形咒语:CASE表达式
- APP免费
4.2.1 初识CASE表达式
- APP免费
4.2.2 CASE表达式的一般使用原理
- APP免费
4.2.3 不同的输出形式和对应效果
- APP免费
4.2.4 CASE表达式的规律总结
- APP免费
4.3 千奇百怪的函数:MySQL的生物多样性
- APP免费
4.3.1 函数多样性的原因
- APP免费
4.3.2 处理时间的函数
- APP免费
4.3.3 处理字符串的函数
- APP免费
4.3.4 处理数值的函数
- APP免费
第5章 聚集函数、窗口函数与数据分组
- APP免费
5.1 使用聚集函数:返回一组数据的各项指标
- APP免费
5.1.1 什么是聚集函数
- APP免费
5.1.2 统计个数和统计行数:COUNT函数
- APP免费
5.1.3 COUNT(*)与COUNT(列名)的原理解释
- APP免费
5.1.4 求和:SUM函数
- APP免费
5.1.5 求均值:AVG函数
- APP免费
5.1.6 求最大值与最小值:MAX函数和MIN函数
- APP免费
5.2 GROUP BY数据分组:对数据进行打包处理
- APP免费
5.2.1 数据分组的重要性
- APP免费
5.2.2 分组计算的产物与分组的原理
- APP免费
5.2.3 分组前的数据过滤:使用WHERE过滤行
- APP免费
5.2.4 指定多个分组依据
- APP免费
5.2.5 配合使用WITH ROLLUP:贴心的小计与总计
- APP免费
5.2.6 对空值分组:验证COUNT(列名)与COUNT(*)
- APP免费
5.3 使用HAVING从句进行过滤:“韦尔集团”的大麻烦
- APP免费
5.3.1 分组后的数据过滤:使用HAVING过滤组
- APP免费
5.3.2 WHERE的不完美替代品
- APP免费
5.3.3 “三巨头”的会面:同时使用WHERE、GROUP BY和HAVING
- APP免费
5.4 窗口函数:等级、累计与拆分
- APP免费
5.4.1 初识窗口函数语法
- APP免费
5.4.2 不一样的ORDER BY
- APP免费
5.4.3 非必要的PARTITION BY
- APP免费
5.4.4 RANK、DENSE_RANK和ROW_NUMBER
- APP免费
5.4.5 累计计算:将聚集函数用作窗口函数
- APP免费
5.4.6 平移变动的窗口:累计计算的拆分
- APP免费
第6章 复合查询
- APP免费
6.1 利用子查询进行过滤:忧郁的萨茉莉公主
- APP免费
6.1.1 利用子查询进行过滤
- APP免费
6.1.2 利用子查询过滤的关键思路及关联的基础
- APP免费
6.1.3 普遍存在的“中间人”
- APP免费
6.1.4 正序子查询的书写思路
- APP免费
6.1.5 完全限定列名
- APP免费
6.2 初识联结的建立:拆分表的逆向操作
- APP免费
6.2.1 理解主键和外键
- APP免费
6.2.2 关联的设定机制
- APP免费
6.2.3 使用WHERE建立联结
- APP免费
6.2.4 什么是笛卡儿积
- APP免费
6.2.5 等值行与不等值行
- APP免费
6.2.6 内部联结的语法
- APP免费
6.2.7 子查询和联结的区别
- APP免费
6.3 自联结与自然联结:巧妙的复制
- APP免费
6.3.1 建立自联结:巧妙的复制
- APP免费
6.3.2 建立自然联结:不走寻常路的简洁
- APP免费
6.4 外部联结:向左走,还是向右走
- APP免费
6.4.1 不同于以往的关联大表
- APP免费
6.4.2 不同联结方式的比较
- APP免费
6.5 关联子查询的建立:另一只看不见的手
- APP免费
6.5.1 标量子查询
- APP免费
6.5.2 利用关联子查询进行过滤
- APP免费
6.5.3 关联子查询与一般子查询的共性与区别
- APP免费
6.5.4 在检索中使用子查询
- APP免费
6.6 使用视图:飘逸灵动的胶片机
- APP免费
6.6.1 利用子查询进行过滤的限制
- APP免费
6.6.2 从子查询到视图:在FROM语句中建立子查询
- APP免费
6.6.3 创建视图
- APP免费
6.6.4 更新视图
- APP免费
6.6.5 灵活创建的数据集
- APP免费
6.6.6 删除视图
- APP免费
第7章 表的创建与数据更新
- APP免费
7.1 创建表:非凡药剂师协会
- APP免费
7.1.1 考查数据源
- APP免费
7.1.2 进行合理的数据拆分
- APP免费
7.1.3 表与列的命名规则
- APP免费
7.1.4 常用的数据类型
- APP免费
7.1.5 空值的指定
- APP免费
7.1.6 定义主键
- APP免费
7.1.7 选择引擎
- APP免费
7.2 调整表及外键约束:先有鸡,还是先有蛋
- APP免费
7.2.1 重命名表和删除表
- APP免费
7.2.2 增加列、重命名列与删除列
- APP免费
7.2.3 外键约束和定义外键
- APP免费
7.2.4 数据的完整性:合理的信息记录
- APP免费
7.2.5 外键约束的后果
- APP免费
7.2.6 关联表的层次关系:上游表和下游表
- APP免费
7.3 数据的插入:INSERT语句的使用
- APP免费
7.3.1 插入行的两种方式
- APP免费
7.3.2 提供列清单的重要性
- APP免费
7.3.3 空值、默认值和AUTO_INCREMENT的插入方式
- APP免费
7.3.4 同时插入多行数据
- APP免费
7.3.5 在INSERT语句中使用子查询:数据导入
- APP免费
7.4 数据的删除:DELETE语句的使用
- APP免费
7.4.1 使用DELETE删除特定行
- APP免费
7.4.2 删除表中的所有行:MySQL中的安全模式
- APP免费
7.4.3 外键约束的开启和关闭
- APP免费
7.4.4 在DELETE语句中使用子查询
- APP免费
7.5 数据的替换:UPDATE语句的使用
- APP免费
7.5.1 修改数据:替换已有数据
- APP免费
7.5.2 增加数据:替换空值
- APP免费
7.5.3 删除数据:用空值替换已有数据
- APP免费
7.5.4 同时更新多列数据
- APP免费
7.5.5 数据删除方式汇总
- APP免费
7.6 使用事务处理:数据更新前服下的“后悔药”
- APP免费
7.6.1 初识事务处理:START TRANSACTION
- APP免费
7.6.2 事务处理的本质
- APP免费
7.6.3 关闭事务处理的休止符:ROLLBACK和COMMIT
- APP免费
7.6.4 使用保留点:恰到好处的回滚方式
- APP免费
7.6.5 保留点的使用规范和释放
- APP免费
第8章 触发器与存储过程
- APP免费
8.1 触发器(上):“扣动扳机”的正确姿势
- APP免费
8.1.1 初识触发器的安装和使用
- APP免费
8.1.2 理解触发器的触发机制和执行时机
- APP免费
8.1.3 触发器的应用场景、类型与数量限制
- APP免费
8.1.4 初识触发器中的“NEW”:目前没有,但即将有
- APP免费
8.2 触发器(下):忙碌的火车站送车员
- APP免费
8.2.1 初识触发器中的“OLD”:目前有,但即将没有
- APP免费
8.2.2 触发器的功能限制
- APP免费
8.2.3 再谈“NEW”和“OLD”
- APP免费
8.2.4 触发器的执行失败
- APP免费
8.3 存储过程(上):麦克里尼的心病
- APP免费
8.3.1 初识存储过程
- APP免费
8.3.2 初识参数:关键词IN
- APP免费
8.3.3 再探参数:关键词OUT
- APP免费
8.4 存储过程(下):走出低谷
- APP免费
8.4.1 不一样的调用形式
- APP免费
8.4.2 更加智能的存储过程
- APP免费
8.4.3 什么是局部变量
- APP免费
第9章 不断翻新的数据集
- APP免费
9.1 不等值行的妙用
- APP免费
9.2 关联分析
- APP免费
9.3 在CASE表达式中使用聚集函数
- APP免费
9.4 在聚集函数中使用CASE表达式
- APP免费
9.5 行列转换:创建数据透视表
- APP免费
9.6 寻找中位数
- APP免费
第10章 思考与练习
更新时间:2024-05-24 18:34:30