- ISBN:9787115624413
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:408
- 出版时间:2024-08-01
- 条形码:9787115624413 ; 978-7-115-62441-3
本书特色
引导读者循序渐进地完成常见的SQL任务
以实际的例子说明概念的应用方法
配套练习题帮助及时检验所学内容
本书可作为SQL或数据库相关课程的参考教材,也可作为SQL的案例参考和函数速查手册,适合有一定编程基础、想要上手使用SQL的人阅读。
内容简介
本书用25章的篇幅帮助读者使用SQL构建高效的数据库,高效地检索数据,以及掌握从管理数据库性能到数据库安全等各个方面的知识。
本书在第6版的基础上进行了全面修订和重新组织,节奏更紧凑,更有助于深入理解现代SQL开发。本书基于标准化的SQL,使用免费、易用的Oracle Database Express展示代码。此外,本书还带有更多示例和实践练习。
本书以直观、循序渐进的方式展示如何使用数据库结构、对象、查询、表等。读者将学习如何应用高级技术,包括事务、连接,以及使用视图和子查询进行复杂数据检索。
循序渐进的示例引导读者完成*常见的SQL任务。
答疑和实践练习帮助读者测试所学知识并提升技能。
“注意”“提示”“警告”指出学习要点和问题解决方案。
本书主要内容
关系型数据库和SQL的概念
如何理解“数据”这一概念
建立数据库并规划高效的数据库设计
定义实体和关系,建立数据结构,并创建数据库对象
将原始数据库“规范化”为逻辑组织的表格
编辑关系型数据和表格并管理事务
编写有效、高性能的查询
对数据进行分类、汇总、排序、分组和调整
处理日期和时间
在查询中结合表,使用子查询,并组合多个查询
通过索引和其他技术优化性能
管理数据库和用户
保护数据库和数据
目录
1.1 在数据驱动的世界中壮大 2
1.1.1 组织、数据和用户群 2
1.1.2 数据库的定义 3
1.1.3 常见的数据库环境 3
1.1.4 客户机/服务器环境 4
1.1.5 基于 Web 的环境 4
1.2 关系型数据库简介 5
1.2.1 示例数据库简介 5
1.2.2 数据库的逻辑元素和物理元素 8
1.2.3 数据库模式 9
1.3 关系型数据库持续领跑. 9
1.4 示例和习题 10
1.5 小结 10
1.6 答疑 10
1.7 实践练习 11
第 2 章 SQL 语言的组成部分 12
2.1 SQL 的定义和历史 12
2.2 SQL 是一种标准语言 13
2.2.1 ANSI SQL 标准 13
2.2.2 标准的重要性 14
2.2.3 符合 SQL 标准的各种产品 14
2.2.4 本书用到的 SQL 产品 15
2.2.5 为自己和组织选择合适的产品 15
2.3 SQL 会话 15
2.3.1 CONNECT 16
2.3.2 DISCONNECT 和 EXIT 16
2.4 SQL 命令的种类 16
2.4.1 定义数据库结构 16
2.4.2 操作数据 17
2.4.3 获取数据库中的数据 17
2.4.4 数据控制语言 17
2.4.5 数据管理命令的使用 18
2.4.6 事务控制命令的使用 18
2.5 小结 18
2.6 答疑 18
2.7 实践练习 19
第 3 章 了解自己的数据 20
3.1 BIRD 数据库:本书的示例和习题 20
3.2 如何了解数据 20
3.2.1 鸟类信息 21
3.2.2 组织和用户 21
3.2.3 扩充数据库的机会 22
3.3 实体关系图 22
3.3.1 实体和关系 22
3.3.2 详细的实体/表 23
3.3.3 属性(列)的定义 23
3.3.4 表的命名标准 25
3.4 示例和习题 25
3.5 小结 25
3.6 答疑 25
3.7 实践练习 26
第 4 章 建立数据库 27
4.1 找到所需脚本文件 27
4.2 为实践练习做准备 27
4.2.1 下载并安装数据库软件 28
4.2.2 其他可选的数据库软件 30
4.2.3 创建具备所需权限的用户 31
4.2.4 为 BIRDS 数据库创建表和数据 32
4.3 各张表的数据清单 34
4.3.1 BIRDS 表的第 1 部分 34
4.3.2 BIRDS 表的第 2 部分 35
4.3.3 FOOD 表 35
4.3.4 BIRDS_FOOD 表 36
4.3.5 MIGRATION 表 37
4.3.6 BIRDS_MIGRATION 表 37
4.3.7 NESTS 表 38
4.3.8 BIRDS_NESTS 表 38
4.3.9 NICKNAMES 表 39
4.3.10 LOCATIONS 表 39
4.3.11 PHOTOS 表 40
4.4 小结 40
4.5 答疑 40
4.6 实践练习 40
第 5 章 关系型(SQL)数据库设计的基础知识 42
5.1 理解数据库设计与 SQL 的关系 42
5.2 数据库设计过程 42
5.3 选择数据库设计方法 43
5.4 用简单过程设计 BIRDS 数据库 44
5.4.1 了解数据 44
5.4.2 收集信息:向合适的人提出合适的问题 47
5.4.3 数据建模 47
5.5 逻辑模型与物理设计 49
5.6 数据库的生命周期 49
5.6.1 开发环境 50
5.6.2 测试环境 50
5.6.3 生产环境 50
5.7 小结 51
5.8 答疑 51
5.9 实践练习 51
第 6 章 定义实体和关系 53
6.1 为数据创建模型 53
6.1.1 数据 53
6.1.2 关系 54
6.1.3 参照完整性 54
6.2 定义关系 56
6.2.1 一对一关系 56
6.2.2 一对多关系 56
6.2.3 多对多关系 56
6.2.4 递归关系 57
6.3 应用参照完整性 57
6.3.1 确定主键 58
6.3.2 确定外键 58
6.4 创建实体关系 59
6.5 小结 60
6.6 答疑 60
6.7 实践练习 61
第 7 章 数据库的规范化 63
7.1 什么是规范化 63
7.1.1 原始数据库 64
7.1.2 数据库逻辑设计 64
7.2 *常见的范式 65
7.2.1 第 一范式(FNF):有主键 65
7.2.2 第二范式(SNF):全主键依赖. 66
7.2.3 第三范式(TNF):只有主键依赖 69
7.2.4 命名规范 70
7.2.5 规范化的优点 71
7.2.6 规范化的缺点 72
7.3 数据库的反规范化 72
7.4 把范式应用于数据库 72
7.4.1 把第 一范式应用于鸟类救助机构数据 72
7.4.2 把第二范式应用于鸟类救助机构数据 73
7.4.3 把第三范式应用于鸟类救助机构数据 73
7.5 小结 74
7.6 答疑 74
7.7 实践练习 75
第 8 章 定义数据结构. 76
8.1 定义数据 76
8.2 理解基本数据类型 77
8.2.1 定长字符串 78
8.2.2 变长字符串 78
8.2.3 大对象类型 78
8.2.4 数值类型 79
8.2.5 DECIMAL 类型 79
8.2.6 整数 80
8.2.7 浮点数 80
8.2.8 日期和时间类型 80
8.2.9 字符串字面量 81
8.2.10 NULL 数据类型 82
8.2.11 布尔值 82
8.2.12 用户自定义类型 82
8.2.13 域 83
8.3 在 BIRDS 数据库中运用数据类型 83
8.4 小结 84
8.5 答疑 85
8.6 实践练习 85
第 9 章 数据库对象的创建和管理 87
9.1 数据库对象和模式的关系 87
9.2 表:数据的主要存储对象 88
9.2.1 列 89
9.2.2 行 90
9.2.3 CREATE TABLE 语句 90
9.2.4 命名规范 92
9.2.5 ALTER TABLE 命令的用法 92
9.2.6 由现有表创建新表 96
9.2.7 表的删除操作 98
9.3 完整性约束 99
9.3.1 主键约束 99
9.3.2 唯一性约束 100
9.3.3 外键约束 100
9.3.4 NOT NULL 约束 101
9.3.5 检查约束 101
9.3.6 约束的删除操作 102
9.4 小结 102
9.5 答疑 102
9.6 实践练习 103
第 10 章 操作数据. 104
10.1 数据操纵语言概述 104
10.2 用新数据填充表 105
10.2.1 在表中插入数据 105
10.2.2 在表的指定列插入数据 106
10.2.3 由另一张表插入数据 107
10.2.4 插入 NULL 值 108
10.3 更新现有数据 108
10.3.1 更新一列数据 108
10.3.2 更新一条或多条记录的多个列 110
10.4 删除数据 111
10.5 小结 112
10.6 答疑 112
10.7 实践练习 113
第 11 章 管理数据库事务 114
11.1 事务的定义 114
11.2 事务的控制 115
11.2.1 COMMIT 命令 115
11.2.2 ROLLBACK 命令 117
11.2.3 SAVEPOINT 命令 120
11.2.4 SET TRANSACTION 命令 124
11.3 处理糟糕的事务控制 124
11.4 小结 124
11.5 答疑 124
11.6 实践练习 125
第 12 章 数据库查询 127
12.1 SELECT 语句的用法 127
12.1.1 理解 SELECT 语句 128
12.1.2 查询唯一值 130
12.1.3 理解 FROM 子句 130
12.1.4 理解 WHERE 子句 131
12.1.5 理解 ORDER BY 子句 133
12.2 大小写敏感性 135
12.3 查询语句编写起步 136
12.3.1 对记录计数 138
12.3.2 查询其他用户的表 139
12.3.3 列别名的用法 140
12.4 小结 141
12.5 答疑 141
12.6 实践练习 141
第 13 章 用操作符归类数据 143
13.1 SQL 操作符的定义 143
13.2 比较操作符的用法 143
13.2.1 等于 144
13.2.2 不等于 144
13.2.3 小于和大于 145
13.2.4 比较操作符的组合使用 146
13.3 逻辑操作符的用法 147
13.3.1 IS NULL 147
13.3.2 BETWEEN. 148
13.3.3 IN 149
13.3.4 LIKE 150
13.3.5 EXISTS 151
13.3.6 ALL、SOME 和 ANY 151
13.4 连接操作符的用法 152
13.4.1 AND 152
13.4.2 OR 153
13.5 取反操作符的用法 154
13.5.1 不等于 155
13.5.2 NOT BETWEEN 155
13.5.3 NOT IN 156
13.5.4 NOT LIKE 156
13.5.5 IS NOT NULL 156
13.5.6 NOT EXISTS 157
13.6 算术操作符的用法 157
13.6.1 加法 158
13.6.2 减法 158
13.6.3 乘法 159
13.6.4 除法 159
13.6.5 算术操作符的组合使用 160
13.7 小结 161
13.8 答疑 161
13.9 实践练习 161
第 14 章 表连接查询 163
14.1 查询多张表中的数据 163
14.2 理解连接 164
14.2.1 等值连接 164
14.2.2 表的别名 166
14.2.3 不等连接 166
14.2.4 外连接 168
14.2.5 自连接 169
14.2.6 用多个键连接表 172
14.3 表连接的注意事项 173
14.3.1 基表 173
14.3.2 笛卡儿积 174
14.4 小结 176
14.5 答疑 176
14.6 实践练习 177
第 15 章 调整数据的显示格式 178
15.1 ANSI 字符函数 178
15.2 常用的字符函数 179
15.2.1 CONCAT 函数 179
15.2.2 UPPER 函数 181
15.2.3 LOWER 函数 181
15.2.4 DECODE 函数 182
15.2.5 SUBSTR 函数 183
15.2.6 TRANSLATE 函数 183
15.2.7 REPLACE 函数 184
15.2.8 LTRIM 函数 184
15.2.9 RTRIM 函数 185
15.3 其他字符函数 185
15.3.1 LENGTH 函数 185
15.3.2 COALESCE 函数 186
15.3.3 LPAD 函数 187
15.3.4 RPAD 函数 187
15.3.5 ASCII 函数 187
15.4 数学函数 188
15.5 格式转换函数 188
15.5.1 将数值转换为字符串 189
15.5.2 将字符串转换为数值 189
15.6 字符函数的组合使用. 190
15.7 小结 190
15.8 答疑 190
15.9 实践练习 191
第 16 章 日期和时间 193
16.1 日期的存储方式 193
16.1.1 标准的日期和时间类型 193
16.1.2 DATETIME 的构成元素 194
16.1.3 各种产品的日期类型 194
16.2 日期函数的用法 195
16.2.1 获取当前日期 195
16.2.2 时区的处理 197
16.2.3 日期相加 198
16.2.4 时间相减 199
16.2.5 其他日期函数的用法 200
16.3 日期的格式转换 201
16.3.1 日期格式符的用法 201
16.3.2 将日期转换为字符串 203
16.3.3 将字符串转换为日期 204
16.4 小结 204
16.5 答疑 204
16.6 实践练习 205
第 17 章 汇总查询结果数据 206
17.1 聚合函数的用法 206
17.1.1 COUNT 函数 207
17.1.2 SUM 函数 208
17.1.3 AVG 函数 209
17.1.4 MAX 函数 210
17.1.5 MIN 函数 210
17.2 数据分组 211
17.3 GROUP BY 子句的用法 211
17.3.1 分组函数 212
17.3.2 对所选数据分组 212
17.3.3 创建分组并使用聚合函数 212
17.4 GROUP BY 和 ORDER BY 的区别 213
17.5 CUBE 和 ROLLUP 表达式的用法 215
17.6 HAVING 子句的用法 217
17.7 小结 218
17.8 答疑 218
17.9 实践练习 219
第 18 章 用子查询定义未知数据 221
18.1 子查询的定义 221
18.1.1 子查询与 SELECT 语句合作 222
18.1.2 子查询与 CREATE TABLE 语句合作 224
18.1.3 子查询与 INSERT 语句合作 225
18.1.4 子查询与 UPDATE 语句合作 226
18.1.5 子查询与 DELETE 语句合作 227
18.2 嵌套子查询 227
18.3 关联子查询 229
18.4 小结 230
18.5 答疑 230
18.6 实践练习 231
第 19 章 组合查询. 232
19.1 单体查询和组合查询的区别 232
19.2 组合查询操作符的用法 233
19.2.1 UNION 操作符 233
19.2.2 UNION ALL 操作符 236
19.2.3 INTERSECT 操作符 238
19.2.4 EXCEPT 和 MINUS 操作符 239
19.3 组合查询中的 ORDER BY 240
19.4 组合查询中的 GROUP BY 242
19.5 获取准确的数据 243
19.6 小结 244
19.7 答疑 244
19.8 实践练习 244
第 20 章 视图和同义词 247
20.1 视图的定义 247
20.1.1 利用视图简化数据的访问 248
20.1.2 将视图用作一种安全措施 248
20.1.3 利用视图维护汇总数据 248
20.2 创建视图 249
20.2.1 由单张表创建视图 249
20.2.2 由多张表创建视图 250
20.2.3 由视图创建视图 253
20.2.4 由视图创建表 256
20.2.5 加入 ORDER BY 子句 257
20.3 通过视图更新数据 257
20.4 删除视图 261
20.5 嵌套视图对性能的影响 261
20.6 同义词的定义 261
20.6.1 同义词的创建 262
20.6.2 同义词的删除 263
20.7 小结 263
20.8 答疑 263
20.9 实践练习 263
第 21 章 管理数据库用户和安全 265
21.1 管理数据库用户 266
21.1.1 用户类型 266
21.1.2 用户管理由谁负责 266
21.1.3 用户在数据库中的位置 267
21.1.4 用户和模式的区别 267
21.2 用户管理过程 268
21.2.1 创建用户 268
21.2.2 模式的创建 271
21.2.3 模式的删除 272
21.2.4 修改用户 273
21.2.5 监控用户会话 273
21.2.6 删除用户权限 274
21.3 充分利用工具软件 274
21.4 数据库安全 275
21.5 赋权 275
21.5.1 系统级权限 276
21.5.2 对象级权限 276
21.5.3 赋予和撤销权限的权限 277
21.6 控制用户访问 277
21.6.1 GRANT 命令 278
21.6.2 REVOKE 命令 279
21.6.3 列级的访问控制 279
21.6.4 PUBLIC 账户 279
21.6.5 权限组 280
21.7 通过角色控制权限 280
21.7.1 CREATE ROLE 语句 281
21.7.2 DROP ROLE 语句 281
21.7.3 SET ROLE 语句 282
21.8 小结 282
21.9 答疑 283
21.10 实践练习 283
第 22 章 利用索引改善性能 285
22.1 索引的定义 285
22.2 索引的工作原理 286
22.3 CREATE INDEX 命令的用法 286
22.4 索引的类型 287
22.4.1 单列索引 287
22.4.2 唯一索引 288
22.4.3 复合索引 289
22.4.4 隐式索引 290
22.5 何时使用索引 290
22.6 何时不用索引 290
22.7 修改索引 292
22.8 删除索引 292
22.9 小结 292
22.10 答疑 292
22.11 实践练习 293
第 23 章 改善数据库性能 294
23.1 SQL 语句调优的定义 294
23.2 数据库调优和 SQL 语句调优的对比 294
23.3 格式化 SQL 语句 295
23.3.1 格式化语句提升可读性 295
23.3.2 重排 FROM 子句中表的顺序 297
23.3.3 重排表连接条件的顺序 297
23.3.4 *严筛选条件 298
23.4 全表扫描 299
23.5 其他影响性能的因素 300
23.5.1 使用 LIKE 操作符和通配符 300
23.5.2 避免使用 OR 操作符 301
23.5.3 避免使用 HAVING 子句 301
23.5.4 避免大规模排序操作 301
23.5.5 使用存储过程 301
23.5.6 使用视图 302
23.5.7 批量载入数据时禁用索引 302
23.6 基于成本的优化 302
23.7 小结 303
23.8 答疑 303
23.9 实践练习 304
第 24 章 系统目录的用法 306
24.1 系统目录的定义 306
24.2 创建系统目录 307
24.3 系统目录包含的内容. 307
24.3.1 用户数据 308
24.3.2 安全信息 308
24.3.3 数据库设计信息 308
24.3.4 性能统计信息 308
24.4 不同产品的系统目录表 308
24.5 查询系统目录 309
24.6 更新系统目录表对象. 312
24.7 小结 313
24.8 答疑 313
24.9 实践练习 313
第 25 章 更多练习 315
25.1 BIRDS 数据库 315
25.2 鸟类的捕食者 317
25.3 鸟类摄影师 318
25.4 创建新表 321
25.5 实践练习:查看表的信息 323
25.6 实践练习:简单查询 323
25.7 实践练习:新增表 324
25.8 实践练习:操作数据 324
25.9 实践练习:表连接 326
25.10 实践练习:比较操作符 327
25.11 实践练习:逻辑操作符 328
25.12 实践练习:连接操作符 330
25.13 实践练习:算术操作符 330
25.14 实践练习:字符函数 330
25.15 实践练习:聚合数据 333
25.16 实践练习:GROUP BY 和HAVING 334
25.17 实践练习:组合查询 334
25.18 实践练习:由现有表创建表 336
25.19 实践练习:插入来自其他表
的数据 337
25.20 实践练习:创建视图 337
25.21 实践练习:嵌入式子查询 338
25.22 实践练习:由子查询创建视图 339
25.23 实践练习:由 SQL 语句创建 SQL 代码 339
25.24 小结 340
25.25 实践练习 340
附录 A 常见 SQL 命令 342
附录 B 流行供应商的 RDBMS 产品 347
附录 C 测试题和习题答案. 348
作者简介
Ryan Stephens 是一位企业家,他的职业生涯和他的多家 IT 公司都是围绕 SQL、数据和关系型数据库发展的。他与世界各地的机构、学生和 IT 专业人士分享知识和经验。他参与创立的两家公司—Perpetual Technologies, Inc.(PTI)和 Indy Data Partners(IDP),已为政府和大型商业客户提供了超过 25 年的专业数据库和 IT 服务。Ryan 为 Pearson 撰写过多本书,其中包括《SQL 入门经典(第 6 版)》。他的部分作品已被翻译并在国际上出版。此外,Ryan 曾在大型机构工作,并在 SQL、数据库设计、数据库管理和项目管理领域提供咨询服务。他为印第安纳大学与普渡大学印第安纳波利斯联合分校(Indiana University?CPurdue University in Indianapolis,IUPUI)设计并讲授数据库管理课程,目前也在为 Pearson Education 讲授 SQL 和数据库的在线课程。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0