第1章 神奇的SQL
1-1 CASE表达式 2
▲在SQL里表达条件分支 2
练习题 19
1-2 自连接的用法 21
▲面向集合语言SQL 21
练习题 35
1-3 三值逻辑和NULL 38
▲SQL的温柔陷阱 38
1-4 HAVING子句的力量 55
▲出彩的配角 55
练习题 70
1-5 外连接的用法 72
▲SQL的弱点及其趋势和对策 72
练习题 92
1-6 用关联子查询比较行与行 94
▲用SQL进行行与行之间的比较 94
练习题 110
1-7 用SQL进行集合运算 112
▲SQL和集合论 112
练习题 128
1-8 EXISTS谓词的用法 130
▲SQL中的谓词逻辑 130
练习题 146
1-9 用SQL处理数列 149
▲灵活使用谓词逻辑 149
练习题 165
1-10 HAVING子句又回来了 167
▲再也不要叫它配角了! 167
练习题 183
1-11 让SQL飞起来 186
▲简单的性能优化 186
1-12 SQL编程方法 216
▲确立SQL的编程风格 201
第2章 关系数据库的世界
2-1 关系数据库的历史 216
▲1969年——一切从这里开始 216
2-2 为什么叫“关系”模型 222
▲为什么不叫“表”模型 222
2-3 开始于关系,结束于关系 229
▲关于封闭世界的幸福 229
2-4 地址这一巨大的怪物 233
▲为什么关系数据库里没有指针 233
2-5 GROUP BY和PARTITION BY 238
▲物以“类”聚 238
2-6 从面向过程思维向声明式思维、面向集合思维转变的7个关键点 243
▲画圆 243
2-7 SQL和递归集合 250
▲SQL和集合论之间 250
2-8 人类的逻辑学 256
▲浅谈逻辑学的历史 256
2-9 消灭NULL委员会 260
▲全世界的数据库工程师团结起来! 260
2-10 SQL中的层级 265
▲严格的等级社会 265
第3章 附录
3-1 习题解答 272
3-2 参考文献 296
后 记 300
^ 收 起