![db2a929ea58c521312a7abf7c8530b18.png](https://i-blog.csdnimg.cn/blog_migrate/f1e8d90b799d7b5d9aed1173e2f92349.png)
![af0d1b67d295b0e968621e6c55fa2782.png](https://i-blog.csdnimg.cn/blog_migrate/3571241c84db210eb1187f4ed538ec4f.png)
如果你使用计算机程序来访问数据库系统中的信息,你很可能是凡夫俗子。使用应用程序内置的查询工具未能获得期望的信息时,你就需要研究底层的 SQL 语句,找出其中的原因。
如果你最近在使用桌面数据库应用程序,却在使用它定义和查询所需的数据时举步维艰,你就是凡夫俗子。
如果你是数据库程序员,需要跳出习惯性思维去解决一些复杂的问题,你就是凡夫俗子。
如果你是精通某种数据库系统的专家,但需要将该系统中的数据整合到另一种支持 SQL 的系统中,你就是凡夫俗子。
![cde1479ce9dbed37214e580ada223c79.png](https://i-blog.csdnimg.cn/blog_migrate/1ef4df79be0408de1fd69c6e0e0b3aad.jpeg)
![95291444c5185dce7ec804f1ca89a53a.png](https://i-blog.csdnimg.cn/blog_migrate/25ccfc4c81763991987320684ae31c83.jpeg)
![7a8359bec64126d3624bf68be84c413e.png](https://i-blog.csdnimg.cn/blog_migrate/431f2fb814183ba5ef6c8db4d51a24c3.jpeg)
![f574ae909cca23d2cc3f23b1b2c60491.png](https://i-blog.csdnimg.cn/blog_migrate/718698f6147e49041bb1f8fbcbaa9eea.jpeg)
![e0f87b13b2de4c941c17a1a74c70cd33.png](https://i-blog.csdnimg.cn/blog_migrate/bcd3a189ea83db1c4832b282ab775535.jpeg)
![df043946d4c41e78509347c06160273b.png](https://i-blog.csdnimg.cn/blog_migrate/21590c74f21f6d4b63790a84b17eabf7.jpeg)
![57ef69ec8d1e1e8038c3cdf7428e10ee.png](https://i-blog.csdnimg.cn/blog_migrate/8916f49bffbeefefbe9a672c02f593e7.jpeg)
![0e86002c7f20cd6b6e1703140e80d8da.png](https://i-blog.csdnimg.cn/blog_migrate/40c2f41e228e1875d719758ec4990720.jpeg)
![07504fb91b21466018d1d35dcc9a3448.png](https://i-blog.csdnimg.cn/blog_migrate/bd33939baf0ca0c979f10fa48ed2092d.jpeg)
![1a47584de1c12217a8ba4650802d95ae.png](https://i-blog.csdnimg.cn/blog_migrate/460690889b5e208361d21e7beb921147.jpeg)
![3d4c6d53f8219aee4923cd357da5099d.png](https://i-blog.csdnimg.cn/blog_migrate/05610c2aa70e578e6ec536f852c98e60.jpeg)
![a304b4a8a0e08dec7ef3076d85a49877.png](https://i-blog.csdnimg.cn/blog_migrate/3168a2eada343b8d815655883622caf6.jpeg)
书的末尾还配有几个附录,列出了本书介绍过的所有 SQL 元素的语法图、示例数据库的结构、6 种主流数据库系统实现的日期和时间操作函数,以及可帮助你深入了解 SQL 的推荐读物。
作者针对 4 种数据库系统(Microsoft Access、Microsoft SQL Server、MySQL 和 PostgreSQL)提供了 5 个示例数据库。
以上就是对这本书的简单介绍,如果你是数据库新手,刚知道可使用 SQL 来获取所需的数据,那么这里有所有的 SQL 基础知识等你去探索。 如果你是专家级用户,但需要解 决复杂的问题或集成多个支持 SQL 的系统,那么你会对如何利用数据库语言 SQL 的复杂功能有更深刻的认识。 所以不管你处在 SQL 的什么阶段,这本绝对是你想要的! ☟![2269409a53c9415c368d45e2034550d8.png](https://i-blog.csdnimg.cn/blog_migrate/dfbe14c29b36cdceac5a57eaef090633.png)
拥有 50 多年经验的数据库专家倾囊相授,本书重点讲解 SQL 查询和数据操作的相关主题,包括关系型数据库和 SQL、SQL 基础、多表操作、汇总和分组数据,以及修改数据集等内容,针对编写 SQL 查询提供了轻松易懂的逐步指导,并包含上百个带有详细说明的例子。
作者简介
约翰·L.维斯卡斯(John L. Viescas),拥有 50 多年经验的独立数据库咨询师。职业生涯之初,作为系统分析师,负责为 IBM 大型机系统设计数据库应用程序;后在 Applied Data Research 任职,负责 IBM 大型机数据库产品的研发和客户支持。 1988 年加入 Tandem 计算机公司,负责开发和实现市场营销数据库程序。1993 年自创公司,为全球各种规模的企业提供数据库咨询和培训服务。 从 1993 年到 2015 年,创纪录地每年都被微软授予“最有价值专家”称号。John 还写过多部关于数据库的著作,还为技术刊物写过许多文章,并在世界各地的会议和用户组会议上发表过演讲。
(滑动查看目录)第一部分 关系型数据库和SQL
第1章 何谓关系型数据库 2 1.1 数据库类型 2 1.2 关系模型简史 2 1.3 关系型数据库剖析 4 1.4 学习关系型数据库有何好处 91.5 小结 10
第2章 确保数据库结构合理 11
2.1 为何在本书开头讨论数据库设计 11 2.2 为何要关心数据库结构是否合理 11 2.3 微调列 12 2.4 微调表 17 2.5 建立合理的关系 25 2.6 就这些吗 292.7 小结 29
第3章 SQL简史 31
3.1 SQL的起源 31 3.2 早期的厂商实现 32 3.3 标准应运而生 32 3.4 ANSI/ISO标准的发展历程 33 3.5 商用实现 36 3.6 展望未来 36 3.7 为何要学习SQL 36 3.8 本书基于哪个SQL版本 373.9 小结 37
第二部分 SQL基础
第4章 创建简单查询 40
4.1 SELECT简介 40 4.2 SELECT语句 41 4.3 说点题外话:数据和信息 42 4.4 将请求转换为SQL 43 4.5 消除重复行 47 4.6 对信息进行排序 48 4.7 保存所做的工作 51 4.8 语句举例 51 4.9 小结 574.10 练习 57
第5章 获取除简单列外的其他信息 59
5.1 何谓表达式 59 5.2 你要表示哪些类型的数据 60 5.3 修改数据类型:CAST函数 61 5.4 指定显式值 62 5.5 表达式类型 65 5.6 在SELECT子句中使用表达式 71 5.7 空值:Null 75 5.8 语句举例 77 5.9 小结 815.10 练习 82
第6章 筛选数据 84
6.1 使用WHERE提炼信息 84 6.2 定义查找条件 87 6.3 使用多个条件 98 6.4 再谈Null:一个注意事项 106 6.5 以不同的方式表示条件 109 6.6 语句举例 109 6.7 小结 114 6.8 练习 115第三部分 使用多个表
第7章 集合思维 118
7.1 何谓集合 118 7.2 集合运算 119 7.3 SQL 集合运算 1287.4 小结 133
第8章 内连接 135
8.1 何谓连接 135 8.2 内连接 135 8.3 内连接的用途 145 8.4 语句举例 146 8.5 小结 1588.6 练习 158
第9章 外连接 161
9.1 何谓外连接 161 9.2 左/右外连接 162 9.3 全外连接 173 9.4 外连接的用途 175 9.5 语句举例 176 9.6 小结 1849.7 练习 184
第10章 UNION 186
10.1 何谓UNION 186 10.2 使用UNION编写查询 187 10.3 UNION的用途 194 10.4 语句举例 194 10.5 小结 20010.6 练习 200
第11章 子查询 202
11.1 何谓子查询 202 11.2 作为列表达式的子查询 203 11.3 作为筛选器的子查询 207 11.4 子查询的用途 214 11.5 语句举例 215 11.6 小结 22211.7 练习 223
第四部分 数据汇总和分组
第12章 简单汇总 226
12.1 聚合函数 226 12.2 在筛选器中使用聚合函数 233 12.3 语句举例 234 12.4 小结 23812.5 练习 238
第13章 数据分组 240
13.1 为何要将数据分组 240 13.2 GROUP BY子句 242 13.3 一些限制 247 13.4 GROUP BY的用途 249 13.5 语句举例 250 13.6 小结 25513.7 练习 255
第14章 筛选分组数据 257
14.1 一种新的筛选方式 257 14.2 在哪里筛选更好 259 14.3 HAVING的用途 263 14.4 语句举例 264 14.5 小结 26814.6 练习 269
第五部分 修改数据集
第15章 更新数据集 272 15.1 何谓更新 272 15.2 UPDATE语句 272 15.3 有些数据库系统允许在UPDATE子句中使用连接 278 15.4 UPDATE的用途 280 15.5 语句举例 281 15.6 小结 28915.7 练习 290
第16章 插入数据集 291
16.1 何谓插入 291 16.2 INSERT语句 292 16.3 INSERT的用途 299 16.4 语句举例 299 16.5 小结 30516.6 练习 305
第17章 删除数据集 307
17.1 何谓删除 307 17.2 DELETE语句 307 17.3 DELETE的用途 311 17.4 语句举例 312 17.5 小结 31717.6 练习 317
第六部分 解决棘手问题
第18章 否定型问题和多条件型问题 320
18.1 简单地复习集合 320 18.2 解决否定型问题 323 18.3 根据多个肯定条件查找 327 18.4 语句举例 333 18.5 小结 34318.6 练习 343
第19章 条件测试 346
19.1 条件表达式(CASE) 346 19.2 使用CASE解决问题 349 19.3 语句举例 354 19.4 小结 36119.5 练习 361
第20章 使用非连接数据和“驱动”表 363
20.1 何谓非连接数据 363 20.2 使用非连接数据解决问题 366 20.3 使用“驱动”表解决问题 367 20.4 语句举例 371 20.5 小结 38120.6 练习 382
第21章 执行复杂的分组计算 384
21.1 不同分组的合计 384 21.2 扩展GROUP BY子句 386 21.3 使用ROLLUP获取分层合计 387 21.4 使用CUBE计算各种组合的汇总 393 21.5 使用GROUPING SETS合并汇总 396 21.6 分组技术变种 398 21.7 语句举例 400 21.8 小结 40521.9 练习 405
第22章 将数据划分到窗口中 407
22.1 将数据划分到窗口中有何用 407 22.2 计算行号 419 22.3 数据排名 420 22.4 将数据划分到五分位区间中 424 22.5 结合使用窗口和聚合函数 426 22.6 语句举例 429 22.7 小结 43922.8 练习 439
附录A SQL标准语法图 441 附录B 示例数据库的结构 453 附录C 与日期和时间相关的数据类型、运算和函数 460 附录D 推荐读物 469 结语 470 文末畅聊 小伙伴留言说说你平时会用到 SQL 的哪些功能?你觉得在使用 SQL 的过程中,哪些操作难住了你?我们会在精选留言中选出 5 位获得这本 SQL 宝典。活动截至 2020.6.4。推荐阅读
程序员想要学好数学,从认真读一本书开始! 作为谷歌开发者布道师,我为什么要写这本通俗的《数据压缩入门》(一) CSS Tricks网站创始人作序推荐,这本书助你成为Web开发高手![9b4fedbd16efecf3dc7b3a55156bfc17.png](https://i-blog.csdnimg.cn/blog_migrate/244d79bb3f0ae9cea59a08b82422b4b9.jpeg)