展开全部

主编推荐语

数据库工程师进阶中级实用指南。

内容简介

本书是《SQL基础教程》作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。

全书可分为两部分,第一部分介绍了SQL语言不同寻常的使用技巧,带领读者从SQL常见技术,比如CASE表达式、自连接、HAVING子句、外连接、关联子查询、EXISTS……去探索新发现。这部分不仅穿插讲解了这些技巧背后的逻辑和相关知识,而且辅以丰富的示例程序,旨在帮助读者提升编程水平;第二部分着重介绍关系数据库的发展史,把实践与理论结合起来,旨在帮助读者加深对关系数据库和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 参考文献
  • 实践篇
  • 理论篇
  • 后记
  • 看完了
展开全部

评分及书评

评分不足
2个评分
  • 用户头像
    给这本书评了
    5.0

    case 的内容直接把我带入了,向前辈看齐

      转发
      评论

    出版方

    人民邮电出版社·图灵出品

    图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。