zi深数据库工程师写給初学者的好用手册! 107张数据图表 209段编码 88个法则,莱鸟升阶bi备! 根据规范SQL撰写,明确各RDBMS(PostgreSQL/DB2/MySQL/Oracle/SQL Server)的差别! 1.畅销书升级版,內容升级更全方位! 第1版豆瓣电影评分8.8分,大量采集13次,好评如潮。第2版根据最新版本RDBMS全方位升級,并增加一章详细介绍从手机应用程序实行SQL句子的方式。 2.循序渐进,构造清楚,真实合适初学者! 从数据库查询、表的构造到查寻、升级表的英语的语法,常见的涵数,表的联接等,內容逐渐深层次。针对初学者普遍的问题点,均根据专栏开展解读。各章节目录后精心策划了习题,协助读者巩固了解。 3.两色包装印刷,排版设计与众不同,给你读起來舒服! 两色包装印刷心旷神怡,“学习培训重中之重”“KEYWORD”“待办”“法则”“专栏”等各种各样小控制模块帮你整理知识结构图,让学习培训全过程事倍功半。这书是畅销书《SQL基础教程》第2版,详细介绍了关系数据库及其用于实际操作关系数据库的SQL言语的使用说明。书中根据丰富多彩的图例、很多范例程序流程和详尽的操作流程表明,让读者由浅入深地把握SQL的基本知识和应用方法,着力提升编写程序工作能力。每章末尾设定有习题,协助读者检测对各章內容的了解水平。此外,这书还将关键知识结构图小结为“法则”,便捷读者随时随地查看。第2版除开将范例程序流程升级为相匹配*的DB的SQL以外,还增加了一章,详细介绍怎样从手机应用程序实行SQL。
目录
- 第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
- 表的创建(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
- 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
- 什么是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
- 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——判断是否为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
- 外联结——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
- 驱动——两个世界之间的桥梁 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