SQL沉思录

SQL沉思录 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:Joe Celko
出品人:
页数:270
译者:马树奇
出版时间:2009-11
价格:49.00元
装帧:平装
isbn号码:9787115213952
丛书系列:图灵程序设计丛书·数据库系列
图书标签:
  • 数据库
  • sql
  • SQL
  • SQL沉思录
  • 软件工程
  • 编程
  • Oracle
  • 专业技术/科普
  • SQL
  • 数据库
  • 数据分析
  • 编程
  • 技术
  • 开发
  • 查询
  • 性能优化
  • 数据处理
  • SQL Server
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

本书通过大量的实例,详细说明了为提高 SQL编程技术而必须面对的思想方法上的根本转变 ——由以过程式编程方式思考转变为以数据集的方式来思考。此外,本书还讨论了关于 SQL编程中查找表、视图、辅助表、虚拟表的应用,并独到地阐明了如何在 SQL系统中正确地处理时间值以及 SQL编程中的其他技术难点。

本书适合广大数据库编程人员和 SQL程序员学习参考。

作者简介

Joe Celko,世界著名的数据库专家,曾担任ANSI SQL标准委员会成员达10年之久,他也是世界上读者数量最多的SQL图书作者之一。他曾撰写过一系列专栏,并通过他的新闻组支持和推动了数据库编程技术以及ANSI/ISO标准的发展。除本书外,他还撰写了多部SQL经典著作,包括《SQL编程风格》、《SQL解惑》和《SQL权威指南》,上述作品的中文版均已经或即将由人民邮电出版社出版。

目录信息

第1章 SQL是声明式语言,不是过程式语言 1
1.1 不同的编程模型 1
1.2 不同的数据模型 3
1.2.1 “列”不是“字段” 4
1.2.2 行不是记录 6
1.2.3 表不是文件 9
1.2.4 关系键不是记录定位器 11
1.2.5 键的类型 12
1.2.6 关系键的理想属性 14
1.2.7 唯一,但并非不变 15
1.3 表作为实体 15
1.4 表作为关系 16
1.5 语句不是过程 16
1.6 分子、原子和亚原子型数据元素 17
1.6.1 分割表 17
1.6.2 分割列 18
1.6.3 时间值的分割 19
1.6.4 假造的非第一范式数据 19
1.6.5 分子型数据元素 21
1.6.6 异构数据元素 21
1.6.7 检验分子型数据 22
第2章 硬件、数据量和维护数据库 23
2.1 并行处理技术 23
2.2 廉价的主存储器 25
2.3 固态磁盘 25
2.4 更廉价的二级存储器和三级存储器 25
2.5 数据也在改变 26
2.6 思维方式并未改变 26
第3章 数据访问和记录 29
3.1 顺序访问 29
3.2 索引 30
3.2.1 单表索引 31
3.2.2 多表索引 31
3.2.3 索引的类型 32
3.3 散列 32
3.3.1 数字选择 33
3.3.2 除法散列 33
3.3.3 乘法散列 33
3.3.4 合并 33
3.3.5 表的查找 33
3.3.6 冲突 34
3.4 位向量索引 34
3.5 并行访问 34
3.6 行和列存储 35
3.6.1 基于行的存储 35
3.6.2 基于列的存储 35
3.7 联结算法 36
3.7.1 嵌套循环联结算法 37
3.7.2 排序合并联结算法 37
3.7.3 散列联结算法 37
3.7.4 Shin算法 38
第4章 查找表 39
4.1 数据元素的名称 40
4.2 多参数查找表 42
4.3 常量表 43
4.4 OTLT或MUCK表问题 45
4.5 正确表的定义 48
第5章 辅助表 49
5.1 序列表 49
5.1.1 创建序列表 51
5.1.2 序列构造器 51
5.1.3 替换迭代循环 52
5.2 排列 54
5.2.1 通过递归进行排列 54
5.2.2 通过CROSS JOIN进行排列 55
5.3 函数 57
5.4 通过表实现加密 59
5.5 随机数 60
5.6 插值 63
第6章 视图 66
6.1 Mullins视图使用原则 66
6.1.1 高效访问和计算 67
6.1.2 重命名列 68
6.1.3 避免增生 68
6.1.4 视图同步原则 68
6.2 可更新视图和只读视图 69
6.3 视图的类型 71
6.3.1 单表投影和限制 71
6.3.2 计算列 71
6.3.3 转换列 72
6.3.4 分组视图 72
6.3.5 联合视图 73
6.3.6 视图的联结 74
6.3.7 嵌套视图 75
6.4 用表构建类模型 76
6.4.1 SQL中类的层次结构 77
6.4.2 通过ASSERTION和TRIGER工作的子类 79
6.5 数据库系统如何处理视图 79
6.5.1 视图列的列表 79
6.5.2 视图的物化 80
6.6 嵌入式文本扩展 80
6.7 WITH CHECK OPTION子句 81
6.8 删除视图 86
6.9 过时的视图用法 87
6.9.1 域的支持 87
6.9.2 表表达式视图 88
6.9.3 表级CHECK()约束的视图 88
6.9.4 每个基表一个视图 88
第7章 虚拟表 90
7.1 派生表 90
7.1.1 列的命名规则 91
7.1.2 作用域规则 91
7.1.3 公开的表名 93
7.1.4 LATERAL()子句 94
7.2 CTE 96
7.2.1 非递归CTE 96
7.2.2 递归CTE 97
7.3 临时表 98
7.3.1 ANSI/ISO标准 99
7.3.2 厂商的模型 99
7.4 信息模式 99
7.4.1 INFORMATION_SCHEMA声明 100
7.4.2 视图及其用途的快速列表 101
7.4.3 域的声明 102
7.4.4 定义模式 102
7.4.5 INFORMATION_SCHEMA断言 105
第8章 用表实现的复杂函数 106
8.1 没有简单公式的函数 106
8.2 用表实现校验位 107
8.2.1 校验位的定义 107
8.2.2 检错与纠错的对比 108
8.3 算法的分类 109
8.3.1 加权和算法 109
8.3.2 幂和校验位 111
8.3.3 Luhn算法 112
8.3.4 Dihedral Five校验位 113
8.4 声明不是函数,不是过程 114
8.5 用于辅助表的数据挖掘 118
第9章 时态表 120
9.1 时间的本质 120
9.1.1 时间段,不是时间子 121
9.1.2 细分程度 122
9.2 ISO半开放时间模型 123
9.2.1 用NULL表示永远 125
9.2.2 单时间戳表 125
9.2.3 重叠的时间间隔 127
9.3 状态转换表 134
9.4 合并时间间隔 138
9.4.1 游标和触发器 139
9.4.2 OLAP函数解决方案 140
9.4.3 CTE解决方案 141
9.5 Calendar表 142
9.5.1 用表提供星期值 142
9.5.2 节假日列表 143
9.5.3 报告期 145
9.5.4 自更新视图 145
9.6 历史表 147
第10章 用非第一范式表清理数据 149
10.1 重复的组 149
10.2 设计清理表 155
10.3 清理操作使用的约束 157
10.4 日历清理 158
10.5 字符串清理 159
10.6 共享SQL数据 161
10.6.1 数据的发展 162
10.6.2 数据库 162
10.7 提取、转换和加载产品 163
10.7.1 加载数据仓库 164
10.7.2 全部用SQL来完成 165
10.7.3 提取、转换并加载 166
第11章 以SQL的方式思考 168
11.1 热身练习 168
11.1.1 整体,不是部分 169
11.1.2 特征函数 169
11.1.3 尽早锁定解决方案 171
11.2 启发式方法 172
11.2.1 将规范表达为清晰的语句 172
11.2.2 在名词前面添加“所有……的集合”几个字 172
11.2.3 删除问题语句中的行为动词 173
11.2.4 仍然可以使用存根 173
11.2.5 不要担心数据的显示 174
11.2.6 第一次尝试需要专门处理 175
11.2.7 不要害怕抛弃自己在DDL中的首次尝试 175
11.2.8 克制使用DML的冲动 176
11.2.9 不要以方框和箭头的方式思考 176
11.2.10 画圆和数据集示意图 177
11.2.11 学习具体的产品 178
11.2.12 把WHERE子句看做“超级变形虫” 178
11.2.13 使用新闻组、博客和因特网 178
11.3 不要在SQL中使用BIT或BOOLEAN标记 179
11.3.1 标记位于错误的层 179
11.3.2 标记使用不当使正确属性难以理解 181
第12章 组特征 184
12.1 并不是按是否相等来分组 185
12.2 使用组,不看里面是什么 186
12.2.1 半面向数据集的方式 187
12.2.2 分组的解决方案 188
12.2.3 解决方案总结 189
12.3 根据时间分组 190
12.3.1 渐进式解决方案 190
12.3.2 整体数据解决方案 192
12.4 其他使用HAVING子句的技术 192
12.5 GROUPING、ROLLUP和CUBE 194
12.5.1 GROUPING SET子句 194
12.5.2 ROLLUP子句 195
12.5.3 CUBE子句 196
12.5.4 关于超级组的脚注 196
12.6 WINDOW子句 196
12.6.1 PARTITION BY子句 197
12.6.2 ORDER BY子句 198
12.6.3 RANGE子句 198
12.6.4 编程技巧 199
第13章 将技术规范变为代码 200
13.1 不良SQL的标志 200
13.1.1 代码的格式是否像另一种语言 200
13.1.2 顺序访问假设 201
13.1.3 游标 201
13.1.4 糟糕的内聚度 201
13.1.5 表值函数 202
13.1.6 同一数据元素有多个名称 202
13.1.7 数据库中的格式 202
13.1.8 将日期保存到字符串中 203
13.1.9 BIT标记、BOOLEAN及其他计算列 203
13.1.10 跨列的属性分割 203
13.1.11 跨行的属性分割 203
13.1.12 跨表的属性分割 203
13.2 解决方法 204
13.2.1 基于游标的解决方案 204
13.2.2 半面向数据集的解决方案 205
13.2.3 完全面向数据集的解决方案 207
13.2.4 面向数据集代码的优点 207
13.3 解释含糊的说明 207
13.3.1 回归到DDL 209
13.3.2 修改问题说明 211
第14章 使用过程及函数调用 213
14.1 清除字符串中的空格 213
14.1.1 过程式解决方案#1 213
14.1.2 函数解决方案#1 214
14.1.3 函数解决方案#2 217
14.2 聚合函数PRD() 218
14.3 在过程和函数中使用长参数列表 220
第15章 对行编号 223
15.1 过程式解决方案 223
15.2 OLAP函数 226
15.2.1 简单的行编号 226
15.2.2 RANK()和DENSE_RANK() 227
15.3 节 228
第16章 保存计算数据 231
16.1 过程式解决方案 231
16.2 关系式解决方案 232
16.3 其他种类的计算数据 233
第17章 约束类触发器 234
17.1 计算类触发器 234
17.2 通过CHECK()和CASE约束实现的复杂约束 235
17.3 通过视图实现复杂约束 237
17.4 用约束实现视图操作 239
17.4.1 3个基本操作 239
17.4.2 WITH CHECK OPTION子句 240
17.4.3 WITH CHECK OPTION与CHECK()子句 243
17.4.4 视图的行为 244
17.4.5 联合视图 246
17.4.6 简单的INSTEAD OF触发器 247
17.4.7 关于INSTEAD OF触发器的告诫 250
第18章 过程式解决方案和数据驱动的解决方案 251
18.1 删除字符串中的字母 251
18.1.1 过程式解决方案 252
18.1.2 纯粹的SQL解决方案 252
18.1.3 不纯粹的SQL解决方案 253
18.2 数独的两种求解方法 254
18.2.1 过程式解决方案 254
18.2.2 数据驱动的解决方法 254
18.2.3 处理已知数字 255
18.3 数据约束方法 257
18.4 装箱问题 261
18.4.1 过程式解决方法 261
18.4.2 SQL方式 262
18.5 库存成本随时间的变化 264
18.5.1 库存中使用的UPDATE语句 267
18.5.2 回到装箱问题 268
· · · · · · (收起)

读后感

评分

在最近3年多的工作中使用SQL比较多,去年还考了微软的SQLServer证书,越来越能体会到SQL这种语言的设计之妙,和数据库引擎之复杂。 本书亮点有3: 1. 提出声明式编程,这不正好符合现在流行的函数式编程的思想吗?而函数式编程的好处之一就是便于进行并行计算的优化,我猜想这...  

评分

这本书写得很糟糕,章节都抓不住重点,完全不知道他想说什么。自己声称的重要观点很多都无法赞同,简直像是国内很多计算机教授的著作。绝对不推荐看。 有些观点太过纯粹化理想化学术化了,以至于实际应用如果一直坚持,会导致一些看起来很美其实却很糟糕的设计和代码。另一些...  

评分

这本书写得很糟糕,章节都抓不住重点,完全不知道他想说什么。自己声称的重要观点很多都无法赞同,简直像是国内很多计算机教授的著作。绝对不推荐看。 有些观点太过纯粹化理想化学术化了,以至于实际应用如果一直坚持,会导致一些看起来很美其实却很糟糕的设计和代码。另一些...  

评分

在最近3年多的工作中使用SQL比较多,去年还考了微软的SQLServer证书,越来越能体会到SQL这种语言的设计之妙,和数据库引擎之复杂。 本书亮点有3: 1. 提出声明式编程,这不正好符合现在流行的函数式编程的思想吗?而函数式编程的好处之一就是便于进行并行计算的优化,我猜想这...  

评分

虽然NoSQL和DDD早已大行其道,关系型数据库日渐从应用程序的核心走向边缘,但是这本书仍然尤其价值。 第一点,关系型数据库背后的关系理论是非常优美和强大的,使得SQL语言本身就像依托了高阶函数的LISP和一阶谓词的Prolog一样,是一种表达、分析、建模的利器。 第二点,我认...  

用户评价

评分

作为一个长期与数据打交道的实践者,我对于那种“纸上谈兵”的理论叙述持保留态度。《SQL沉思录》如果真能达到“沉思”的境界,那么它必然得包含大量源于一线实战的案例,并且这些案例必须是复杂且具有代表性的。我设想的场景是,面对一个跨越数个表、涉及窗口函数、递归CTE和复杂子查询的报告生成需求,作者是如何逐步构建出最优解的。这个过程中的每一步取舍、每一种被否决的方案,都应该被详尽记录。这种“过程式”的教学比直接给出最终答案更有价值,它训练的是读者的逻辑推理和问题分解能力。如果书中只是罗列了各种函数的用法,那未免有些遗憾,我更期待的是一场关于“如何思考复杂数据问题”的深度工作坊。

评分

这本书的篇章结构,从书名来看,似乎更偏向于对SQL概念的深入剖析,而非仅仅是语法手册的堆砌。我关注的焦点在于,作者是如何处理那些在实际工作中经常令人头疼的灰色地带——比如复杂的JOIN条件下的性能瓶颈,或者在不同数据库厂商(如Oracle、PostgreSQL、MySQL)之间迁移时遇到的细微语义差异。一本真正有价值的书,应该能提供一套行之有效的“调试思维模型”,帮助读者在面对一个“黑箱”般的性能问题时,能够系统地拆解、定位并解决。我尤其希望看到作者分享一些“反面教材”,那些曾经犯过的、代价高昂的错误,以及从这些错误中提炼出的宝贵教训。毕竟,从别人的失败中学习,往往比模仿成功案例来得更快、更深刻。如果《SQL沉思录》能提供这种深度和广度兼具的洞察,那它无疑值得被放在工作台最容易拿到的地方。

评分

《SQL沉思录》这本书的标题就已经透露出一种深邃和反思的意味,让人忍不住想探究其中究竟蕴含着怎样的真知灼见。我一直以来都觉得,数据库技术远不止于CRUD(增删改查),它更像是一门艺术,一门需要不断打磨和精进的技艺。这本书的评价如果只停留在“讲得清楚”或“代码示例多”的层面,那就太肤浅了。我更期待的是,作者能够带我们领略SQL语言背后的哲学思考,比如如何在高并发场景下平衡事务的一致性与性能,如何在海量数据面前设计出优雅且易于维护的查询逻辑。我希望它能像一本智者与读者的对话录,引导我们跳出日常工作的琐碎,去思考更宏大的数据架构和数据治理问题。那种能在凌晨三点被一个奇妙的查询优化思路惊醒的感觉,才是真正优秀的技术书籍带给读者的馈赠。这本书如果能做到这一点,那它就不仅仅是一本技术手册,而是一份关于数据思维的修炼指南。

评分

从读者的角度看,一本好的技术书应该能够改变你看待事物的视角。《SQL沉思录》这个名字,暗示了一种对既有范式的挑战或者超越。我希望这本书能探讨一些非主流但极具启发性的SQL用法,例如如何巧妙利用某些数据库特有的函数(如JSONB操作符或高级空间数据类型)来解决传统关系模型难以处理的问题,从而拓宽我们使用SQL解决问题的边界。更进一步,如果能对未来SQL的发展趋势,或者如何在云原生、Serverless的环境下重新审视关系型数据库的设计哲学有所建树,那这本书的价值将不可估量。它不应该只是教我如何更好地使用今天的工具,更应该启发我如何更好地拥抱明天的技术挑战。我期待的,是一种既扎根于基础又面向未来的、充满智慧的阅读体验。

评分

我发现很多技术书籍在追求“全面”的过程中,往往牺牲了“深度”。对于SQL这样一门成熟的语言,市面上不乏基础教程。因此,我更关注《SQL沉思录》在“沉思”二字上做了多少文章。这可能意味着作者对SQL标准、执行计划的底层原理,甚至是查询优化器内部决策机制的深刻理解。比如,当面对一个看似简单的`GROUP BY`语句,底层是如何利用索引、内存排序和磁盘I/O进行权衡的?如果书中能以一种近乎“解剖”的方式,将这些复杂的内部运作机制清晰地展现出来,即使篇幅显得略微艰深,也绝对是物超所值。这种对原理的执着探究,是区分普通参考书和经典著作的关键所在。我希望这本书能把我从一个只会写查询的“码农”提升为一个懂得“驾驭”数据的工程师。

评分

简单过了一遍,DBA绝对是个神奇的职业!

评分

简单过了一遍,DBA绝对是个神奇的职业!

评分

简单过了一遍,DBA绝对是个神奇的职业!

评分

太专业,不实用

评分

一本类cookbook的sql丛书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.quotespace.org All Rights Reserved. 小美书屋 版权所有