前言

本书面向完全没有编程和系统开发经验的初学者,介绍了关系数据库以及用来操作关系数据库的 SQL 语言的使用方法。各个章节结合具体示例进行解说,并在每章的结尾安排了习题,用来检验读者对该章内容的理解程度。大家可以从第 1 章开始,亲自验证示例程序,循序渐进地掌握 SQL 的基础知识和技巧。另外,本书还将重要知识点总结为法则,方便读者在学习完本书之后随时查阅。

近年来,和其他系统领域一样,数据库领域也实现了飞速发展,应用范围不断扩大,不但出现了具有新功能的数据库,而且操作的数据量也大幅增长。

本书将要介绍的关系数据库是时下最流行的数据库,也是理解其他数据库的基础。在系统领域,通常所讲的数据库指的就是关系数据库,其重要性可见一斑。

估计很多读者今后都会慢慢积累各个领域、各种规模的系统开发经验(或者可能已经开始从事开发方面的工作了),到那时,所有的系统必定都需要使用数据库。它们使用的数据库,即便不是关系数据库,也一定是以关系数据库为基础的数据库。从这个意义上看,如果掌握了关系数据库和 SQL,就能成为任何系统开发都需要的数据库专家了。

现在距离本书初版问世已经 6 年了,在这 6 年间,数据库发挥了越来越重要的作用。以前就有专家使用数据库进行统计分析,后来数据库也开始逐渐被应用到大规模数据的处理上,并引发了商业领域的变革。象征着这一变化的“大数据”“数据科学”等用语,已经突破了系统的领域,蔓延到了整个社会之中。甚至有观点认为,统计分析将和人工智能并列成为决定社会未来走向的重要因素。

一方面,数据库的世界中也进行着技术的革新。如今,以 KVS 为代表的非关系数据库的使用已经不再稀奇。同时,为了追求更高的大规模数据处理的性能,内存数据库和面向列数据库的技术也取得了长足的进步,并逐渐投入到实际应用当中。

另一方面,关系数据库依然是当今的主流数据库,这一点没有变。从这个意义上来说,学习关系数据库和操作关系数据库的语言 SQL 语句,仍然是探究数据库世界的第一步,这一点也没有变,但这并不是说关系数据库和 SQL 语句一直在止步不前。大多数 DBMS 都支持窗口函数和 GROUPING 运算符(详见第 8 章),高效处理大规模数据的功能也更加完善。掌握了 SQL 语句,就可以自由自在地操作数据,构筑高效的系统。

本书与时俱进地进行了版本升级。不但根据具有代表性的 DBMS 的新版本对 SQL 语法的支持情况更新了描述,还新增了第 9 章,介绍了通过应用程序来使用数据库的方法。

本书旨在把数据库领域的精彩展示给大家,衷心希望本书能为大家的进步提供一些帮助。

关于本书

本书是编程学习系列的 SQL 和关系数据库篇。该系列注重对初学者编程能力的培养,本书秉承了这一宗旨。本书不仅可以用于自学,也可以作为大学、专科学校和企业新人的培训用书。书中提供了大量的示例程序和详实的操作步骤说明,大家可以亲自动手解决具体的问题,切实提高自身的编程能力。

另外,在各章的结尾处还安排了习题来帮助大家复习该章的知识要点,习题的答案和讲解收录在附录中。

读者对象

  • 不了解数据库和 SQL 知识的人

  • 虽然自学了一些 SQL 知识,但仍希望进行系统学习的人

  • 需要使用数据库,但不知道从何入手的人

  • 在大学、专科学校和企业的教育部门等从事数据库和 SQL 教学的人

  • 希望了解信息处理考试中 SQL 部分应试策略的人

学习本书前的预备知识

  • 了解 Windows 的基本操作方法

  • 能够使用Windows 的资源管理器创建文件夹并复制文件

  • 能够使用Windows 的记事本(或者其他文本编辑器)创建文本文件

本书涉及的关系数据库

本书中使用的 SQL 语句全部都在下列关系数据库管理系统(RDBMS)中进行了验证。

  • Oracle Database 12cR1

  • SQL Server 2014

  • DB2 10.5

  • PostgreSQL 9.5.3

  • MySQL 5.7

在这 5 种 RDBMS 之间存在差异的 SQL 语句,或者只能在某种特定的 RDBMS 中使用的 SQL 语句,本书都用下列图标进行标识,来提示执行 SQL 语句所使用的 RDBMS。

Oracle SQL Server DB2 PostgreSQL MySQL

反之,在所有 RDBMS 中都能正常执行的 SQL 语句则不用图标标识。

本书的学习安排

首先,在第 1 章前半部分学习关系数据库和 SQL 的基础知识,然后结合具体的 SQL 示例程序进行循序渐进的学习。

在 SQL 的学习中,最重要的就是以下两点:

  • 亲自编写 SQL 语句

  • 通过执行 SQL 语句来学习和理解数据库操作

要提高学习效率,需尽量亲自执行并验证本书中的示例程序,逐步深入学习。

为了便于初学者操作,本书使用 PostgreSQL 作为 SQL 语句的学习环境。在开始学习之前,读者需要先在自己的电脑上安装 PostgreSQL,准备好 SQL 语句的执行环境。关于 PostgreSQL 的安装方法、SQL 语句的执行方法等详细内容,我们会在第 0 章介绍。

如果你已经安装了上述“本书涉及的关系数据库”中的数据库,也可以直接使用。

另外,如无特殊说明,本书中出现的 SQL 语句的执行结果,都是在 PostgreSQL 9.5 中执行的结果。

关于程序下载

本书中的示例程序都可以从下面的网站下载。

http://www.ituring.com.cn/book/1880

示例程序为压缩的 Zip 文件形式,解压后的文件结构如下所示。


前言_第1张图片
image.png

ReadMe.txt 文件

介绍了示例程序的内容和注意事项,使用前请务必阅读该文件。

Sample文件夹

本书中所使用的示例程序分别保存在以章节为单位的文件夹中。在 Sample\CreateTable 文件夹中,按照 RDBMS 的不同,分别保存了用来创建示例用表的 SQL 语句。

前言_第2张图片
image.png

Answer文件夹

各章末习题的答案(示例程序),分别保存在以章为单位的目录中。

关于示例程序
示例程序的文件名与书中的代码清单编号相对应。例如,1-5 节的代码清单 1-3 的示例程序,保存的位置和文件名如下所示。

前言_第3张图片
image.png

另外,像如下代码清单这样,在不同的 RDBMS 中存在差异的 SQL 语句,会在其文件名的末尾加上 RDBMS 的名称。

代码清单1-4 添加一列可以存储 100 位可变长度字符串的 product_name_pinyin 列

DB2 PostgreSQL MySQL
ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);

Oracle
ALTER TABLE Product ADD (product_name_pinyin VARCHAR(100));

SQL Server
ALTER TABLE Product ADD product_name_pinyin VARCHAR(100);

这种情况下,示例程序的文件名如下所示。

List1_4_DB2_PostgreSQL_MySQL.sql

List1_4_Oracle.sql

List1_4_SQL Server.sql

创建示例用表的 SQL 语句

用于创建示例用表的 SQL 文件保存在 Sample\CreateTable 文件夹中,文件名为“`CreateTable 表名.sql”。例如,PostgreSQL 用到的表 Product 保存在下述目录中。

前言_第4张图片
image.png

你可能感兴趣的:(前言)