描述
开 本: 128开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787115609762丛书名: 图灵程序设计丛书
2.基于标准SQL编写,示例程序均可下载
3.深入浅出,示例丰富,转变面向过程语言思维定式,切实提升SQL编程水平
4.解析经典文献,导入逻辑学与集合论,深刻理解SQL底层逻辑
5.基于各DBMS新版本新升级,内容更新更全面,详解现代SQL新功能
1-1 CASE表达式 2
在SQL里表达条件分支
写在前面 2
CASE表达式的写法 2
将已有编号方式转换为新的方式并统计 4
用一条SQL语句进行多条件统计 7
用CHECK约束定义多个列的条件关系 11
在UPDATE语句里进行条件分支 12
表之间的数据匹配 15
在CASE表达式中使用聚合函数 17
本节小结 20
练习题 22
1-2 必知必会的窗口函数 25
顺序编程的复活
什么是窗口 26
一张图看懂窗口函数 27
使用帧子句将其他行移至当前行 29
窗口函数的内部动作 34
本节小结 37
练习题 39
1-3 自连接的用法 41
从物理到逻辑的跳跃
可重排列、排列、组合 41
删除重复行 45
查找局部不一致的列 48
本节小结 50
练习题 55
1-4 三值逻辑和NULL 56
SQL的温柔陷阱
写在前面 56
理论篇 57
实践篇 61
本节小结 71
练习题 78
1-5 EXISTS 谓词的用法 79
SQL中的谓词逻辑
写在前面 79
理论篇 79
实践篇 85
本节小结 95
练习题 96
1-6 HAVING 子句的力量 99
将世界看作集合
寻找缺失的编号 99
用HAVING 子句进行子查询:求众数 105
查询不包含NULL 的集合 107
特征函数的应用 110
使用HAVING 语句表达全称量化 113
单重集合与多重集合 116
用关系除法运算进行购物篮分析 120
本节小结 123
练习题 128
1-7 用窗口函数进行行间比较 130
告别关联子查询
写在前面 130
增加、减少、没有变化 130
时间轴有间断时:和过去最临近的时间进行比较 135
窗口函数与关联子查询 137
查询重叠的时间区间 140
本节小结 145
练习题 145
1-8 外连接的用法 147
SQL的弱点及其趋势和对策
写在前面 147
用外连接进行行列转换(1)(行→列):制作交叉表 147
用外连接进行行列转换(2)(列→行):汇总重复项于一列 151
在交叉表里制作嵌套式表侧栏 153
作为乘法运算的连接 158
全外连接 160
用外连接进行集合运算 163
用外连接求差集:A - B 163
用外连接求差集:B - A 164
用全外连接求异或集 165
本节小结 166
练习题 168
1-9 用SQL 进行集合运算 170
SQL和集合论
写在前面 170
导入篇:集合运算的几个注意事项 170
比较表和表:检查集合相等性之基础篇 172
比较表和表:检查集合相等性之进阶篇 175
用差集实现关系除法运算 177
寻找相等的子集 180
用于删除重复行的高效SQL 183
本节小结 185
练习题 187
1-10 用SQL 处理数列 188
用SQL 处理有序数据——集大成
写在前面 188
生成连续编号 188
求全部的缺失编号 192
3 个人能坐得下吗 194
有换排的数列 197
单调递增和单调递减 199
本节小结 202
练习题 204
1-11 让SQL 飞起来 205
简单的SQL性能优化
写在前面 205
使用高效的查询 205
避免排序 208
真的用到索引了吗 213
减少中间表 216
本节小结 218
1-12 SQL 编程方法 220
确立SQL 的编程风格
写在前面 220
表的设计 222
编程的方针 223
SQL 编程方法 230
本节小结 234
第 2章 关系数据库的世界 237
2-1 关系数据库的近现代史 238
数据库有过两次破坏性创新吗
关系数据库的历史 238
破坏性创新会重复吗 243
NoSQL 的类型和解决方案 245
性能问题的解决方案 245
本节小结 247
2-2 为什么叫“关系”模型 250
为什么不叫“表”模型
关系的定义 250
定义域的忧虑 253
关系值和关系变量 254
存在“关系的关系”吗 255
2-3 开始于关系,结束于关系 257
关于封闭世界的幸福
从运算角度审视集合 257
实践和原理 259
2-4 地址:巨大的怪物 261
为什么关系数据库里没有指针
写在前面 261
关系模型是为摆脱地址而生的 262
编程中泛滥的地址 263
不曾远去的老将——约翰·巴克斯的梦想 265
2-5 关于顺序的冒险 266
SQL的中心法则
迟来的主角 266
行应该有顺序吗 267
2-6 GROUP BY 和PARTITION BY 271
物以“类”聚
二者的区别 271
2-7 从面向过程思维向声明式思维、面向集合思维转变的7个关键点 276
画圆
写在前面 276
1. 用CASE 表达式代替IF 语句和CASE 语句。SQL 更像一种函数式语言 277
2. 用GROUP BY 和窗口函数代替循环 278
3. 表中的行没有顺序 279
4. 将表看成集合 280
5. 理解EXISTS 谓词和“量化”的概念 280
6. 学习HAVING 子句的真正价值 281
7. 不要画长方形,去画圆 282
2-8 人类的逻辑学 284
浅谈逻辑学的历史
适当地抛开命题的真假吧 284
逻辑学的革命 286
人类的逻辑学 287
2-9 SQL 和递归集合 288
SQL和集合论的紧密关系
实际工作中的递归集合 288
冯·诺依曼的前辈们 288
数是什么 290
SQL 的魔术与科学 293
2-10 消灭NULL 委员会 294
全世界的数据库工程师团结起来
表明决心:告全体数据库工程师书 294
为什么NULL 如此惹人讨厌 294
并不能完全消除NULL 296
编号:使用异常编号 297
名字:使用“无名氏” 297
数值:用0 代替 298
日期:用最大值或最小值代替 298
本节小结 299
2-11 SQL 中的层级 300
严格的等级社会
谓词逻辑中的层级、集合论中的层级 300
为什么聚合后不能再引用原表中的列 300
单元素集合也是集合 304
第3章 附录 307
3-1 习题解答 308
3-2 参考文献 331
SQL 整体 331
数据库设计 332
性能 333
集合论和谓词逻辑/三值逻辑 333
后记 335
评论
还没有评论。