来源:图灵教育
近年来,和其他系统领域一样,数据库领域也实现了飞速发展,应用范围不断扩大,不但出现了具有新功能的数据库,而且操作的数据量也在大幅增长。关系数据库是时下最流行的数据库,也是理解其他数据库的基础。在系统领域,通常所说的数据库指的就是关系数据库,其重要性可见一斑。
如果问你哪个语言可以在关系数据库中自由穿梭,想必SQL绝对是大家心目中当之无愧的选手!结构化查询语言(Structured Query Language)简称SQL,它是一种特殊目的的编程语言,也是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
掌握SQL的重要性不言而喻。目前,SQL不仅是后端开发人员的基础技能,也成为优秀前端工程师的必备技能,毕竟凡是动态页面就涉及数据库,而学会SQL再研究其他关系数据库就简单多了。因此,标题中的80%其实是比较保守的说法,每一个程序员都需要掌握一部分SQL知识。
今天就为大家简单介绍两本无数读者喜爱的SQL入门图书,并为大家重点介绍后一本。
学习SQL的小伙伴对这个老朋友一定不陌生!如果有小伙伴问你,初学者适合阅读哪些SQL图书?前辈们通常首选推荐的就是这本:
Sams Teach Yourself SQL in 10 Minutes (4th Edition)
作者:Ben Forta
译者:钟鸣 刘晓霞
这本书豆瓣评分8.6,深受SQL初学者的喜爱!美系图书,知名技术作家Ben Forta作品(Ben老师写了好几本必知必会系列,图灵这边出版的还有一本《MySQL必知必会》),MIT等知名学府将这本书作为教材。特别简单易学,小开本,256页。
由浅入深地讲解了SQL的基本概念和语法,涉及数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,实例丰富,便于查阅。增加了针对Apache Open Office Base、MariaDB、SQLite等DBMS的描述,并根据新版本的Oracle、SQL Server、MySQL和PostgreSQL更新了相关示例。
6年前,作为初学者必备的《SQL基础教程》首版问世。通过讲解关系数据库以及用来操作关系数据库的SQL语言的使用方法,为读者提供了大量的示例程序和详实的操作步骤说明,得到了读者的喜爱。在豆瓣上获得8.8的评分,重印次数达到13次。
这6年间数据库也发挥着越来越重要的作用。随着技术的不断更新,《SQL基础教程》也进行了升级,针对具有代表性的DBMS的新版本对SQL 语法的支持情况更新了描述法,还专门介绍通过应用程序使用数据库的方法。
为了帮助读者扎实地掌握每章节的知识要点,在结尾处还精心设置了相应习题。还随书附带答案和讲解。这本书是编程学习系列的 “SQL和关系数据库” 篇。书籍秉承了注重对初学者编程能力的培养这一宗旨。不仅可以用于自学,也可以作为大学、专科学校和企业新人的培训用书。
让更多对SQL感兴趣的读者都能学会它。下面就来重点看看《SQL基础教程(第2版)》。除了封面上的小鹿变成了两只以外,我们再来了解一下它还有哪些新变化吧!
MICK(作者)
日本资深数据库工程师,就职于SI企业,致力于商业智能和数据仓库的开发。为CodeZine(http://codezine.jp)及IT杂志 WEB+DB PRESS 撰写技术文章。著作有《跟达人学SQL》和《跟达人学DB设计》,是Joe Celko's SQL Puzzles and Answers , Second Edition、Joe Celko's SQL for Smarties ,Fourth Edition: Advanced SQL Programming 的日文版的译者。
孙淼(译者)
从事对日软件设计和研发工作十余年,曾于2007年至2009年赴日学习工作,2015年至今再次长期赴日工作。精通应用Java、PHP进行Web框架的设计开发,并且有Oracle、Teradata、MySQL、NoSQL等多种数据库的设计开发经验。乐于品味生活细微的点滴,热衷于品尝和制作美食。译有《SQL基础教程》等。
罗勇(译者)
从事对日软件设计和研发工作十余年,曾多次赴日学习工作,目前就职于日本某大型企业。痴迷于技术和框架的研究,多次参与项目的需求分析、概要设计,精通多语言的Web框架和数据库的设计开发。业余爱好足球,和家人旅行。译有《SQL基础教程》《NoSQL数据库入门》和《明解C语言》等。
这本书是否适合你?
● 不了解数据库和SQL知识
● 虽然自学了一些SQL知识,但仍希望进行系统学习
● 需要使用数据库,但不知道从何入手
● 在大学、专科学校和企业的教育部门等从事数据库和SQL教学
● 希望了解信息处理考试中SQL部分应试策略
涉及哪些关系数据库
本书中使用的SQL 语句全部都在下列关系数据库管理系统(RDBMS)中进行了验证。
● OracleDatabase 12cR1
● SQLServer 2014
● DB2 10.5
● PostgreSQL 9.5.3
● MySQL 5.7
在这5 种RDBMS 之间存在差异的SQL 语句,或者只能在某种特定的RDBMS 中使用的SQL 语句,本书都用下列图标进行标识,来提示执行SQL 语句所使用的RDBMS。
反之,在所有RDBMS 中都能正常执行的SQL 语句则不用图标标识。
书籍的正确使用方式
首先,在第1 章前半部分学习关系数据库和SQL 的基础知识,然后结合具体的SQL 示例程序进行循序渐进的学习。
在SQL 的学习中,最重要的就是以下两点:
● 亲自编写SQL语句
● 通过执行SQL语句来学习和理解数据库操作
要提高学习效率,需尽量亲自执行并验证本书中的示例程序,逐步深入学习。为了便于初学者操作,本书使用PostgreSQL 作为SQL 语句的学习环境。在开始学习之前,读者需要先在自己的电脑上安装PostgreSQL,准备好SQL 语句的执行环境。
如无特殊说明,本书中出现的SQL 语句的执行结果,都是在PostgreSQL 9.5 中执行的结果。
本书中的示例程序都可以从下面的网站下载。
http://www.ituring.com.cn/book/1880
示例程序为压缩的Zip 文件形式,解压后的文件结构如下所示。
ReadMe.txt文件
介绍了示例程序的内容和注意事项,使用前请务必阅读该文件。
Sample文件夹
本书中所使用的示例程序分别保存在以章节为单位的文件夹中。在Sample\CreateTable 文件夹中,按照RDBMS 的不同,分别保存了用来创建示例用表的SQL语句。
Answer文件夹
各章末习题的答案(示例程序),分别保存在以章为单位的目录中。
通过目录了解这本书
第0章 绪论——搭建SQL的学习环境 1
0-1 PostgreSQL的安装和连接设置 3
0-2 通过PostgreSQL执行SQL语句 9
第1章 数据库和SQL 13
1-1 数据库是什么 15
1-2 数据库的结构 20
1-3 SQL概要 25
1-4 表的创建 30
1-5 表的删除和更新 37
第2章 查询基础 43
2-1 SELECT语句基础 45
2-2 算术运算符和比较运算符 57
2-3 逻辑运算符 68
练习题 78
第3章 聚合与排序 79
3-1 对表进行聚合查询 81
3-2 对表进行分组 91
3-3 为聚合结果指定条件 101
3-4 对查询结果进行排序 108
练习题 116
第4章 数据更新 117
4-1 数据的插入(INSERT语句的使用方法) 119
4-2 数据的删除(DELETE语句的使用方法) 129
4-3 数据的更新(UPDATE语句的使用方法) 133
4-4 事务 138
练习题 145
第5章 复杂查询 147
5-1 视图 149
5-2 子查询 160
5-3 关联子查询 168
练习题 173
第6章 函数、谓词、CASE表达式 175
6-1 各种各样的函数 177
6-2 谓词 198
6-3 CASE表达式 214
练习题 221
第7章 集合运算 223
7-1 表的加减法 225
7-2 联结(以列为单位对表进行联结) 234
练习题 254
第8 章 SQL高级处理 255
8-1 窗口函数 257
8-2 GROUPING运算符 271
练习题 282
第9章 通过应用程序连接数据库 283
9-1 数据库世界和应用程序世界的连接 285
9-2 Java基础知识 289
9-3 通过Java连接PostgreSQL 298
小结 307
练习题 307
附录 练习题答案 308
3. 其他关系数据库参考图书推荐
Oracle
MySQL
PostgreSQL