微信扫一扫,移动浏览光盘
简介
通过阅读由Ryan Stephens等编著的《SQL入门经典(第5版)》,读者将学会如何使用SQL来创建高效的数据库、高效地提取数据,以及如何管理从数据库性能到数据库安全的各项工作。《SQL入门经典(第5版)》采用直观、循序渐进的方法,引导读者通过各种练习掌握实际操作技巧。读者将学习从基础知识到高级技术在内的所有SQL相关内容——包括视图、事务、Web数据发布,以及Oracle和Microsoft SQL Server对SQL的扩展。《SQL入门经典(第5版)》每章内容都建立在已学的知识之上,即使读者没有任何SQL知识,也可以通过《SQL入门经典(第5版)》,走向成功的坚实道路。
目录
《sql入门经典(第5版)》
第一部分 sql概念综述
第1章 欢迎来到sql世界 3
1.1 sql定义及历史 3
1.1.1 什么是sql 4
1.1.2 什么是ansi sql 4
1.1.3 新标准:sql-2008 4
1.1.4 什么是数据库 5
1.1.5 关系型数据库 5
1.1.6 客户端/服务器技术 6
1.1.7 基于web的数据库系统 7
1.1.8 主流数据库厂商 7
1.2 sql会话 7
1.2.1 connect 8
1.2.2 disconnect和exit 8
1.3 sql命令的类型 8
1.3.1 定义数据库结构 8
1.3.2 操作数据 9
1.3.3 选择数据 9
1.3.4 数据控制语言 9
.1.3.5 数据管理命令 10
1.3.6 事务控制命令 10
1.4 本书使用的数据库 10
1.4.1 表命名标准 11
1.4.2 数据一瞥 11
1.4.3 表的构成 13
1.4.4 范例和练习 14
1.5 小结 14
1.6 问与答 14
1.7 实践 15
1.7.1 测验 15
1.7.2 练习 15
第二部分 建立数据库
第2章 定义数据结构 19
2.1 数据是什么 19
2.2 基本数据类型 19
2.2.1 定长字符串 20
2.2.2 变长字符串 21
2.2.3 大对象类型 21
2.2.4 数值类型 21
2.2.5 小数类型 22
2.2.6 整数 22
2.2.7 浮点数 23
2.2.8 日期和时间类型 23
2.2.9 直义字符串 23
2.2.10 null数据类型 24
2.2.11 布尔值 24
2.2.12 自定义类型 25
2.2.13 域 25
2.3 小结 25
2.4 问与答 26
2.5 实践 26
2.5.1 测验 26
2.5.2 练习 27
第3章 管理数据库对象 29
3.1 什么是数据库对象 29
3.2 什么是规划 29
3.3 表:数据的主要存储方式 31
3.3.1 列 31
3.3.2 行 31
3.3.3 create table语句 32
3.3.4 命名规范 33
3.3.5 alter table命令 34
3.3.6 从现有表新建另一个表 36
3.3.7 删除表 37
3.4 完整性约束 37
3.4.1 主键约束 38
3.4.2 唯一性约束 38
3.4.3 外键约束 39
3.4.4 not null约束 40
3.4.5 检查约束 40
3.4.6 去除约束 41
3.5 小结 41
3.6 问与答 41
3.7 实践 42
3.7.1 测验 42
3.7.2 练习 42
第4章 规格化过程 45
4.1 规格化数据库 45
4.1.1 原始数据库 45
4.1.2 数据库逻辑设计 46
4.1.3 规格形式 47
4.1.4 命名规范 49
4.1.5 规格化的优点 50
4.1.6 规格化的缺点 50
4.2 去规格化数据库 50
4.3 小结 51
4.4 问与答 51
4.5 实践 51
4.5.1 测验 52
4.5.2 练习 52
第5章 操作数据 53
5.1 数据操作概述 53
5.2 用新数据填充表 53
5.2.1 把数据插入到表 54
5.2.2 给表里指定列插入数据 55
5.2.3 从另一个表插入数据 56
5.2.4 插入null值 57
5.3 更新现有数据 58
5.3.1 更新一列的数据 58
5.3.2 更新一条或多记录里的多个字段 59
5.4 从表里删除数据 59
5.5 小结 60
5.6 问与答 60
5.7 实践 61
5.7.1 测验 61
5.7.2 练习 62
第6章 管理数据库事务 63
6.1 什么是事务 63
6.2 控制事务 63
6.2.1 commit命令 64
6.2.2 rollback命令 66
6.2.3 savepoint命令 67
6.2.4 rollback to savepoint命令 67
6.2.5 release savepoint命令 68
6.2.6 set transaction命令 68
6.3 事务控制与数据库性能 69
6.4 小结 69
6.5 问与答 69
6.6 实践 70
6.6.1 测验 70
6.6.2 练习 70
第三部分 从查询中获得有效的结果
第7章 数据库查询 73
7.1 什么是查询 73
7.2 select语句 73
7.2.1 select语句 74
7.2.2 from子句 75
7.2.3 where子句 76
7.2.4 order by子句 77
7.2.5 大小写敏感性 79
7.3 简单查询的范例 79
7.3.1 统计表里的记录数量 81
7.3.2 从另一个用户表里选择数据 81
7.3.3 使用字段别名 82
7.4 小结 82
7.5 问与答 83
7.6 实践 83
7.6.1 测验 83
7.6.2 练习 84
第8章 使用操作符对数据进行分类 85
8.1 什么是sql里的操作符 85
8.2 比较操作符 85
8.2.1 相等 86
8.2.2 不等于 86
8.2.3 小于和大于 87
8.2.4 比较操作符的组合 88
8.3 逻辑操作符 88
8.3.1 is null 89
8.3.2 between 89
8.3.3 in 90
8.3.4 like 90
8.3.5 exists 91
8.3.6 all、some和any操作符 92
8.4 连接操作符 93
8.4.1 and 93
8.4.2 or 94
8.5 求反操作符 95
8.5.1 不相等 96
8.5.2 not between 96
8.5.3 not in 97
8.5.4 not like 97
8.5.5 is not null 98
8.5.6 not exists 98
8.6 算术操作符 98
8.6.1 加法 99
8.6.2 减法 99
8.6.3 乘法 99
8.6.4 除法 100
8.6.5 算术操作符的组合 100
8.7 小结 101
8.8 问与答 101
8.9 实践 101
8.9.1 测验 102
8.9.2 练习 102
第9章 汇总查询得到的数据 104
9.1 什么是汇总函数 104
9.1.1 count函数 105
9.1.2 sum函数 107
9.1.3 avg函数 108
9.1.4 max函数 108
9.1.5 min函数 109
9.2 小结 110
9.3 问与答 110
9.4 实践 111
9.4.1 测验 111
9.4.2 练习 111
第10章 数据排序与分组 113
10.1 为什么要对数据进行分组 113
10.2 group by子句 114
10.2.1 分组函数 114
10.2.2 对选中的数据进行分组 114
10.2.3 创建分组和使用汇总函数 115
10.2.4 以整数代表字段名称 117
10.3 group by与order by 117
10.4 cube和rollup语句 119
10.5 having子句 121
10.6 小结 122
10.7 问与答 122
10.8 实践 123
10.8.1 测验 123
10.8.2 练习 123
第11章 调整数据的外观 125
11.1 ansi字符函数 125
11.2 常用字符函数 126
11.2.1 串接函数 126
11.2.2 translate函数 127
11.2.3 replace 128
11.2.4 upper 128
11.2.5 lower 129
11.2.6 substr 129
11.2.7 instr 130
11.2.8 ltrim 131
11.2.9 rtrim 131
11.2.10 decode 132
11.3 其他字符函数 132
11.3.1 length 132
11.3.2 ifnull(检查null值) 133
11.3.3 coalesce 133
11.3.4 lpad 134
11.3.5 rpad 134
11.3.6 ascii 135
11.4 算术函数 135
11.5 转换函数 136
11.5.1 字符串转换为数字 136
11.5.2 数字转换为字符串 137
11.6 字符函数的组合使用 137
11.7 小结 138
11.8 问与答 138
11.9 实践 139
11.9.1 测验 139
11.9.2 练习 139
第12章 日期和时间 141
12.1 日期是如何存储的 141
12.1.1 日期和时间的标准数据类型 141
12.1.2 datetime元素 142
12.1.3 不同实现的日期类型 142
12.2 日期函数 143
12.2.1 当前日期 143
12.2.2 时区 144
12.2.3 时间与日期相加 144
12.2.4 其他日期函数 146
12.3 日期转换 146
12.3.1 日期描述 147
12.3.2 日期转换为字符串 149
12.3.3 字符串转换为日期 149
12.4 小结 150
12.5 问与答 150
12.6 实践 150
12.6.1 测验 151
12.6.2 练习 151
第四部分 建立复杂的数据库查询
第13章 在查询里结合表 155
13.1 从多个表获取数据 155
13.2 结合的类型 156
13.2.1 结合条件的位置 156
13.2.2 等值结合 156
13.2.3 使用表的别名 157
13.2.4 不等值结合 158
13.2.5 外部结合 159
13.2.6 自结合 161
13.2.7 结合多个主键 162
13.3 需要考虑的事项 163
13.3.1 使用基表 163
13.3.2 笛卡尔积 164
13.4 小结 166
13.5 问与答 166
13.6 实践 167
13.6.1 测验 167
13.6.2 练习 167
第14章 使用子查询定义未确定数据 169
14.1 什么是子查询 169
14.1.1 子查询与select语句 170
14.1.2 子查询与insert语句 171
14.1.3 子查询与update语句 172
14.1.4 子查询与delete语句 173
14.2 嵌套的子查询 173
14.3 关联子查询 175
14.4 子查询的效率 176
14.5 小结 176
14.6 问与答 176
14.7 实践 177
14.7.1 测验 177
14.7.2 练习 178
第15章 组合多个查询 179
15.1 单查询与组合查询 179
15.2 组合查询操作符 180
15.2.1 union 180
15.2.2 union all 182
15.2.3 intersect 183
15.2.4 except 184
15.3 组合查询里使用order by 184
15.4 组合查询里使用group by 186
15.5 获取准确的数据 187
15.6 小结 187
15.7 问与答 187
15.8 实践 188
15.8.1 测验 188
15.8.2 练习 189
第五部分 sql性能调整
第16章 利用索引改善性能 193
16.1 什么是索引 193
16.2 索引是如何工作的 194
16.3 create index命令 194
16.4 索引的类型 195
16.4.1 单字段索引 195
16.4.2 唯一索引 195
16.4.3 组合索引 196
16.4.4 隐含索引 196
16.5 何时考虑使用索引 196
16.6 何时应该避免使用索引 197
16.7 修改索引 198
16.8 删除索引 198
16.9 小结 199
16.10 问与答 199
16.11 实践 199
16.11.1 测验 199
16.11.2 练习 200
第17章 改善数据库性能 201
17.1 什么是sql语句调整 201
17.2 数据库调整与sql语句调整 202
17.3 格式化sql语句 202
17.3.1 为提高可读性格式化sql语句 202
17.3.2 from子句里的表 204
17.3.3 结合条件的次序 204
17.3.4 最严格条件 205
17.4 全表扫描 206
17.5 其他性能考虑 207
17.5.1 使用like操作符和通配符 207
17.5.2 避免使用or操作符 208
17.5.3 避免使用having子句 208
17.5.4 避免大规模排序操作 209
17.5.5 使用存储过程 209
17.5.6 在批加载时关闭索引 209
17.6 基于成本的优化 210
17.7 性能工具 210
17.8 小结 210
17.9 问与答 211
17.10 实践 211
17.10.1 测验 211
17.10.2 练习 211
第六部分 使用sql管理用户和安全
第18章 管理数据库用户 215
18.1 数据库的用户管理 215
18.1.1 用户的类型 216
18.1.2 谁管理用户 216
18.1.3 用户在数据库里的位置 216
18.1.4 不同规划里的用户 217
18.2 管理过程 217
18.2.1 创建用户 217
18.2.2 创建规划 219
18.2.3 删除规划 220
18.2.4 调整用户 221
18.2.5 用户会话 222
18.2.6 禁止用户访问 222
18.3 数据库用户使用的工具 222
18.4 小结 223
18.5 问与答 223
18.6 实践 223
18.6.1 测验 224
18.6.2 练习 224
第19章 管理数据库安全 225
19.1 什么是数据库安全 225
19.2 什么是权限 226
19.2.1 系统权限 226
19.2.2 对象权限 227
19.2.3 谁负责授予和撤销权限 228
19.3 控制用户访问 228
19.3.1 grant命令 228
19.3.2 revoke命令 229
19.3.3 控制对单独字段的访问 230
19.3.4 数据库账户public 230
19.3.5 权限组 230
19.4 通过角色控制权限 231
19.4.1 create role语句 232
19.4.2 drop role语句 232
19.4.3 set role语句 232
19.5 小结 233
19.6 问与答 233
19.7 实践 233
19.7.1 测验 234
19.7.2 练习 234
第七部分 摘要数据结构
第20章 创建和使用视图及异名 237
20.1 什么是视图 237
20.1.1 使用视图来简化数据访问 238
20.1.2 使用视图作为一种安全形式 238
20.1.3 使用视图维护摘要数据 239
20.2 创建视图 239
20.2.1 从一个表创建视图 239
20.2.2 从多个表创建视图 241
20.2.3 从视图创建视图 241
20.3 with check option 242
20.4 从视图创建表 243
20.5 视图与order by子句 244
20.6 通过视图更新数据 244
20.7 删除视图 244
20.8 嵌套视图对性能的影响 245
20.9 什么是异名 245
20.9.1 创建异名 245
20.9.2 删除异名 246
20.10 小结 246
20.11 问与答 247
20.12 实践 247
20.12.1 测验 247
20.12.2 练习 247
第21章 使用系统目录 248
21.1 什么是系统目录 248
21.2 如何创建系统目录 249
21.3 系统目录里包含什么内容 249
21.3.1 用户数据 250
21.3.2 安全信息 250
21.3.3 数据库设计信息 250
21.3.4 性能统计 250
21.4 不同实现里的系统目录表格 250
21.5 查询系统目录 251
21.6 更新系统目录对象 253
21.7 小结 253
21.8 问与答 253
21.9 实践 254
21.9.1 测验 254
21.9.2 练习 254
第八部分 在实际工作中应用sql知识
第22章 高级sql主题 257
22.1 光标 257
22.1.1 打开光标 258
22.1.2 从光标获取数据 258
22.1.3 关闭光标 260
22.2 存储过程和函数 260
22.3 触发器 262
22.3.1 create trigger语句 262
22.3.2 drop trigger语句 263
22.3.3 for each row语句 264
22.4 动态sql 264
22.5 调用级接口 264
22.6 使用sql生成sql 265
22.7 直接sql与嵌入sql 265
22.8 窗口表格函数 266
22.9 使用xml 266
22.10 小结 267
22.11 问与答 267
22.12 实践 267
22.12.1 测验 267
22.12.2 练习 268
第23章 sql扩展到企业、互联网和内部网 269
23.1 sql与企业 269
23.1.1 后台程序 269
23.1.2 前台程序 270
23.2 访问远程数据库 270
23.2.1 odbc 271
23.2.2 jdbc 271
23.2.3 ole db 271
23.2.4 厂商连接产品 272
23.2.5 通过web接口访问远程数据库 272
23.3 sql与互联网 273
23.3.1 让数据可以被全世界的顾客使用 273
23.3.2 向雇员和授权顾客提供数据 273
23.4 sql与内部网 273
23.5 小结 274
23.6 问与答 274
23.7 实践 275
23.7.1 测验 275
23.7.2 练习 275
第24章 标准sql的扩展 276
24.1 各种实现 276
24.1.1 不同实现之间的区别 276
24.1.2 遵循ansi sql 277
24.1.3 sql的扩展 278
24.2 扩展范例 278
24.2.1 transact-sql 279
24.2.2 pl/sql 279
24.2.3 mysql 280
24.3 交互sql语句 280
24.4 小结 281
24.5 问与答 281
24.6 实践 282
24.6.1 测验 282
24.6.2 练习 282
第九部分 附录
附录a 常用sql命令 285
a.1 sql语句 285
a.2 sql子句 288
附录b 使用数据库进行练习 290
b.1 在windows操作系统中安装mysql的指令 290
b.2 在windows操作系统中安装oracle的指令 292
b.3 在windows操作系统中安装microsoft sql server的指令 293
附录c 测验和练习的答案 295
附录d 本书范例的create table语句 333
d.1 mysql 333
d.2 oracle和sql server 334
附录e 书中范例所涉数据的insert语句 336
e.1 mysql和sql server 336
e.1.1 employee_tbl 336
e.1.2 employee_pay_tbl 336
e.1.3 customer_tbl 337
e.1.4 orders_tbl 338
e.1.5 products_tbl 338
e.2 oracle 339
e.2.1 employee_tbl 339
e.2.2 employee_pay_tbl 339
e.2.3 customer_tbl 340
e.2.4 orders_tbl 341
e.2.5 products_tbl 341
附录f 额外练习 342
术语表 347
第一部分 sql概念综述
第1章 欢迎来到sql世界 3
1.1 sql定义及历史 3
1.1.1 什么是sql 4
1.1.2 什么是ansi sql 4
1.1.3 新标准:sql-2008 4
1.1.4 什么是数据库 5
1.1.5 关系型数据库 5
1.1.6 客户端/服务器技术 6
1.1.7 基于web的数据库系统 7
1.1.8 主流数据库厂商 7
1.2 sql会话 7
1.2.1 connect 8
1.2.2 disconnect和exit 8
1.3 sql命令的类型 8
1.3.1 定义数据库结构 8
1.3.2 操作数据 9
1.3.3 选择数据 9
1.3.4 数据控制语言 9
.1.3.5 数据管理命令 10
1.3.6 事务控制命令 10
1.4 本书使用的数据库 10
1.4.1 表命名标准 11
1.4.2 数据一瞥 11
1.4.3 表的构成 13
1.4.4 范例和练习 14
1.5 小结 14
1.6 问与答 14
1.7 实践 15
1.7.1 测验 15
1.7.2 练习 15
第二部分 建立数据库
第2章 定义数据结构 19
2.1 数据是什么 19
2.2 基本数据类型 19
2.2.1 定长字符串 20
2.2.2 变长字符串 21
2.2.3 大对象类型 21
2.2.4 数值类型 21
2.2.5 小数类型 22
2.2.6 整数 22
2.2.7 浮点数 23
2.2.8 日期和时间类型 23
2.2.9 直义字符串 23
2.2.10 null数据类型 24
2.2.11 布尔值 24
2.2.12 自定义类型 25
2.2.13 域 25
2.3 小结 25
2.4 问与答 26
2.5 实践 26
2.5.1 测验 26
2.5.2 练习 27
第3章 管理数据库对象 29
3.1 什么是数据库对象 29
3.2 什么是规划 29
3.3 表:数据的主要存储方式 31
3.3.1 列 31
3.3.2 行 31
3.3.3 create table语句 32
3.3.4 命名规范 33
3.3.5 alter table命令 34
3.3.6 从现有表新建另一个表 36
3.3.7 删除表 37
3.4 完整性约束 37
3.4.1 主键约束 38
3.4.2 唯一性约束 38
3.4.3 外键约束 39
3.4.4 not null约束 40
3.4.5 检查约束 40
3.4.6 去除约束 41
3.5 小结 41
3.6 问与答 41
3.7 实践 42
3.7.1 测验 42
3.7.2 练习 42
第4章 规格化过程 45
4.1 规格化数据库 45
4.1.1 原始数据库 45
4.1.2 数据库逻辑设计 46
4.1.3 规格形式 47
4.1.4 命名规范 49
4.1.5 规格化的优点 50
4.1.6 规格化的缺点 50
4.2 去规格化数据库 50
4.3 小结 51
4.4 问与答 51
4.5 实践 51
4.5.1 测验 52
4.5.2 练习 52
第5章 操作数据 53
5.1 数据操作概述 53
5.2 用新数据填充表 53
5.2.1 把数据插入到表 54
5.2.2 给表里指定列插入数据 55
5.2.3 从另一个表插入数据 56
5.2.4 插入null值 57
5.3 更新现有数据 58
5.3.1 更新一列的数据 58
5.3.2 更新一条或多记录里的多个字段 59
5.4 从表里删除数据 59
5.5 小结 60
5.6 问与答 60
5.7 实践 61
5.7.1 测验 61
5.7.2 练习 62
第6章 管理数据库事务 63
6.1 什么是事务 63
6.2 控制事务 63
6.2.1 commit命令 64
6.2.2 rollback命令 66
6.2.3 savepoint命令 67
6.2.4 rollback to savepoint命令 67
6.2.5 release savepoint命令 68
6.2.6 set transaction命令 68
6.3 事务控制与数据库性能 69
6.4 小结 69
6.5 问与答 69
6.6 实践 70
6.6.1 测验 70
6.6.2 练习 70
第三部分 从查询中获得有效的结果
第7章 数据库查询 73
7.1 什么是查询 73
7.2 select语句 73
7.2.1 select语句 74
7.2.2 from子句 75
7.2.3 where子句 76
7.2.4 order by子句 77
7.2.5 大小写敏感性 79
7.3 简单查询的范例 79
7.3.1 统计表里的记录数量 81
7.3.2 从另一个用户表里选择数据 81
7.3.3 使用字段别名 82
7.4 小结 82
7.5 问与答 83
7.6 实践 83
7.6.1 测验 83
7.6.2 练习 84
第8章 使用操作符对数据进行分类 85
8.1 什么是sql里的操作符 85
8.2 比较操作符 85
8.2.1 相等 86
8.2.2 不等于 86
8.2.3 小于和大于 87
8.2.4 比较操作符的组合 88
8.3 逻辑操作符 88
8.3.1 is null 89
8.3.2 between 89
8.3.3 in 90
8.3.4 like 90
8.3.5 exists 91
8.3.6 all、some和any操作符 92
8.4 连接操作符 93
8.4.1 and 93
8.4.2 or 94
8.5 求反操作符 95
8.5.1 不相等 96
8.5.2 not between 96
8.5.3 not in 97
8.5.4 not like 97
8.5.5 is not null 98
8.5.6 not exists 98
8.6 算术操作符 98
8.6.1 加法 99
8.6.2 减法 99
8.6.3 乘法 99
8.6.4 除法 100
8.6.5 算术操作符的组合 100
8.7 小结 101
8.8 问与答 101
8.9 实践 101
8.9.1 测验 102
8.9.2 练习 102
第9章 汇总查询得到的数据 104
9.1 什么是汇总函数 104
9.1.1 count函数 105
9.1.2 sum函数 107
9.1.3 avg函数 108
9.1.4 max函数 108
9.1.5 min函数 109
9.2 小结 110
9.3 问与答 110
9.4 实践 111
9.4.1 测验 111
9.4.2 练习 111
第10章 数据排序与分组 113
10.1 为什么要对数据进行分组 113
10.2 group by子句 114
10.2.1 分组函数 114
10.2.2 对选中的数据进行分组 114
10.2.3 创建分组和使用汇总函数 115
10.2.4 以整数代表字段名称 117
10.3 group by与order by 117
10.4 cube和rollup语句 119
10.5 having子句 121
10.6 小结 122
10.7 问与答 122
10.8 实践 123
10.8.1 测验 123
10.8.2 练习 123
第11章 调整数据的外观 125
11.1 ansi字符函数 125
11.2 常用字符函数 126
11.2.1 串接函数 126
11.2.2 translate函数 127
11.2.3 replace 128
11.2.4 upper 128
11.2.5 lower 129
11.2.6 substr 129
11.2.7 instr 130
11.2.8 ltrim 131
11.2.9 rtrim 131
11.2.10 decode 132
11.3 其他字符函数 132
11.3.1 length 132
11.3.2 ifnull(检查null值) 133
11.3.3 coalesce 133
11.3.4 lpad 134
11.3.5 rpad 134
11.3.6 ascii 135
11.4 算术函数 135
11.5 转换函数 136
11.5.1 字符串转换为数字 136
11.5.2 数字转换为字符串 137
11.6 字符函数的组合使用 137
11.7 小结 138
11.8 问与答 138
11.9 实践 139
11.9.1 测验 139
11.9.2 练习 139
第12章 日期和时间 141
12.1 日期是如何存储的 141
12.1.1 日期和时间的标准数据类型 141
12.1.2 datetime元素 142
12.1.3 不同实现的日期类型 142
12.2 日期函数 143
12.2.1 当前日期 143
12.2.2 时区 144
12.2.3 时间与日期相加 144
12.2.4 其他日期函数 146
12.3 日期转换 146
12.3.1 日期描述 147
12.3.2 日期转换为字符串 149
12.3.3 字符串转换为日期 149
12.4 小结 150
12.5 问与答 150
12.6 实践 150
12.6.1 测验 151
12.6.2 练习 151
第四部分 建立复杂的数据库查询
第13章 在查询里结合表 155
13.1 从多个表获取数据 155
13.2 结合的类型 156
13.2.1 结合条件的位置 156
13.2.2 等值结合 156
13.2.3 使用表的别名 157
13.2.4 不等值结合 158
13.2.5 外部结合 159
13.2.6 自结合 161
13.2.7 结合多个主键 162
13.3 需要考虑的事项 163
13.3.1 使用基表 163
13.3.2 笛卡尔积 164
13.4 小结 166
13.5 问与答 166
13.6 实践 167
13.6.1 测验 167
13.6.2 练习 167
第14章 使用子查询定义未确定数据 169
14.1 什么是子查询 169
14.1.1 子查询与select语句 170
14.1.2 子查询与insert语句 171
14.1.3 子查询与update语句 172
14.1.4 子查询与delete语句 173
14.2 嵌套的子查询 173
14.3 关联子查询 175
14.4 子查询的效率 176
14.5 小结 176
14.6 问与答 176
14.7 实践 177
14.7.1 测验 177
14.7.2 练习 178
第15章 组合多个查询 179
15.1 单查询与组合查询 179
15.2 组合查询操作符 180
15.2.1 union 180
15.2.2 union all 182
15.2.3 intersect 183
15.2.4 except 184
15.3 组合查询里使用order by 184
15.4 组合查询里使用group by 186
15.5 获取准确的数据 187
15.6 小结 187
15.7 问与答 187
15.8 实践 188
15.8.1 测验 188
15.8.2 练习 189
第五部分 sql性能调整
第16章 利用索引改善性能 193
16.1 什么是索引 193
16.2 索引是如何工作的 194
16.3 create index命令 194
16.4 索引的类型 195
16.4.1 单字段索引 195
16.4.2 唯一索引 195
16.4.3 组合索引 196
16.4.4 隐含索引 196
16.5 何时考虑使用索引 196
16.6 何时应该避免使用索引 197
16.7 修改索引 198
16.8 删除索引 198
16.9 小结 199
16.10 问与答 199
16.11 实践 199
16.11.1 测验 199
16.11.2 练习 200
第17章 改善数据库性能 201
17.1 什么是sql语句调整 201
17.2 数据库调整与sql语句调整 202
17.3 格式化sql语句 202
17.3.1 为提高可读性格式化sql语句 202
17.3.2 from子句里的表 204
17.3.3 结合条件的次序 204
17.3.4 最严格条件 205
17.4 全表扫描 206
17.5 其他性能考虑 207
17.5.1 使用like操作符和通配符 207
17.5.2 避免使用or操作符 208
17.5.3 避免使用having子句 208
17.5.4 避免大规模排序操作 209
17.5.5 使用存储过程 209
17.5.6 在批加载时关闭索引 209
17.6 基于成本的优化 210
17.7 性能工具 210
17.8 小结 210
17.9 问与答 211
17.10 实践 211
17.10.1 测验 211
17.10.2 练习 211
第六部分 使用sql管理用户和安全
第18章 管理数据库用户 215
18.1 数据库的用户管理 215
18.1.1 用户的类型 216
18.1.2 谁管理用户 216
18.1.3 用户在数据库里的位置 216
18.1.4 不同规划里的用户 217
18.2 管理过程 217
18.2.1 创建用户 217
18.2.2 创建规划 219
18.2.3 删除规划 220
18.2.4 调整用户 221
18.2.5 用户会话 222
18.2.6 禁止用户访问 222
18.3 数据库用户使用的工具 222
18.4 小结 223
18.5 问与答 223
18.6 实践 223
18.6.1 测验 224
18.6.2 练习 224
第19章 管理数据库安全 225
19.1 什么是数据库安全 225
19.2 什么是权限 226
19.2.1 系统权限 226
19.2.2 对象权限 227
19.2.3 谁负责授予和撤销权限 228
19.3 控制用户访问 228
19.3.1 grant命令 228
19.3.2 revoke命令 229
19.3.3 控制对单独字段的访问 230
19.3.4 数据库账户public 230
19.3.5 权限组 230
19.4 通过角色控制权限 231
19.4.1 create role语句 232
19.4.2 drop role语句 232
19.4.3 set role语句 232
19.5 小结 233
19.6 问与答 233
19.7 实践 233
19.7.1 测验 234
19.7.2 练习 234
第七部分 摘要数据结构
第20章 创建和使用视图及异名 237
20.1 什么是视图 237
20.1.1 使用视图来简化数据访问 238
20.1.2 使用视图作为一种安全形式 238
20.1.3 使用视图维护摘要数据 239
20.2 创建视图 239
20.2.1 从一个表创建视图 239
20.2.2 从多个表创建视图 241
20.2.3 从视图创建视图 241
20.3 with check option 242
20.4 从视图创建表 243
20.5 视图与order by子句 244
20.6 通过视图更新数据 244
20.7 删除视图 244
20.8 嵌套视图对性能的影响 245
20.9 什么是异名 245
20.9.1 创建异名 245
20.9.2 删除异名 246
20.10 小结 246
20.11 问与答 247
20.12 实践 247
20.12.1 测验 247
20.12.2 练习 247
第21章 使用系统目录 248
21.1 什么是系统目录 248
21.2 如何创建系统目录 249
21.3 系统目录里包含什么内容 249
21.3.1 用户数据 250
21.3.2 安全信息 250
21.3.3 数据库设计信息 250
21.3.4 性能统计 250
21.4 不同实现里的系统目录表格 250
21.5 查询系统目录 251
21.6 更新系统目录对象 253
21.7 小结 253
21.8 问与答 253
21.9 实践 254
21.9.1 测验 254
21.9.2 练习 254
第八部分 在实际工作中应用sql知识
第22章 高级sql主题 257
22.1 光标 257
22.1.1 打开光标 258
22.1.2 从光标获取数据 258
22.1.3 关闭光标 260
22.2 存储过程和函数 260
22.3 触发器 262
22.3.1 create trigger语句 262
22.3.2 drop trigger语句 263
22.3.3 for each row语句 264
22.4 动态sql 264
22.5 调用级接口 264
22.6 使用sql生成sql 265
22.7 直接sql与嵌入sql 265
22.8 窗口表格函数 266
22.9 使用xml 266
22.10 小结 267
22.11 问与答 267
22.12 实践 267
22.12.1 测验 267
22.12.2 练习 268
第23章 sql扩展到企业、互联网和内部网 269
23.1 sql与企业 269
23.1.1 后台程序 269
23.1.2 前台程序 270
23.2 访问远程数据库 270
23.2.1 odbc 271
23.2.2 jdbc 271
23.2.3 ole db 271
23.2.4 厂商连接产品 272
23.2.5 通过web接口访问远程数据库 272
23.3 sql与互联网 273
23.3.1 让数据可以被全世界的顾客使用 273
23.3.2 向雇员和授权顾客提供数据 273
23.4 sql与内部网 273
23.5 小结 274
23.6 问与答 274
23.7 实践 275
23.7.1 测验 275
23.7.2 练习 275
第24章 标准sql的扩展 276
24.1 各种实现 276
24.1.1 不同实现之间的区别 276
24.1.2 遵循ansi sql 277
24.1.3 sql的扩展 278
24.2 扩展范例 278
24.2.1 transact-sql 279
24.2.2 pl/sql 279
24.2.3 mysql 280
24.3 交互sql语句 280
24.4 小结 281
24.5 问与答 281
24.6 实践 282
24.6.1 测验 282
24.6.2 练习 282
第九部分 附录
附录a 常用sql命令 285
a.1 sql语句 285
a.2 sql子句 288
附录b 使用数据库进行练习 290
b.1 在windows操作系统中安装mysql的指令 290
b.2 在windows操作系统中安装oracle的指令 292
b.3 在windows操作系统中安装microsoft sql server的指令 293
附录c 测验和练习的答案 295
附录d 本书范例的create table语句 333
d.1 mysql 333
d.2 oracle和sql server 334
附录e 书中范例所涉数据的insert语句 336
e.1 mysql和sql server 336
e.1.1 employee_tbl 336
e.1.2 employee_pay_tbl 336
e.1.3 customer_tbl 337
e.1.4 orders_tbl 338
e.1.5 products_tbl 338
e.2 oracle 339
e.2.1 employee_tbl 339
e.2.2 employee_pay_tbl 339
e.2.3 customer_tbl 340
e.2.4 orders_tbl 341
e.2.5 products_tbl 341
附录f 额外练习 342
术语表 347
SQL入门经典
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×