Oracle SQL疑难解析.pdf

Oracle SQL疑难解析.pdf
 

书籍描述

编辑推荐
基于实例,提供高质量的常见问题解决方案。
强调实际,没有大量的理论,把解决问题放在首位,节省读者阅读时间。

作者简介
Grant Allen 在IT领域工作了20年,在加入Google前是澳大利亚一家领先软件供应商的首席技术总监。他一直活跃在企业、世界各地的政府和学术界,担任大型系统设计,开发,性能,技术创新和破坏性变革的顾问。Grant是积极的会议发言者,他参加的会议包括数据挖掘、技术合作、关系型数据库和企业的技术会议和行业活动。他现在是Google的团队领袖,利用数据库技术以应对Google大规模数据增长的问题。

Bob Bryla是Oracle 9i、10g和11g认证专家,在数据库设计、数据库应用程序的开发、数据库管理和培训方面有20多年的经验。Bob是Lands’ End公司的Internet数据库分析师和Oracle DBA,这家公司位于Dodgeville, Wisconsin。他还是其它一些Oracle DBA著作的作者,这些书既是写给新手也是写给经验丰富的专业人士。

Darl Kuhn是一个Oracle DBA和开发者。他与人合著其他三本书籍:Linux Recipes for Oracle DBAs, RMAN Recipes for Oracle Database 11g 和 Oracle RMAN Pocket Reference。他在Regis大学教授高级数据库课程,还是Rocky Mountain Oracle Users Group的DBA志愿者。他具有Colorado州立大学的研究生学历,目前居住在Mauricio Canyon, Colorado附近,与他的妻子Heidi以及女儿Brandi和Lisa一起。

目录
目 录

第一部分 数据处理基础

第1章 章基础 2
1.1 从表中查询数据 2
1.2 把表中所有字段都列出来 4
1.3 将结果排序 5
1.4 在表中添加记录行 6
1.5 把数据记录从一张表复制到另一张表 7
1.6 批量地从一个表中复制数据到另一个表 8
1.7 改变行记录的值 9
1.8 在一个语句中修改多个字段值 9
1.9 从表中删除不需要的行 10
1.10 删除表中的所有行 11
1.11 从其他查询结果中再次进行查询 12
1.12 查询的WHERE子句基于另一个查询的结果 13
1.13 在语句中找到和消除空值 14
1.14 排序 16
1.15 启用其他排序和比较选项 17
1.16 基于条件的插入或修改 18

第2章 汇总和聚合数据 20
2.1 对某字段值进行汇总 20
2.2 分组进行数据汇总 22
2.3 以多字段分组 23
2.4 在聚合数据集时排除某些组 25
2.5 分多级聚合数据 26
2.6 把聚合结果用在其他查询中 28
2.7 在分组和集合里统计成员 29
2.8 在表中查找重复值和唯一值 31
2.9 合计与小计 32
2.10 构建自己的聚合函数 34
2.11 从之前或之后的行中存取数据 37
2.12 对查询结果行进行排名 39
2.13 在分组内查找最大和最小值 42
2.14 在移动窗口中进行聚合 43
2.15 基于字段子集的数据记录去重 45
2.16 找出表中的序列空挡 48

第3章 多表数据查询 51
3.1 对多表的对应行进行连接 52
3.2 垂直堆叠查询结果 54
3.3 选择性连接 56
3.4 从两个方向进行可选连接 57
3.5 基于其他表中的数据删除记录 59
3.6 跨表寻找匹配的数据 60
3.7 在聚合上进行连接 61
3.8 查找不匹配的行 63
3.9 查找表中不匹配的行 65
3.10 生成测试数据 67
3.11 基于其他表中的数据更新记录 69
3.12 在连接条件里处理和比较NULL值 70

第4章 生成和获取数据 73
4.1 派生新的列 73
4.2 返回不存在的行 77
4.3 把行变换为列 78
4.4 在多列上透视 81
4.5 将列转换成行 83
4.6 出于易读性连接数据 86
4.7 把字符串转换成对应的数值 88
4.8 生成随机数 90
4.9 创建一个逗号分隔值文件 93

第5章 通用查询模式 95
5.1 把NULL转换成其他值 95
5.2 对NULL值排序 97
5.3 为查询结果标记页码 98
5.4 检测数据是否存在 102
5.5 SQL语句中的条件分支 104
5.6 根据条件和函数排序 105
5.7 当子查询返回多个值时的处理 107
5.8 将数字进行不同进制间的转换 108
5.9 在不知道列名或表名的情况下查找字符串 111
5.10 对数据系列进行后续值或趋势预测 113
5.11 修改记录时进行显式锁(悲观锁) 116
5.12 对两张表的内容进行同步 119

第二部分 数据类型和问题

第6章 日期和时间值的处理 124
6.1 将日期时间值转换成可读的字符串 124
6.2 将字符串转换为日期时间值 126
6.3 检测重叠的日期范围 127
6.4 自动跟踪数据更改的日期和时间 128
6.5 利用GAPS在数据中生成一个无间隔的时间序列 130
6.6 不同时区之间日期和时间的转换 132
6.7 检测闰年 133
6.8 确定一个月的最后一天的日期 135
6.9 确定一个月的第一天的日期或第一个星期几 136
6.10 判断星期几 137
6.11 通过时间段进行分组和聚合 138
6.12 查找两个日期或部分日期之间的差值 139
6.13 确定任何一年的复活节日期 141
6.14 为网站用户计算“X天活动” 143

第7章 字符串 145
7.1 搜索子字符串 145
7.2 提取子字符串 147
7.3 单字符的字符串替换 149
7.4 搜索模式 151
7.5 提取一个模式 154
7.6 计数模式 155
7.7 替换字符串中的文本 157
7.8 加快字符串搜索 159

第8章 处理数字 163
8.1 字符串和数字类型之间的转换 163
8.2 数字类型之间的转换 164
8.3 选择数据类型精度和刻度 166
8.4 正确执行非数字和无限数字计算 167
8.5 在字符串中验证数字 169
8.6 生成连续的编号 171
8.7 为公式或模式生成数字 172
8.8 处理数值计算中的 NULL 174
8.9 自动四舍五入数字 176
8.10 自动生成数字列表 178

第三部分 开发环境

第9章 事务管理 180
9.1 回滚部分事务 180
9.2 如何识别阻塞的事务 183
9.3 优化行级锁与表级锁 185
9.4 如何避免死锁 187
9.5 如何延期约束验证 188
9.6 确保事务的一致性读 193
9.7 管理事务的隔离级别 194

第10章 数据字典 196
10.1 图形工具与SQL 196
10.2 数据字典体系结构 197
10.3 显示用户信息 199
10.4 确定有权访问的表 201
10.5 显示一张表的磁盘空间使用情况 202
10.6 显示表的记录数 205
10.7 显示表的索引 207
10.8 显示未建索引的外键 208
10.9 显示约束 209
10.10 展示主键与外键的关系 210
10.11 显示对象间的依赖关系 212
10.12 显示同义词的元数据 214
10.13 显示视图的文本 215
10.14 显示数据库代码 216
10.15 显示授予的角色 217
10.16 显示对象权限 219
10.17 显示系统权限 220

第四部分 特殊话题

第11章 常见报表问题 224
11.1 避免报表中的重复数据 224
11.2 在SQL报表里使用参数 227
11.3 在分组的结果中返回具体列的数据 229
11.4 将排序结果放入相等大小的BUCKET中 231
11.5 创建报表直方图 233
11.6 根据不同的排名进行结果筛选 234
11.7 对假设数据集进行比较 236
11.8 用图形和文字来展示数据的分布 238
11.9 从数据库中直接生成网页报表 239

第12章 清理数据 244
12.1 检测重复数据行 244
12.2 删除重复行 245
12.3 判断数据是否可以加载到数值类型字段中 246
12.4 判断数据是否可以加载到日期类型字段中 247
12.5 执行不区分大小写的查询 248
12.6 对值进行模糊处理 250
12.7 删除所有索引 252
12.8 禁用约束 253
12.9 禁用触发器 257
12.10 从表中删除数据 258
12.11 查找两个SCHEMA的不同之处 259

第13章 树状结构数据 263
13.1 从上到下遍历层级数据 265
13.2 在层次结构同层级中对节点排序 267
13.3 从层次结构表中生成路径名 270
13.4 在层次结构表中辨认叶子数据 272
13.5 检查层次结构数据中的循环 276
13.6 创建固定数量的连续序号的主键值 277

第14章 处理XML数据 280
14.1 将SQL转换成XML 280
14.2 以原生形式存储XML 284
14.3 分解XML供关系型逻辑使用 286
14.4 从XML文档中抽取关键元素 287
14.5 生成复杂的XML文档 289
14.6 验证XML SCHEMA 290
14.7 直接修改XML数据 293

第15章 分区 295
15.1 确定一个表是否应该分区 296
15.2 范围分区 297
15.3 列表分区 299
15.4 哈希分区 299
15.5 复合分区 300
15.6 按需创建分区 302
15.7 引用分区 303
15.8 基于虚拟列的分区 304
15.9 系统分区 305
15.10 配置分区的表空间 306
15.11 自动移动更新的记录 307
15.12 系统分区 308
15.13 对分区增加分区 309
15.14 交换分区 310
15.15 重命名分区 312
15.16 拆分分区 313
15.17 合并分区 314
15.18 删除分区 315
15.19 从一个分区中删除记录 316
15.20 收集分区统计信息 317
15.21 创建本地索引 317
15.22 创建全局索引 319

第16章 大对象 321
16.1 将大文档加载至CLOB字段 322
16.2 将图像数据加载至BLOB字段 324
16.3 使用SQL*Loader进行大对象的批量加载 326
16.4 利用HTTP访问大对象 328
16.5 使得外部大对象(BFILE)对数据库有效 332
16.6 在数据库表中更新或删除LOB 334

第五部分 管理

第17章 数据库管理 338
17.1 创建数据库 339
17.2 删除数据库 341
17.3 验证连接信息 342
17.4 创建表空间 343
17.5 删除表空间 345
17.6 调整表空间大小 346
17.7 限制每个会话的数据库资源 347
17.8 关联一组权限 349
17.9 创建用户 351
17.10 删除用户 352
17.11 修改密码 353
17.12 强制密码复杂性 354

第18章 对象管理 356
18.1 创建表 356
18.2 临时存储数据 358
18.3 移动表 359
18.4 重命名对象 360
18.5 删除表 362
18.6 恢复被删除的表 363
18.7 创建索引 364
18.8 创建一个基于函数的索引 366
18.9 创建位图索引 367
18.10 创建一个索引组织表 368
18.11 创建视图 369
18.12 为对象创建替代名称 370
18.13 强制表中的行的唯一性 372
18.14 确保查找值存在 374
18.15 根据条件检查数据 376
18.16 在数据库之间创建连接 377
18.17 创建自动递增的值 379

第19章 SQL监控和优化 381
19.1 实时监控SQL执行统计信息 381
19.2 显示查询的执行计划进展 383
19.3 确定还需要多长时间来完成SQL 385
19.4 识别资源密集型SQL语句 387
19.5 使用Oracle性能报告来确定资源消耗密集型SQL 388
19.6 在操作系统中识别资源密集型查询 391
19.7 使用AUTOTRACE显示执行计划 393
19.8 使用DBMS_XPLAN生成执行计划 395
19.9 跟踪会话的所有SQL语句 397
19.10 解释执行计划 402
19.11 获取调优SQL的建议 406
19.12 强制查询使用自己的执行计划 408
19.13 查看优化器统计信息 409
19.14 生成统计信息 411

第20章 数据库故障排除 413
20.1 确定数据库问题的原因 413
20.2 显示打开的游标 417
20.3 确定联机重做日志的大小是否合适 418
20.4 确定撤销表空间的大小是否合适 420
20.5 确定临时表空间的大小是否合适 422
20.6 完整显示表空间 423
20.7 显示对象大小 426
20.8 监控索引的使用 427
20.9 审计对象的使用 428
20.10 精细审计 430

内容简介
  《Oracle SQL疑难解析》总结了针对Oracle数据库编写SQL时经常碰到的各种问题,提供大量现成的解决方法,包括汇总和聚合数据、多表数据查询、生成和获取数据、通用查询模式、日期和时间值的处理、字符串、处理数字、事务处理、数据字典、清理数据、常见报表问题、树状结构数据、处理XML数据、分区、大对象、数据库管理、对象管理、SQL监控和优化、数据库故障排除等方面的内容。
  《Oracle SQL疑难解析》能够帮助你充分利用SQL来解决Oracle数据库开发中遇到的各种问题,引导你掌握各种构建应用的技巧和技术,从而编写出高效、可维护的代码。
  《Oracle SQL疑难解析》面向实战、结构清晰,示例丰富,适用于Oracle 数据库开发人员、Oracle 数据库管理员等相关数据库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训教材。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多