内容简介
《SQL进阶教程》是一本专注于帮助SQL使用者从入门水平迈向高级应用的技术书籍。本书由日本数据库专家MICK撰写,旨在深入剖析SQL语言中容易被忽视但极为重要的概念与技术,如窗口函数、集合运算、自连接、HAVING子句的高级用法等。
书中通过大量真实案例和对比分析,揭示了SQL在数据查询、统计、分析中的强大能力。例如,作者详细讲解了如何利用子查询与CTE(公用表表达式)优化复杂查询逻辑,以及如何通过索引和查询计划提升性能。每章结尾设有练习题,帮助读者巩固所学知识。
本书适合具备基础SQL知识的开发人员、数据分析师及数据库管理员阅读,不仅能使读者写出更简洁高效的SQL语句,还能培养其以集合思维解决问题的方式,是SQL学习者进阶的经典参考资料。
目录
译者序
第 1 章 神奇的SQL
1-1 CASE 表达式
写在前面
CASE 表达式概述
将已有编号方式转换为新的方式并统计
用一条 SQL 语句进行不同条件的统计
用 CHECK 约束定义多个列的条件关系
在 UPDATE 语句里进行条件分支
表之间的数据匹配
在 CASE 表达式中使用聚合函数
本节小结
练习题
1-2 自连接的用法
写在前面
可重排列、排列、组合
删除重复行
查找局部不一致的列
排序
本节小结
练习题
1-3 三值逻辑和NULL
写在前面
理论篇
实践篇
本节小结
1-4 HAVING 子句的力量
写在前面
寻找缺失的编号
用 HAVING 子句进行子查询:求众数
用 HAVING 子句进行自连接:求中位数
查询不包含 NULL 的集合
用关系除法运算进行购物篮分析
本节小结
练习题
1-5 外连接的用法
写在前面
用外连接进行行列转换 (1)(行→列):制作交叉表
用外连接进行行列转换(2)(列→行):汇总重复项于一列
在交叉表里制作嵌套式表侧栏
作为乘法运算的连接
全外连接
用外连接进行集合运算
用外连接求差集:A - B
用外连接求差集:B - A
用全外连接求异或集
本节小结
练习题
1-6 用关联子查询比较行与行
写在前面
增长、减少、维持现状
用列表展示与上一年的比较结果
时间轴有间断时:和过去最临近的时间进行比较
移动累计值和移动平均值
查询重叠的时间区间
本节小结
练习题
1-7 用 SQL 进行集合运算
写在前面
导入篇:集合运算的几个注意事项
比较表和表:检查集合相等性之基础篇
比较表和表:检查集合相等性之进阶篇
用差集实现关系除法运算
寻找相等的子集
用于删除重复行的高效 SQL
本节小结
练习题
1-8 EXISTS 谓词的用法
写在前面
理论篇
实践篇
本节小结
练习题
1-9 用 SQL 处理数列
写在前面
生成连续编号
求全部的缺失编号
三个人能坐得下吗
最多能坐下多少人
单调递增和单调递减
本节小结
练习题
1-10 HAVING 子句又回来了
写在前面
各队,全体点名
单重集合与多重集合
寻找缺失的编号:升级版
为集合设置详细的条件
本节小结
练习题
1-11 让 SQL 飞起来
写在前面
使用高效的查询
避免排序
减少中间表
本节小结
1-12 SQL 编程方法
写在前面
表的设计
编程的方针
SQL 编程方法
本节小结
第 2 章 关系数据库的世界
2-1 关系数据库的历史
写在前面
两篇论文
Codd 的贡献
1969 年——一切从这里开始
1970 年——远离地址
范式
本节小结
2-2 为什么叫“关系”模型
关系的定义
定义域的忧虑
关系值和关系变量
存在“关系的关系”吗
2-3 开始于关系,结束于关系
从运算角度审视集合
实践和原理
2-4 地址这一巨大的怪物
写在前面
关系模型是为摆脱地址而生的
编程中泛滥的地址
不曾远去的老将——J.Backus 的梦想
2-5 GROUP BY 和PARTITION BY
2-6 从面向过程思维向声明式思维、面向集合思维转变的 7 个关键点
1. 用 CASE 表达式代替 IF 语句和 CASE 语句。SQL 更像一种函数式语言
2. 用 GROUP BY 和关联子查询代替循环
3. 表中的行没有顺序
4. 将表看成集合
5. 理解 EXISTS 谓词和“量化”的概念
6. 学习 HAVING 子句的真正价值
7. 不要画长方形,去画圆
2-7 SQL 和递归集合
实际工作中的递归集合
冯·诺依曼的前辈们
数是什么
SQL 的魔术与科学
2-8 人类的逻辑学
适当地抛开命题的真假吧
逻辑学的革命
人类的逻辑学
2-9 消灭 NULL 委员会
~告全体数据库工程师书~
为什么 NULL 如此惹人讨厌
并不能完全消除 NULL
编号:使用异常编号
名字:使用“无名氏”
数值:用0代替
日期:用最大值或最小值代替
结束语
2-10 SQL 中的层级
谓词逻辑中的层级、集合论中的层级
为什么聚合后不能再引用原表中的列
单元素集合也是集合
第 3 章 附录
3-1 习题解答
解答 1-1 CASE 表达式
解答 1-2 自连接的用法
解答 1-4 HAVING 子句的力量
解答 1-5 外连接的用法
解答 1-6 用关联子查询比较行与行
解答 1-7 用 SQL 进行集合运算
解答 1-8 EXISTS 谓词的用法
解答 1-9 用 SQL 处理数列
解答 1-10 HAVING 子句又回来了
3-2 参考文献
实践篇
理论篇
看完了
您当前的等级为
登录后免费下载登录
小黑屋反思中,不准下载!
评论后刷新页面下载评论
支付¥以后下载
请先登录
您今天的下载次数(次)用完了,请明天再来
支付积分以后下载立即支付
支付以后下载立即支付
您当前的用户组不允许下载升级会员
您已获得下载权限
您可以每天下载资源次,今日剩余次
免责申明:
1. 本站分享的所有书籍均来源于自互联网,我们只进行收集整理,并不对书籍内容进行更改。
2. 部分书籍中可能有书籍压制者放置的广告,这并不是本站所为,请注意甄别。
3. 我们分享这些书籍,纯粹是出于知识分享的热情,以及对互联网分享精神的高度认同和践行,不以盈利为目的。
4. 本站分享的所有书籍,仅供个人学习研究使用,请勿用于任何商业用途,否则产生的一切法律纠纷与本站无关。
5. 如果这些书籍让你有所收获,在条件允许的情况下,请一定购买正版书籍,这是对创作者最好的支持。
6. 如果您是此书籍的版权所有者,且您不希望此作品出现在本站,请联系我们,我们将在收到您的请求后48小时内予以删除。