商品详情
定价:158.0
ISBN:9787115455024
作者:MICK
出版时间:2017-06
内容提要:
畅销书《SQL基础教程》第 2版,介绍了关系数据库以及用来操作关系数据库的SQL语言的使用方法。书中通过丰富的图示、大量示例程序和详实的操作步骤说明,让读者循序渐进地掌握SQL的基础知识和使用技巧,切实提高编程能力。每章结尾设置有练习题,帮助读者检验对各章内容的理解程度。另外,本书还将重要知识点总结为“法则”,方便读者随时查阅。第 2版除了将示例程序更新为对应**新的DB的SQL之外,还新增了一章,介绍如何从应用程序执行SQL。
《SQL进阶教程》是作者MICK为志在向中级进阶的数据库工程师编写的一本SQL技能提升指南。全书可分为两部分,第 一部分介绍了SQL语言不同寻常的使用技巧,带领读者从SQL常见技术,比如CASE表达式、自连接、HAVING子句、外连接、关联子查询、EXISTS……去探索新发现。这部分不仅穿插讲解了这些技巧背后的逻辑和相关知识,而且辅以丰富的示例程序,旨在帮助读者提升编程水平;第 二部分着重介绍关系数据库的发展史,把实践与理论结合起来,旨在帮助读者加深对关系数据库和SQL语言的理解。此外,每节末尾均设置有练习题,并在书末提供了解答,方便读者检验自己对书中知识点的掌握程度。
本书适合具有半年以上SQL使用经验、已掌握SQL基础知识和技能、希望提升自己编程水平的读者阅读。
作者简介:
MICK(作者)
日本zi深数据库工程师,就职于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语言》等。
目录:
第0章 绪论——搭建SQL的学习环境1
0-1 PostgreSQL的安装和连接设置3
安装步骤3
修改设置文件7
0-2 通过PostgreSQL执行SQL语句9
连接PostgreSQL(登录)9
执行SQL语句10
创建学习用的数据库11
连接学习用的数据库(登录)12
第 1章 数据库和SQL13
1-1 数据库是什么15
我们身边的数据库15
为什么DBMS那么重要16
DBMS的种类18
1-2 数据库的结构20
RDBMS的常见系统结构20
表的结构22
1-3 SQL概要25
标准SQL25
SQL语句及其种类26
SQL的基本书写规则27
1-4 表的创建30
表的内容的创建30
数据库的创建(CREATE DATABASE语句)31
表的创建(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
需要注意NULL58
比较运算符60
对字符串使用不等号时的注意事项62
不能对NULL使用比较运算符65
2-3 逻辑运算符68
NOT运算符68
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
指定多个排序键111
NULL的顺序111
在排序键中使用显示用的别名112
ORDER BY子句中可以使用的列114
不要使用列编号114
练习题116
第4章 数据更新117
4-1 数据的插入(INSERT语句的使用方法)119
什么是INSERT119
INSERT语句的基本语法120
列清单的省略123
插入NULL123
插入默认值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
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
日期函数190
转换函数194
6-2 谓词198
什么是谓词198
LIKE谓词——字符串的部分一致查询198
BETWEEN谓词——范围查询202
IS NULL、IS NOT NULL——判断是否为NULL203
IN谓词——OR的简便用法204
使用子查询作为IN谓词的参数205
EXIST谓词210
6-3 CASE表达式214
什么是CASE表达式214
CASE表达式的语法214
CASE表达式的使用方法215
练习题221
第7章 集合运算223
7-1 表的加减法225
什么是集合运算225
表的加法——UNION225
集合运算的注意事项228
包含重复行的集合运算——ALL选项229
选取表中公共部分——INTERSECT230
记录的减法——EXCEPT231
7-2 联结(以列为单位对表进行联结)234
什么是联结234
内联结——INNER JOIN235
外联结——OUTER JOIN240
3张以上的表的联结243
交叉联结——CROSS JOIN246
联结的特定语法和过时语法249
练习题254
第8章 SQL**处理255
8-1 窗口函数257
什么是窗口函数257
窗口函数的语法258
语法的基本使用方法——使用RANK函数258
无需指定PARTITION BY261
专用窗口函数的种类262
窗口函数的适用范围263
作为窗口函数使用的聚合函数264
计算移动平均266
两个ORDER BY269
8-2 GROUPING运算符271
同时得到合计行271
ROLLUP——同时得出合计和小计272
GROUPING函数——让NULL更加容易分辨277
CUBE——用数据来搭积木279
GROUPING SETS——取得期望的积木281
练习题282
第9章 通过应用程序连接数据库283
9-1 数据库世界和应用程序世界的连接285
数据库和应用程序之间的关系285
驱动——两个世界之间的桥梁286
驱动的种类287
9-2 Java基础知识289
第 一个程序Hello,World
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...