SQL进阶教程(第2版)
上QQ阅读APP看书,第一时间看更新

译者序

我曾在日本从事多年软件开发工作,工作中经常会跟各种数据库打交道,编写SQL代码也是常有的事情。但是对于SQL语言,我当时也只是通过大学里的一门讲授数据库系统的课程了解了基本的语法,在工作中积累了一些实用的经验而已,并没有进行过非常深入的研究。于是,我便打算找一本深入一些的书,最好是面向有一定编程经验的读者的,系统地学习一下。

后来我在书店遇见了 MICK 先生的这本书,翻看了前言和部分内容后,我便认为这本书正是我需要的,于是当场决定买下了。

几年过去,我由于个人原因回国了,工作中也不再使用日语,便想着借着业余时间翻译一些优秀的日语技术书。当图灵公司的老师问我是否有意向翻译这本书时,我立刻就答应了。当初回国时为了缩减行李,我只保留了几本日语原版的技术书,这本就是其中之一。有机会将这样一本多年前结缘、至今仍躺在我书架上的好书翻译成中文版,我实在没有什么理由拒绝。

这本书,我认为是作者的用心之作。书中大部分内容来自作者记录自己的实践总结和日常思考的个人博客,最大的特点是理论与实践相结合,除了讲述应该怎么做,还解释了其背后的原理。全书包含两部分内容,第一部分介绍了SQL在使用方面的一些技巧,第二部分介绍了关系数据库相关的内容。第一部分在介绍SQL的使用技巧时,作者并没有上来就展示各种酷炫的招式,而是先以简单的问题或者例题引出将要讨论的内容,在讲解之后进一步扩展,由点及面地引出更深的话题或者背后的原理。这种由浅入深的讲述方式,符合一般的学习习惯,读者能在轻松愉悦的阅读过程中,跟着作者一起思考,自然而然地掌握相应的思考方式。第二部分在介绍关系数据库时,作者先介绍了关系数据库诞生的历史背景及其解决的问题。关系数据库已经诞生了几十年,为了让现在的读者理解当初的问题和背景,作者大量引用了“关系数据库之父”埃德加 · 弗兰克 · 科德和关系数据库领域权威专家 C.J. 戴特的文献和言论,并按自己的理解给出了分析与解释,力图使读者体会到伟大人物在技术革新之际的心路历程。除此之外,在第二部分中,作者还从集合论和逻辑学的角度讲述了SQL和关系模型的理论基础。对于该部分内容,作者充分运用了自己在相关领域的深厚积累,以深入浅出的方式进行了阐述,我认为非常精彩。

书中引用了许多经典的图书和文献,作者都在边注和书末的参考文献中给出了详细的出处,方便有需要的读者进一步研读。更加可贵的是,在大多数小节的末尾,作者还提出了两三个精心设计的小问题。这些问题是正文内容的扩展和延伸,非常利于读者巩固相应的知识点。而且,针对这些问题,作者也给出了详细的解答,并指出了读者容易犯的错误。

推荐数据库工程师、经常需要和数据库打交道的软件工程师,以及所有希望提升SQL水平的读者阅读本书。在翻译过程中,我尽力还原了作者的意图,但是由于水平有限,难免存在问题,欢迎读者批评指正。读者在阅读中有任何问题,都可以通过电子邮件(ensho_go@hotmail.com)和我取得联系。

 

吴炎昌

2017 年 9 月

于北京