Statistics
18
Views
0
Downloads
0
Donations
Support
Share
Uploader

高宏飞

Shared on 2026-04-13

Author[日] MICK

No description

Tags
No tags
ISBN: 7115455023
Publish Year: 2017
Language: 英文
Pages: 341
File Format: PDF
File Size: 22.1 MB
Support Statistics
¥.00 · 0times
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

(This page has no text content)
图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使用, 未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。
(This page has no text content)
(This page has no text content)
    图书在版编目(CIP)数据     SQL基础教程 / (日)MICK著;孙淼,罗勇译 . -- 2 版 . -- 北京:人民邮电出版社,2017.6   (图灵程序设计丛书)   ISBN 978-7-115-45502-4   Ⅰ. ①S… Ⅱ. ①M… ②孙… ③罗… Ⅲ . ①关系数据 库系统-教材 Ⅳ . ①TP311.138   中国版本图书馆CIP数据核字(2017)第087921号 SQL 第2版 ゼロからはじめるデータベース操作 (SQL dai2han Zero kara Hajimeru Database Sousa : 4445-0) Copyright © 2016 by Mick. Original Japanese edition published by SHOEISHA Co., Ltd. Simplified Chinese Character translation rights arranged with SHOEISHA Co., Ltd. through CREEK & RIVER Co., Ltd. and CREEK & RIVER SHANGHAI Co., Ltd. Simplified Chinese Character translation copyright © 2017 by Posts & Telecom Press. 本书中文简体字版由SHOEISHA Co., Ltd.授权人民邮电出版社独家出版。未经出版者书面许可, 不得以任何方式复制或抄袭本书内容。 版权所有,侵权必究。 内 容 提 要 本书是畅销书《SQL基础教程》的第2版,介绍了关系数据库以及用来操作关系数据库的SQL语 言的使用方法。书中通过丰富的图示、大量示例程序和详实的操作步骤说明,让读者循序渐进地掌握 SQL的基础知识和使用技巧,切实提高编程能力。每章结尾设置有练习题,帮助读者检验对各章内容 的理解程度。另外,本书还将重要知识点总结为“法则”,方便读者随时查阅。第2版除了将示例程序更 新为对应最新的DB的SQL之外,还新增了一章,介绍如何从应用程序执行SQL。   本书适合数据库和SQL语言的初学者阅读,也可作为大中专院校的教材及企业新人培训用书。 ◆ 著     [日] MICK   译    孙 淼 罗 勇   责任编辑 杜晓静   执行编辑 刘香娣 责任印制 彭志环 ◆ 人民邮电出版社出版发行  北京市丰台区成寿寺路11号   邮编 100164  电子邮件 315@ptpress.com.cn   网址 http://www.ptpress.com.cn   北京      印刷 ◆ 开本:800×1000 1/16   印张:21   字数:455千字 2017年6月第2 版   印数:16 901- 20 900册 2017年6月北京第1次印刷 著作权合同登记号 图字: 01-2016-6685号 定价:79.00元 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字20170147号
前 言 本书面向完全没有编程和系统开发经验的初学者,介绍了关系数据库以及用来操作关 系数据库的 SQL 语言的使用方法。各个章节结合具体示例进行解说,并在每章的结尾安排 了习题,用来检验读者对该章内容的理解程度。大家可以从第 1 章开始,亲自验证示例程序, 循序渐进地掌握 SQL 的基础知识和技巧。另外,本书还将重要知识点总结为法则,方便读 者在学习完本书之后随时查阅。 近年来,和其他系统领域一样,数据库领域也实现了飞速发展,应用范围不断扩大, 不但出现了具有新功能的数据库,而且操作的数据量也大幅增长。 本书将要介绍的关系数据库是时下最流行的数据库,也是理解其他数据库的基础。在 系统领域,通常所讲的数据库指的就是关系数据库,其重要性可见一斑。 估计很多读者今后都会慢慢积累各个领域、各种规模的系统开发经验(或者可能已经 开始从事开发方面的工作了),到那时,所有的系统必定都需要使用数据库。它们使用的数 据库,即便不是关系数据库,也一定是以关系数据库为基础的数据库。从这个意义上看, 如果掌握了关系数据库和 SQL,就能成为任何系统开发都需要的数据库专家了。 现在距离本书初版问世已经 6 年了,在这 6 年间,数据库发挥了越来越重要的作用。 以前就有专家使用数据库进行统计分析,后来数据库也开始逐渐被应用到大规模数据的处 理上,并引发了商业领域的变革。象征着这一变化的“大数据”“数据科学”等用语,已经 突破了系统的领域,蔓延到了整个社会之中。甚至有观点认为,统计分析将和人工智能并 列成为决定社会未来走向的重要因素。 一方面,数据库的世界中也进行着技术的革新。如今,以 KVS 为代表的非关系数据库 的使用已经不再稀奇。同时,为了追求更高的大规模数据处理的性能,内存数据库和面向 列数据库的技术也取得了长足的进步,并逐渐投入到实际应用当中。 另一方面,关系数据库依然是当今的主流数据库,这一点没有变。从这个意义上来说, 学习关系数据库和操作关系数据库的语言 SQL 语句,仍然是探究数据库世界的第一步,这 一点也没有变,但这并不是说关系数据库和 SQL 语句一直在止步不前。大多数 DBMS 都 支持窗口函数和 GROUPING运算符(详见第 8 章),高效处理大规模数据的功能也更加 完善。掌握了 SQL 语句,就可以自由自在地操作数据,构筑高效的系统。 本书与时俱进地进行了版本升级。不但根据具有代表性的 DBMS 的新版本对 SQL 语 法的支持情况更新了描述,还新增了第 9 章,介绍了通过应用程序来使用数据库的方法。 本书旨在把数据库领域的精彩展示给大家,衷心希望本书能为大家的进步提供一些帮助。 MICK
● IV 前言 关于本书 本书是编程学习系列的 SQL 和关系数据库篇。该系列注重对初学者编程能力的培养, 本书秉承了这一宗旨。本书不仅可以用于自学,也可以作为大学、专科学校和企业新人的培 训用书。书中提供了大量的示例程序和详实的操作步骤说明,大家可以亲自动手解决具体的 问题,切实提高自身的编程能力。 另外,在各章的结尾处还安排了习题来帮助大家复习该章的知识要点,习题的答案和 讲解收录在附录中。 读者对象 ● 不了解数据库和SQL知识的人 ● 虽然自学了一些SQL知识,但仍希望进行系统学习的人 ● 需要使用数据库,但不知道从何入手的人 ● 在大学、专科学校和企业的教育部门等从事数据库和SQL教学的人 ● 希望了解信息处理考试中SQL部分应试策略的人 学习本书前的预备知识 ● 了解Windows的基本操作方法 ● 能够使用Windows的资源管理器创建文件夹并复制文件 ● 能够使用Windows的记事本(或者其他文本编辑器)创建文本文件
●V前言 本书涉及的关系数据库 本书中使用的 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 语句的执行环境。关于
● VI 前言 PostgreSQL 的安装方法、SQL 语句的执行方法等详细内容,我们会在第 0 章介绍。 如果你已经安装了上述“本书涉及的关系数据库”中的数据库,也可以直接使用。 另外,如无特殊说明,本书中出现的 SQL 语句的执行结果,都是在 PostgreSQL 9.5 中 执行的结果。 关于程序下载 本书中的示例程序都可以从下面的网站下载。 http://www.ituring.com.cn/book/1880 示例程序为压缩的 Zip 文件形式,解压后的文件结构如下所示。 ReadMe.txt ………………注意事项 Sample ……………………第1章到第9章的示例程序 Answer ……………………习题答案 (示例程序) ReadMe.txt文件 介绍了示例程序的内容和注意事项,使用前请务必阅读该文件。 Sample文件夹 本书中所使用的示例程序分别保存在以章节为单位的文件夹中。在 Sample\ CreateTable文件夹中,按照 RDBMS 的不同,分别保存了用来创建示例用表的 SQL 语句。
●VII前言 Sample Ch01 …………………… 第1章的示例程序 1_4………………… 1-4节的示例程序 1_5………………… 1-5节的示例程序 Ch09 …………………… 第9章的示例程序 9_2………………… 9-2节的示例程序 9_3………………… 9-3节的示例程序 CreateTable …………… 创建示例用表的SQL语句 DB2 MySQL Oracle PostgreSQL SQLServer … … Answer文件夹 各章末习题的答案(示例程序),分别保存在以章为单位的目录中。 关于示例程序 示例程序的文件名与书中的代码清单编号相对应。例如,1-5 节的代码清单 1-3 的示例 程序,保存的位置和文件名如下所示。 Sample Ch01 1_5 List1_3.sql 另外,像如下代码清单这样,在不同的 RDBMS 中存在差异的 SQL 语句,会在其文件 名的末尾加上 RDBMS 的名称。 代码清单1-4   添加一列可以存储100位可变长度字符串的product_name_pinyin列 DB2 PostgreSQL MySQL ALTER TABLE Product ADD COLUMN product_name_pinyin VARCHAR(100);
● VIII 前言 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保存在下述目录中。 Sample CreateTable PostgreSQL CreateTableProduct.sql 保存在 Sample文件夹中的示例程序文件,可以使用 Windows 的记事本(或者其他 文本编辑器)打开。 声明  翔泳社 本书中的示例程序已经经过编辑部确认,在正常使用时不会出现任何问题。对于执行 程序所造成的任何损失,本书作者、软件开发人员和翔泳社概不承担相关责任。 Sample文件夹中所收录的文件的著作权归本书作者所有。读者可以出于个人目的, 根据需要自行使用和修改其中的程序。 对于个别环境相关的问题,以及在超出本书内容范围的环境中进行设置时的问题,本社 概不负责解答。
第0章 绪论——搭建SQL的学习环境  1 0-1 PostgreSQL的安装和连接设置 3 安装步骤 3 修改设置文件 7 0-2 通过PostgreSQL执行SQL语句 9 连接PostgreSQL(登录) 9 执行SQL语句 10 创建学习用的数据库 11 连接学习用的数据库(登录) 12 第1章 数据库和SQL  13 1-1 数据库是什么 15 我们身边的数据库 15 为什么DBMS那么重要 16 DBMS的种类 18 1-2 数据库的结构 20 RDBMS的常见系统结构 20 表的结构 22 1-3 SQL概要 25 标准SQL 25 SQL语句及其种类 26 SQL的基本书写规则 27 1-4 表的创建 30 表的内容的创建 30 数据库的创建(CREATE DATABASE语句) 31 目 录
● X 目录 表的创建(CREATE TABLE语句) 31 命名规则 33 数据类型的指定 34 约束的设置 35 1-5 表的删除和更新 37 表的删除(DROP TABLE语句) 37 表定义的更新(ALTER TABLE语句) 38 向Product表中插入数据 39 练习题 42 第2章 查询基础  43 2-1 SELECT语句基础 45 列的查询 45 查询出表中所有的列 47 为列设定别名 48 常数的查询 50 从结果中删除重复行 50 根据WHERE语句来选择记录 53 注释的书写方法 55 2-2 算术运算符和比较运算符 57 算术运算符 57 需要注意NULL 58 比较运算符 60 对字符串使用不等号时的注意事项 62 不能对NULL使用比较运算符 65 2-3 逻辑运算符 68 NOT运算符 68
●XI目录 AND运算符和OR运算符 70 通过括号强化处理 72 逻辑运算符和真值 74 含有NULL时的真值 76 练习题 78 第3章 聚合与排序  79 3-1 对表进行聚合查询 81 聚合函数 81 计算表中数据的行数 82 计算NULL之外的数据的行数 83 计算合计值 84 计算平均值 86 计算最大值和最小值 87 使用聚合函数删除重复值(关键字DISTINCT) 89 3-2 对表进行分组 91 GROUP BY子句 91 聚合键中包含NULL的情况 93 使用WHERE子句时GROUP BY的执行结果 94 与聚合函数和GROUP BY子句有关的常见错误 96 3-3 为聚合结果指定条件 101 HAVING子句 101 HAVING子句的构成要素 104 相对于HAVING子句,更适合写在WHERE子句中的条件 105 3-4 对查询结果进行排序 108 ORDER BY子句 108 指定升序或降序 110
● XII 目录 指定多个排序键 111 NULL的顺序 111 在排序键中使用显示用的别名 112 ORDER BY子句中可以使用的列 114 不要使用列编号 114 练习题 116 第4章 数据更新  117 4-1 数据的插入(INSERT语句的使用方法) 119 什么是INSERT 119 INSERT语句的基本语法 120 列清单的省略 123 插入NULL 123 插入默认值 124 从其他表中复制数据 126 4-2 数据的删除(DELETE语句的使用方法) 129 DROP TABLE语句和DELETE语句 129 DELETE语句的基本语法 129 指定删除对象的DELETE语句(搜索型DELETE) 130 4-3 数据的更新(UPDATE语句的使用方法) 133 UPDATE语句的基本语法 133 指定条件的UPDATE语句(搜索型UPDATE) 134 使用NULL进行更新 135 多列更新 136 4-4 事务 138 什么是事务 138 创建事务 139
●XIII目录 ACID特性 144 练习题 145 第5章 复杂查询  147 5-1 视图 149 视图和表 149 创建视图的方法 151 视图的限制① ——定义视图时不能使用ORDER BY子句 154 视图的限制② ——对视图进行更新 155 删除视图 159 5-2 子查询 160 子查询和视图 160 子查询的名称 163 标量子查询 163 标量子查询的书写位置 166 使用标量子查询时的注意事项 167 5-3 关联子查询 168 普通的子查询和关联子查询的区别 168 关联子查询也是用来对集合进行切分的 171 结合条件一定要写在子查询中 172 练习题 173 第6章 函数、谓词、CASE表达式  175 6-1 各种各样的函数 177 函数的种类 177 算术函数 178 字符串函数 182
● XIV 目录 日期函数 190 转换函数 194 6-2 谓词 198 什么是谓词 198 LIKE谓词——字符串的部分一致查询 198 BETWEEN谓词——范围查询 202 IS NULL、IS NOT NULL——判断是否为NULL 203 IN谓词——OR的简便用法 204 使用子查询作为IN谓词的参数 205 EXIST谓词 210 6-3 CASE表达式 214 什么是CASE表达式 214 CASE表达式的语法 214 CASE表达式的使用方法 215 练习题 221 第7章 集合运算  223 7-1 表的加减法 225 什么是集合运算 225 表的加法——UNION 225 集合运算的注意事项 228 包含重复行的集合运算——ALL选项 229 选取表中公共部分——INTERSECT 230 记录的减法——EXCEPT 231 7-2 联结(以列为单位对表进行联结) 234 什么是联结 234 内联结——INNER JOIN 235
●XV目录 外联结——OUTER JOIN 240 3张以上的表的联结 243 交叉联结——CROSS JOIN 246 联结的特定语法和过时语法 249 练习题 254 第8章 SQL高级处理  255 8-1 窗口函数 257 什么是窗口函数 257 窗口函数的语法 258 语法的基本使用方法——使用RANK函数 258 无需指定PARTITION BY 261 专用窗口函数的种类 262 窗口函数的适用范围 263 作为窗口函数使用的聚合函数 264 计算移动平均 266 两个ORDER BY 269 8-2 GROUPING运算符 271 同时得到合计行 271 ROLLUP——同时得出合计和小计 272 GROUPING函数——让NULL更加容易分辨 277 CUBE——用数据来搭积木 279 GROUPING SETS——取得期望的积木 281 练习题 282 第9章 通过应用程序连接数据库  283 9-1 数据库世界和应用程序世界的连接 285 数据库和应用程序之间的关系 285
● XVI 目录 驱动——两个世界之间的桥梁 286 驱动的种类 287 9-2 Java基础知识 289 第一个程序Hello,World 289 编译和程序执行 291 常见错误 294 9-3 通过Java连接PostgreSQL 298 执行SQL语句的Java程序 298 Java是如何从数据库中获取数据的呢 299 执行连接数据库的程序 301 选取表中的数据 302 更新表中的数据 305 小结 307 练习题 307 附录 练习题答案  308
第0章 绪论 ——搭建SQL的学习环境 PostgreSQL的安装和连接设置 通过PostgreSQL执行SQL语句