SQL基础教程(第2版) ([日] MICK)(Z-Library)
Author: [日] MICK
SQL
No Description
📄 File Format:
PDF
💾 File Size:
22.1 MB
21
Views
0
Downloads
0.00
Total Donations
📄 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.
📄 Page
1
(This page has no text content)
📄 Page
2
图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使用, 未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产权。 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。
📄 Page
3
(This page has no text content)
📄 Page
4
(This page has no text content)
📄 Page
5
图书在版编目(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号
📄 Page
6
前 言 本书面向完全没有编程和系统开发经验的初学者,介绍了关系数据库以及用来操作关 系数据库的 SQL 语言的使用方法。各个章节结合具体示例进行解说,并在每章的结尾安排 了习题,用来检验读者对该章内容的理解程度。大家可以从第 1 章开始,亲自验证示例程序, 循序渐进地掌握 SQL 的基础知识和技巧。另外,本书还将重要知识点总结为法则,方便读 者在学习完本书之后随时查阅。 近年来,和其他系统领域一样,数据库领域也实现了飞速发展,应用范围不断扩大, 不但出现了具有新功能的数据库,而且操作的数据量也大幅增长。 本书将要介绍的关系数据库是时下最流行的数据库,也是理解其他数据库的基础。在 系统领域,通常所讲的数据库指的就是关系数据库,其重要性可见一斑。 估计很多读者今后都会慢慢积累各个领域、各种规模的系统开发经验(或者可能已经 开始从事开发方面的工作了),到那时,所有的系统必定都需要使用数据库。它们使用的数 据库,即便不是关系数据库,也一定是以关系数据库为基础的数据库。从这个意义上看, 如果掌握了关系数据库和 SQL,就能成为任何系统开发都需要的数据库专家了。 现在距离本书初版问世已经 6 年了,在这 6 年间,数据库发挥了越来越重要的作用。 以前就有专家使用数据库进行统计分析,后来数据库也开始逐渐被应用到大规模数据的处 理上,并引发了商业领域的变革。象征着这一变化的“大数据”“数据科学”等用语,已经 突破了系统的领域,蔓延到了整个社会之中。甚至有观点认为,统计分析将和人工智能并 列成为决定社会未来走向的重要因素。 一方面,数据库的世界中也进行着技术的革新。如今,以 KVS 为代表的非关系数据库 的使用已经不再稀奇。同时,为了追求更高的大规模数据处理的性能,内存数据库和面向 列数据库的技术也取得了长足的进步,并逐渐投入到实际应用当中。 另一方面,关系数据库依然是当今的主流数据库,这一点没有变。从这个意义上来说, 学习关系数据库和操作关系数据库的语言 SQL 语句,仍然是探究数据库世界的第一步,这 一点也没有变,但这并不是说关系数据库和 SQL 语句一直在止步不前。大多数 DBMS 都 支持窗口函数和 GROUPING运算符(详见第 8 章),高效处理大规模数据的功能也更加 完善。掌握了 SQL 语句,就可以自由自在地操作数据,构筑高效的系统。 本书与时俱进地进行了版本升级。不但根据具有代表性的 DBMS 的新版本对 SQL 语 法的支持情况更新了描述,还新增了第 9 章,介绍了通过应用程序来使用数据库的方法。 本书旨在把数据库领域的精彩展示给大家,衷心希望本书能为大家的进步提供一些帮助。 MICK
📄 Page
7
● IV 前言 关于本书 本书是编程学习系列的 SQL 和关系数据库篇。该系列注重对初学者编程能力的培养, 本书秉承了这一宗旨。本书不仅可以用于自学,也可以作为大学、专科学校和企业新人的培 训用书。书中提供了大量的示例程序和详实的操作步骤说明,大家可以亲自动手解决具体的 问题,切实提高自身的编程能力。 另外,在各章的结尾处还安排了习题来帮助大家复习该章的知识要点,习题的答案和 讲解收录在附录中。 读者对象 ● 不了解数据库和SQL知识的人 ● 虽然自学了一些SQL知识,但仍希望进行系统学习的人 ● 需要使用数据库,但不知道从何入手的人 ● 在大学、专科学校和企业的教育部门等从事数据库和SQL教学的人 ● 希望了解信息处理考试中SQL部分应试策略的人 学习本书前的预备知识 ● 了解Windows的基本操作方法 ● 能够使用Windows的资源管理器创建文件夹并复制文件 ● 能够使用Windows的记事本(或者其他文本编辑器)创建文本文件
📄 Page
8
●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 语句的执行环境。关于
📄 Page
9
● 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 语句。
📄 Page
10
●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);
📄 Page
11
● 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文件夹中所收录的文件的著作权归本书作者所有。读者可以出于个人目的, 根据需要自行使用和修改其中的程序。 对于个别环境相关的问题,以及在超出本书内容范围的环境中进行设置时的问题,本社 概不负责解答。
📄 Page
12
第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 目 录
📄 Page
13
● 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
📄 Page
14
●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
📄 Page
15
● 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
📄 Page
16
●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
📄 Page
17
● 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
📄 Page
18
●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
📄 Page
19
● 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
📄 Page
20
第0章 绪论 ——搭建SQL的学习环境 PostgreSQL的安装和连接设置 通过PostgreSQL执行SQL语句
The above is a preview of the first 20 pages. Register to read the complete e-book.
Recommended for You
Loading recommended books...
Failed to load, please try again later