第1章神奇的SQL 2
1-1 CASE表达式 2
在SQL里表达条件分支 2
练习题 19
1- 2自连接的用法 21
面向集合语言SQL 21
练习题 35
1-3三值逻辑和NULL 38
SQL的温柔陷阱 38
1- 4HAVING子句的力量 55
出彩的配角 55
练习题 70
1-5外连接的用法 72
SQL的弱点及其趋势和对策 72
练习题 92
1- 6用关联子查询比较行与行 94
用SOL进行行与行之间的比较 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编程方法 201
确立SOL的编程风格 201
第2章 关系数据库的世界 216
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章附录 272
3- 1习题解答 272
3- 2参考文献 296
后记 300