Oracle Database 11g SQL开发指南

当前位置:首页 > 计算机网络 > 数据库 > Oracle Database 11g SQL开发指南

出版社:清华大学
出版日期:2008-11
ISBN:9787302185895
作者:皮拉斯
页数:600页

章节摘录

插图:第1章 简介1.1 关系数据库简介关系数据库的概念是由E.F.Codd博士于1970年首次提出的。E.F.Codd博士在Communications of the ACM(Association for Computing Machinery,美国计算机学会)1970年6月第13卷第6期上发表了一篇题为A Relational Model ofData for Large Shared Data Banks(大型共享数据库的关系数据模型)的重要论文,奠定了关系数据库的理论基础。关系数据库(relational database)的基本概念非常简单易懂。关系数据库是一组已经被组织为表(table)结构的相关信息的集合。每个表都包含很多行(row),这些行又被进一步组织为列(column)。这些表在数据库中都被存储在称为模式(schema)的结构中,所谓模式就是数据库用户可以存储表的地方。每个用户都可以为其他用户授权访问自己的表。

前言

现在的数据库管理系统实现了一种标准语言——结构化查询语言(Structured Query Language,SQL)。除了具有其他语言的特点之外,SQL还可以对数据库中的信息进行检索、添加、修改和删除。本书将介绍如何真正掌握SQL,同时还会给出许多实用的例子。读者可以通过Internet获得本书中用到的所有脚本和程序(详细信息参看后文“本书源代码下载”部分)。通过本书读者可以:● 掌握标准的SQL,以及Oracle公司为了使用Oracle数据库的特性而开发的一些扩展。● 理解PL/SQL(过程化语言/SQL),它构建在SQL基础之上,允许用户编写包含SQL语句的程序。● 使用SQL*Plus执行SQL语句、脚本和报表;SQL*Plus就是一个与数据库进行交互的工具。● 对数据库执行查询、插入、更新和删除操作。● 创建数据库表、序列、索引、视图和用户。● 执行包含多条SQL语句的事务。● 定义数据库对象类型,以及创建对象表来处理高级数据。● 使用大对象来处理包含图像、音乐和电影的多媒体文件。● 使用分析函数执行复杂计算。● 使用所有最新的Oracle Database 11g特性,例如PIVOT和UNPIVOT、闪回归档以及更多新特性。● 实现高性能的优化技术,使SQL语句可以快速执行。● 编写使用JDBC来访问Oracle数据库的Java程序。● 掌握Oracle数据库的XML功能。

内容概要

Jason Price是职业咨询专家,Oracle公司前产品经理,拥有英国Bristol大学的物理学科学荣誉学士学位。他对Oracle的众多产品,如数据库、应用服务器和CRM应用程序都做出了卓越的贡献。Jason是一位经Oracle认证的数据库管理员和应用程序开发人员,在软件行业具有15年以上的从业经验,并执笔撰写了多本关于Oracle、Java和.NET的优秀图书。

书籍目录

第1章 简介
1
1.1 关系数据库简介
2
1.2 结构化查询语言(SQL)简介
2
1.3 使用SQL*Plus
4
1.3.1 启动SQL*Plus
4
1.3.2 从命令行启动SQL*Plus
5
1.3.3 使用SQL*Plus执行SELECT语句
6
1.4 SQL Developer
7
1.5 创建store模式
9
1.5.1 运行SQL*Plus脚本创建store模式
9
1.5.2 用来创建store模式的DDL语句
10
1.6 添加、修改、删除行
18
1.6.1 向表中添加行
18
1.6.2 修改表中的现有行
19
1.6.3 从表中删除行
20
1.7 BINARY_FLOAT和BINARY_ DOUBLE数据类型
21
1.7.1 BINARY_FLOAT和BINARY_DOUBLE的优点
21
1.7.2 在表中使用BINARY_FLOAT和BINARY_DOUBLE
21
1.7.3 特殊值
22
1.8 退出SQL*Plus
23
1.9 Oracle PL/SQL简介
23
1.10 小结
24
第2章 从数据库表中检索信息
25
2.1 对单表执行SELECT语句
25
2.2 选择一个表中的所有列
26
2.3 使用WHERE子句过滤行
27
2.4 理解行标识符
27
2.5 理解行号
28
2.6 执行算术运算
28
2.6.1 日期运算
29
2.6.2 列运算
30
2.7 使用列别名
31
2.8 使用连接操作合并列的输出结果
32
2.9 理解空值
33
2.10 禁止显示重复行
34
2.11 比较值
35
2.12 使用SQL操作符
37
2.12.1 使用LIKE操作符
37
2.12.2 使用IN操作符
38
2.12.3 使用BETWEEN操作符
39
2.13 使用逻辑操作符
40
2.14 理解操作符的优先级
41
2.15 使用ORDER BY子句对行进行排序
41
2.16 执行使用两个表的SELECT语句
42
2.17 使用表别名
44
2.18 笛卡尔积
45
2.19 执行使用多于两个表的SELECT语句
46
2.20 连接条件和连接类型
47
2.20.1 不等连接
47
2.20.2 外连接
48
2.20.3 自连接
51
2.21 使用SQL/92语法执行连接
52
2.21.1 使用SQL/92标准语法执行两个表的内连接
53
2.21.2 使用USING关键字简化连接
53
2.21.3 使用SQL/92执行多于两个表的内连接
54
2.21.4 使用SQL/92执行多列的内连接
55
2.21.5 使用SQL/92执行外连接
55
2.21.6 使用SQL/92执行自连接
56
2.21.7 使用SQL/92执行交叉
连接
57
2.22 小结
57
第3章 使用SQL*Plus
59
3.1 查看表结构
60
3.2 编辑SQL语句
60
3.3 保存、检索并运行文件
62
3.4 格式化列
65
3.5 设置页面大小
67
3.6 设置行大小
68
3.7 清除列格式
68
3.8 使用变量
69
3.8.1 临时变量
69
3.8.2 已定义变量
72
3.9 创建简单报表
74
3.9.1 在脚本中使用临时变量
74
3.9.2 在脚本中使用已定义变量
75
3.9.3 向脚本中的变量传递值
75
3.9.4 添加页眉和页脚
76
3.9.5 计算小计
78
3.10 从SQL*Plus获取帮助信息
79
3.11 自动生成SQL语句
80
3.12 断开数据库连接并退出SQL*Plus
81
3.13 小结
81
第4章 使用简单函数
83
4.1 使用单行函数
84
4.1.1 字符函数
84
4.1.2 数字函数
92
4.1.3 转换函数
96
4.1.4 正则表达式函数
102
4.2 使用聚合函数
108
4.2.1 AVG函数
109
4.2.2 COUNT函数
110
4.2.3 MAX和MIN函数
110
4.2.4 STDDEV函数
111
4.2.5 SUM函数
111
4.2.6 VARIANCE函数
112
4.3 对行进行分组
112
4.3.1 使用GROUP BY子句对行进行分组
112
4.3.2 调用聚合函数的错误用法
115
4.3.3 使用HAVING子句过滤行组
116
4.3.4 组合使用WHERE和GROUP BY子句
117
4.3.5 组合使用WHERE、GROUP
BY和HAVING子句
117
4.4 小结
118
第5章 日期和时间的存储与处理
119
5.1 几个简单的存储和检索日期的例子
120
5.2 使用TO_CHAR()和
TO_DATE()转换时间值
121
5.2.1 使用TO_CHAR()将时间值转换为字符串
121
5.2.2 使用TO_DATE()将字符串转换为时间值
125
5.3 设置默认的日期格式
128
5.4 Oracle对2位年份的处理
129
5.4.1 使用YY格式
129
5.4.2 使用RR格式
130
5.5 使用时间值函数
131
5.5.1 ADD_MONTHS函数
131
5.5.2 LAST_DAY函数
132
5.5.3 MONTHS_BETWEEN函数
133
5.5.4 NEXT_DAY函数
133
5.5.5 ROUND函数
133
5.5.6 SYSDATE
134
5.5.7 TRUNC函数
134
5.6 理解时区
135
5.6.1 与时区有关的函数
136
5.6.2 数据库时区和会话时区
136
5.6.3 获取时区的时差
137
5.6.4 获取时区名
138
5.6.5 将时间值从一个时区转换为另一个时区
138
5.7 使用时间戳
139
5.7.1 使用时间戳类型
139
5.7.2 与时间戳有关的函数
143
5.8 使用时间间隔
148
5.8.1 使用INTERVAL YEAR TO MONTH类型
149
5.8.2 使用INTERVAL DAY TO
SECOND类型
150
5.8.3 与时间间隔有关的函数
152
5.9 小结
153
第6章 子查询
155
6.1 子查询的类型
155
6.2 编写单行子查询
156
6.2.1 在WHERE子句中使用子查询
156
6.2.2 使用其他单行操作符
157
6.2.3 在HAVING子句中使用子查询
157
6.2.4 在FROM子句中使用子查询(内联视图)
159
6.2.5 可能碰到的错误
159
6.3 编写多行子查询
160
6.3.1 在多行子查询中使用IN操作符
161
6.3.2 在多行子查询中使用ANY操作符
162
6.3.3 在多行子查询中使用ALL操作符
162
6.4 编写多列子查询
162
6.5 编写关联子查询
163
6.5.1 关联子查询的例子
163
6.5.2 在关联子查询中使用EXISTS和NOT EXISTS
164
6.6 编写嵌套子查询
166
6.7 编写包含子查询的UPDATE和DELETE语句
168
6.7.1 编写包含子查询的UPDATE语句
168
6.7.2 编写包含子查询的DELETE语句
168
6.8 小结
169
第7章 高级查询
171
7.1 使用集合操作符
172
7.1.1 示例表
172
7.1.2 使用UNION ALL操作符
173
7.1.3 使用UNION操作符
174
7.1.4 使用INTERSECT操作符
175
7.1.5 使用MINUS操作符
175
7.1.6 组合使用集合操作符
176
7.2 使用TRANSLATE函数
178
7.3 使用DECODE()函数
179
7.4 使用CASE表达式
181
7.4.1 使用简单CASE表达式
181
7.4.2 使用搜索CASE表达式
182
7.5 层次化查询
183
7.5.1 示例数据
183
7.5.2 使用CONNECT BY和
START WITH子句
185
7.5.3 使用伪列LEVEL
185
7.5.4 格式化层次化查询的结果
186
7.5.5 从非根节点开始遍历
187
7.5.6 在START WITH子句中使用子查询
187
7.5.7 从下向上遍历树
188
7.5.8 从层次查询中删除节点和分支
188
7.5.9 在层次化查询中加入其他条件
189
7.6 使用扩展的GROUP BY子句
190
7.7 使用ROLLUP子句
192
7.7.1 使用CUBE子句
194
7.7.2 使用GROUPING函数
195
7.7.3 使用GROUPING SETS子句
198
7.7.4 使用GROUPING_ID函数
199
7.7.5 在GROUP BY子句中多次使用一个列
201
7.7.6 使用GROUP_ID函数
201
7.8 使用分析函数
203
7.8.1 示例表
203
7.8.2 使用评级函数
204
7.8.3 使用反百分点函数
211
7.8.4 使用窗口函数
211
7.8.5 使用报表函数
216
7.8.6 使用LAG和LEAD函数
218
7.8.7 使用FIRST和LAST函数
219
7.8.8 使用线性回归函数
219
7.8.9 使用假想评级与分布函数
221
7.9 使用MODEL子句
221
7.9.1 MODEL子句示例
222
7.9.2 用位置标记和符号标记访问数据单元
223
7.9.3 用BETWEEN和AND返回特定范围内的数据单元
224
7.9.4 用ANY和IS ANY访问所有的数据单元
224
7.9.5 用CURRENTV()获取某个维度的当前值
225
7.9.6 用FOR循环访问数据单元
226
7.9.7 处理空值和缺失值
227
7.9.8 更新已有的单元
229
7.10 使用PIVOT和UNPIVOT子句
230
7.10.1 PIVOT子句示例
230
7.10.2 转换多个列
231
7.10.3 在转换中使用多个聚合函数
232
7.10.4 使用UNPIVOT子句
233
7.11 小结
234
第8章 修改表的内容
237
8.1 使用INSERT语句添加行
237
8.1.1 省略列的列表
239
8.1.2 为列指定空值
239
8.1.3 在列值中使用单引号和双引号
239
8.1.4 从一个表向另外一个表复制行
239
8.2 使用UPDATE语句修改行
240
8.3 RETURNING子句
241
8.4 使用DELETE语句删除行
242
8.5 数据库的完整性
242
8.5.1 主键约束
242
8.5.2 外键约束
243
8.6 使用默认值
244
8.7 使用MERGE合并行
245
8.8 数据库事务
247
8.8.1 事务的提交和回滚
247
8.8.2 事务的开始与结束
248
8.8.3 保存点
249
8.8.4 事务的ACID特性
251
8.8.5 并发事务
251
8.8.6 事务锁
252
8.8.7 事务隔离级别
253
8.8.8 SERIALIZABLE事务的一个例子
254
8.9 查询闪回
254
8.9.1 使用闪回的授权
254
8.9.2 时间查询闪回
255
8.9.3 系统变更号查询闪回
256
8.10 小结
258
第9章 用户、特权和角色
259
9.1 用户
260
9.1.1 创建用户
260
9.1.2 修改用户密码
261
9.1.3 删除用户
261
9.2 系统特权
262
9.2.1 向用户授予系统特权
263
9.2.2 检查授予用户的系统特权
263
9.2.3 使用系统特权
264
9.2.4 撤消用户的系统特权
264
9.3 对象特权
265
9.3.1 向用户授予对象特权
265
9.3.2 检查已授予的对象特权
266
9.3.3 检查已接受的对象特权
267
9.3.4 使用对象特权
269
9.3.5 同名对象
269
9.3.6 公共同名对象
270
9.3.7 撤消用户的对象特权
271
9.4 角色
271
9.4.1 创建角色
271
9.4.2 为角色授权
272
9.4.3 将角色授予用户
272
9.4.4 检查授予用户的角色
273
9.4.5 检查授予角色的系统特权
274
9.4.6 检查授予角色的对象特权
274
9.4.7 使用授予角色的特权
276
9.4.8 默认角色
276
9.4.9 撤消角色
277
9.4.10 从角色中撤消特权
277
9.4.11 删除角色
277
9.5 审计
277
9.5.1 执行审计需要的特权
277
9.5.2 审计示例
278
9.5.3 审计跟踪视图
279
9.6 小结
280
第10章 创建表、序列、索引和视图
281
10.1 表
282
10.1.1 创建表
282
10.1.2 获得有关表的信息
283
10.1.3 获得表中列的信息
284
10.1.4 修改表
285
10.1.5 重命名表
294
10.1.6 向表中添加注释
294
10.1.7 截断表
295
10.1.8 删除表
295
10.2 序列
295
10.2.1 创建序列
295
10.2.2 获取有关序列的信息
297
10.2.3 使用序列
298
10.2.4 使用序列填充主键
299
10.2.5 修改序列
300
10.2.6 删除序列
301
10.3 索引
301
10.3.1 创建B-树索引
302
10.3.2 创建基于函数的索引
303
10.3.3 获取有关索引的信息
303
10.3.4 获取列索引的信息
304
10.3.5 修改索引
304
10.3.6 删除索引
305
10.3.7 创建位图索引
305
10.4 视图
305
10.4.1 创建并使用视图
306
10.4.2 修改视图
313
10.4.3 删除视图
314
10.5 闪回数据归档
314
10.6 小结
316
第11章 PL/SQL编程简介
317
11.1 块结构
318
11.2 变量和类型
319
11.3 条件逻辑
320
11.4 循环
320
11.4.1 简单循环
321
11.4.2 WHILE循环
322
11.4.3 FOR循环
322
11.5 游标
323
11.5.1 步骤1:声明用于保存列值的变量
323
11.5.2 步骤2:声明游标
323
11.5.3 步骤3:打开游标
324
11.5.4 步骤4:从游标中取得记录
324
11.5.5 步骤5:关闭游标
325
11.5.6 完整的示例:product_cursor.sql
325
11.5.7 游标与FOR循环
326
11.5.8 OPEN-FOR语句
327
11.5.9 无约束游标
329
11.6 异常
330
11.6.1 ZERO_DIVIDE异常
332
11.6.2 DUP_VAL_ON_INDEX异常
333
11.6.3 INVALID_NUMBER异常
333
11.6.4 OTHERS异常
333
11.7 过程
334
11.7.1 创建过程
334
11.7.2 调用过程
337
11.7.3 获取有关过程的信息
338
11.7.4 删除过程
338
11.7.5 查看过程中的错误
338
11.8 函数
339
11.8.1 创建函数
339
11.8.2 调用函数
340
11.8.3 获取有关函数的信息
341
11.8.4 删除函数
341
11.9 包
341
11.9.1 创建包规范
342
11.9.2 创建包体
342
11.9.3 调用包中的函数和过程
344
11.9.4 获取有关包中函数和过程的信息
344
11.9.5 删除包
345
11.10 触发器
345
11.10.1 触发器运行的时机
345
11.10.2 设置示例触发器
345
11.10.3 创建触发器
346
11.10.4 激活触发器
347
11.10.5 获取有关触发器的信息
348
11.10.6 禁用和启用触发器
350
11.10.7 删除触发器
350
11.11 Oracle Database 11g新增加的PL/SQL特性
350
11.11.1 SIMPLE_INTEGER类型
350
11.11.2 在PL/SQL中使用序列
351
11.11.3 PL/SQL本地机器代码生成
352
11.12 小结
353
第12章 数据库对象
355
12.1 对象简介
356
12.2 创建对象类型
356
12.3 使用DESCRIBE获取有关对象类型的信息
358
12.4 在数据库表中使用对象类型
359
12.4.1 列对象
359
12.4.2 对象表
361
12.4.3 对象标识符和对象引用
365
12.4.4 比较对象值
367
12.5 在PL/SQL中使用对象
369
12.5.1 get_products()函数
370
12.5.2 display_product()过程
371
12.5.3 insert_product()过程
372
12.5.4 update_product_price()过程
373
12.5.5 get_product()函数
373
12.5.6 update_product()过程
374
12.5.7 get_product_ref()函数
375
12.5.8 delete_product()过程
375
12.5.9 product_lifecycle()过程
376
12.5.10 product_lifecycle2()过程
377
12.6 类型继承
378
12.7 用子类型对象代替超类型对象
380
12.7.1 SQL例子
380
12.7.2 PL/SQL例子
381
12.7.3 NOT SUBSTITUTABLE对象
382
12.8 其他有用的对象函数
383
12.8.1 IS OF()
383
12.8.2 TREAT()
387
12.8.3 SYS_TYPEID()
391
12.9 NOT INSTANTIABLE对象类型
391
12.10 用户自定义的构造函数
393
12.11 重载方法
396
12.12 通用调用
398
12.13 小结
400
第13章 集合
401
13.1 集合简介
401
13.2 创建集合类型
402
13.2.1 创建变长数组类型
402
13.2.2 创建嵌套表类型
403
13.3 使用集合类型定义表列
403
13.3.1 使用变长数组类型定义表列
403
13.3.2 使用嵌套表类型定义表列
404
13.4 获取集合信息
404
13.4.1 获取变长数组信息
404
13.4.2 获得嵌套表信息
405
13.5 填充集合元素
407
13.5.1 填充变长数组元素
407
13.5.2 填充嵌套表元素
407
13.6 检索集合元素
408
13.6.1 检索变长数组元素
408
13.6.2 检索嵌套表元素
409
13.7 使用TABLE()将集合视为一系列行
409
13.7.1 将TABLE()用于变长数组
410
13.7.2 将TABLE()用于嵌套表
411
13.8 更改集合元素
411
13.8.1 更改变长数组元素
411
13.8.2 更改嵌套表元素
412
13.9 使用映射方法比较嵌套表的内容
413
13.10 使用CAST()将集合从一种类型转换为另一种类型
415
13.10.1 使用CAST()将变长数组转换为嵌套表
416
13.10.2 使用CAST()将嵌套表转换为变长数组
416
13.11 在PL/SQL中使用集合
417
13.11.1 操作变长数组
417
13.11.2 操作嵌套表
419
13.11.3 PL/SQL集合方法
421
13.12 多级集合类型
431
13.13 Oracle Database 10g对集合的增强
433
13.13.1 关联数组
434
13.13.2 更改元素类型的大小
435
13.13.3 增加变长数组的元素数目
435
13.13.4 在临时表中使用变长数组
435
13.13.5 为嵌套表的存储表使用不同的表空间
435
13.13.6 嵌套表对ANSI的支持
436
13.14 小结
444
第14章 大对象
447
14.1 大对象(LOB)简介
448
14.2 示例文件
448
14.3 理解大对象类型
449
14.4 创建包含大对象的表
449
14.5 在SQL中使用大对象
450
14.5.1 使用CLOB和BLOB
450
14.5.2 使用BFILE
452
14.6 在PL/SQL中使用大对象
454
14.6.1 APPEND()
456
14.6.2 CLOSE()
457
14.6.3 COMPARE()
457
14.6.4 COPY()
458
14.6.5 CREATETEMPORARY()
459
14.6.6 ERASE()
460
14.6.7 FILECLOSE()
460
14.6.8 FILECLOSEALL()
461
14.6.9 FILEEXISTS()
461
14.6.10 FILEGETNAME()
462
14.6.11 FILEISOPEN()
462
14.6.12 FILEOPEN()
463
14.6.13 FREETEMPORARY()
463
14.6.14 GETCHUNKSIZE()
464
14.6.15 GET_STORAGE_LIMIT()
464
14.6.16 GETLENGTH()
464
14.6.17 INSTR()
465
14.6.18 ISOPEN()
466
14.6.19 ISTEMPORARY()
467
14.6.20 LOADFROMFILE()
467
14.6.21 LOADBLOBFROMFILE()
468
14.6.22 LOADCLOBFROMFILE()
469
14.6.23 OPEN()
470
14.6.24 READ()
471
14.6.25 SUBSTR()
471
14.6.26 TRIM()
473
14.6.27 WRITE()
473
14.6.28 WRITEAPPEND()
474
14.6.29 PL/SQL示例过程
475
14.7 理解LONG和LONG RAW类型
492
14.7.1 示例表
492
14.7.2 向LONG和LONG RAW列添加数据
492
14.7.3 将LONG和LONG RAW列转换为LOB
493
14.8 Oracle Database 10g对大对象的增强
494
14.8.1 CLOB和NCLOB对象之间的隐式转换
494
14.8.2 在触发器中使用LOB时:new属性的用法
495
14.9 Oracle Database 11g对大对象的增强
495
14.9.1 加密LOB数据
496
14.9.2 压缩LOB数据
499
14.9.3 删除LOB重复数据
499
14.10 小结
500
第15章 在Java程序中运行SQL
501
15.1 准备工作
502
15.2 配置计算机
502
15.2.1 设置ORACLE_HOME环境变量
502
15.2.2 设置JAVA_HOME环境变量
503
15.2.3 设置PATH环境变量
503
15.2.4 设置CLASSPATH环境变量
504
15.2.5 设置LD_LIBRARY_PATH环境变量
504
15.3 Oracle JDBC驱动程序
505
15.3.1 Thin驱动程序
505
15.3.2 OCI驱动程序
505
15.3.3 服务器端内部驱动程序
505
15.3.4 服务器端Thin驱动程序
505
15.4 导入JDBC包
506
15.5 注册Oracle JDBC驱动程序
506
15.6 打开数据库连接
506
15.6.1 使用getConnection()方法连接数据库
507
15.6.2 数据库URL
507
15.6.3 使用Oracle数据源连接数据库
508
15.7 创建JDBC Statement对象
511
15.8 从数据库中检索行
511
15.8.1 步骤1:创建和填充ResultSet对象
511
15.8.2 步骤2:从ResultSet对象中读取列值
512
15.8.3 步骤3:关闭ResultSet对象
514
15.9 向数据库中添加行
514
15.10 更改数据库的行
515
15.11 删除数据库的行
516
15.12 处理数字
516
15.13 处理数据库Null值
517
15.14 控制数据库事务
519
15.15 执行DDL语句
519
15.16 处理异常
520
15.17 关闭JDBC对象
521
15.18 示例程序:BasicExample1.java
522
15.18.1 编译BasicExample1
527
15.18.2 运行BasicExample1
527
15.19 预备SQL语句
529
15.20 示例程序:BasicExample2.java
531
15.21 Oracle JDBC扩展
534
15.21.1 oracle.sql包
534
15.21.2 oracle.jdbc包
537
15.21.3 示例程序:
BasicExample3.java
540
15.22 小结
543
第16章 SQL优化
545
16.1 SQL优化简介
545
16.2 使用WHERE子句过滤行
546
16.3 使用表连接而不是多个查询
546
16.4 执行连接时使用完全限定的列引用
547
16.5 使用CASE表达式而不是多个查询
548
16.6 添加表索引
549
16.7 使用WHERE而不是HAVING
550
16.8 使用UNION ALL而不是UNION
550
16.9 使用EXISTS而不是IN
552
16.10 使用EXISTS而不是DISTINCT
552
16.11 使用GROUPING SETS而不是CUBE
553
16.12 使用绑定变量
553
16.12.1 不相同的SQL语句
554
16.12.2 使用绑定变量定义相同SQL语句
554
16.12.3 列出和输出绑定变量
555
16.12.4 使用绑定变量存储PL/SQL函数的返回值
555
16.12.5 使用绑定变量存储REFCURSOR的行
556
16.13 比较执行查询的成本
556
16.13.1 检查执行计划
557
16.13.2 比较执行计划
562
16.14 为优化器传递提示
563
16.15 其他优化工具
564
16.15.1 Oracle Enterprise Manager
Diagnostics Pack
565
16.15.2 Automatic Database
Diagnostic Monitor
565
16.16 小结
566
第17章 XML和Oracle数据库
567
17.1 XML简介
567
17.2 从关系数据生成XML
568
17.2.1 XMLELEMENT()
568
17.2.2 XMLATTRIBUTES()
571
17.2.3 XMLFOREST()
571
17.2.4 XMLAGG()
573
17.2.5 XMLCOLATTVAL()
575
17.2.6 XMLCONCAT()
576
17.2.7 XMLPARSE()
576
17.2.8 XMLPI()
577
17.2.9 XMLCOMMENT()
577
17.2.10 XMLSEQUENCE()
578
17.2.11 XMLSERIALIZE()
579
17.2.12 PL/SQL范例:将XML数据写入文件
579
17.2.13 XMLQUERY()
581
17.3 将XML保存到数据库中
585
17.3.1 范例XML文件
585
17.3.2 创建范例XML模式
586
17.3.3 从范例XML模式检索信息
588
17.3.4 更新范例XML模式中的信息
592
17.4 小结
595
附录A Oracle数据类型
597

编辑推荐

《Oracle Database 11g SQL开发指南》Oracle专家Jason Price带您一起学习如何通过SQL语句和PL/SQL程序访问Oracle数据库。《Oracle Database 11g SQL开发指南》是Oracle Press重磅推出的一本关于Oracle Database 11g SQL的专著,是掌握SQL的必读之作。

作者简介

《Oracle Database 11g SQL开发指南》深入浅出、全面细致地讲解了如何读取和修改数据库信息,如何使用SQL Plus和SQL Developer,如何使用数据库对象,如何编写PL/SQL程序等内容。随着对《Oracle Database 11g SQL开发指南》学习的深入,读者将循序渐进地掌握最新的SQL特性和工具、性能优化技术、高级查询、Java支持以及XML应用。《Oracle Database 11g SQL开发指南》主要内容:解读SQL Plus和SQL Developer
使用SQL SELECT、INSERT、UPDATE和DELETE语句。编写PL/SQL程序。创建表、序列、索引、视图和触发器。编写包含复杂分析功能的高级查询。创建用于处理抽象数据的数据库对象和集合。编写Java程序并使用JDBC访问。racle数据库。使用大对象处理音频、视频等多媒体文件。优化SQL语句以提高其执行效率。探究Oracle数据库处理XML的能力。掌握Oracle Database 11g的最新特性,如PIVOT、UNPIVOT和闪回数据存档等。

图书封面


 Oracle Database 11g SQL开发指南下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计1条)

  •     适合初学者掌握oracle的sql语句,某些地方的讲解也谈得上细致。翻译也算说得过去。但本书在分析函数方面的讲解非常垃圾,你根本搞不清是怎么回事。还得到网上查资料学习这部分。

精彩短评 (总计97条)

  •     必须不错的一本书,有收获
  •     作为工具书来查资料不错
  •     本书比较全面,是一本手册性质的参考书
  •     很不错的一本书,讲解的挺详细的
  •     工作需要。
  •     很不错啊,有的一看
  •     这本书是老师推荐的,非常不错
  •     书内容很不错,正版,纸张很好,发货速度也快
  •     质量就算可以吧
  •     感觉各方面都还不错
  •     感觉还不错哦,好好学习下
  •     对程序员来说不错,特别是java程序员
  •     还行,凑合着看
  •     封面有黑色印记檫不掉,好烦躁的,第一次在当当买,说实话太失望了.还不如去**,起码书看起来要好得多.书大概看了下内容不错,但是里面的源代码还得去网上下载,没有光盘有点小失望.
  •     买回来已经4天了,看了之后觉得很不错,很容易看懂(当然前提是要懂一点)。很不错!
  •     不奢望什么,书嘛,能看就行
  •     书的质感很好,内容很给力,好评
  •     适合初学者掌握oracle的sql语句。但本书在分析函数方面的讲解非常垃圾
  •     内容广泛,但是不精,适合初学者
  •     印刷一般。但是内容还可以
  •     这书总体上还行。但是在讲分析函数的时候,泛泛带过,根本就没讲清是怎么回事。我还是上网上查相关说明才搞清的。这部分看上去简直不像是同一个人写的。
  •     大致看了看,主要是SQL语句
  •     学了server sql,开始学习oracle。
  •     这本书 很好 很不错 值得一看
  •     就是一本手册,工具书
  •     送快递的火气有点大了。
  •     对oracle初学者学习sql语言非常有帮助
  •     这书很简单
  •     入门学习的好东西,值得看看
  •     作为初学者的指南类的还是本不错的书籍不过如果需要后续研究的话还得找几本讲的更细的
  •     发货挺快,书的质量不是很好,纸质有点差
  •     还可以 ,
    每段sql讲解的有点少哦!
  •     当工具书看看欢迎您发表有参考价值的评价,未经授权的文字请勿转载
  •     数的质量很好,是正品,好评。
  •     这本书很不错 应该算是官方出品吧
  •     书的编排和内容讲解实在太烂了,看了两天直接扔一边了
  •     书好脏!!封面后面掉了一个角,书店的样书都没有这样脏烂的!不过看在是当手册用的份上就懒得退换了。
  •     主要涉及SQL的编写和运用,对Oracle其他方面涉及很少,适合初学者。对Oracle运用的深入介绍不多,不太适合高级用户。
  •     需要实践 基本上属于初级读物
  •     内容很详细,不错,好好学习了。
  •     oracle开发指南
  •     很好的书,是个初学者
  •     <ORACLE DATABASE 11G SQL开发指南>同<ORACLE DATABASE 10G SQL开发指南>译者不同,那个译的比较好啊?
  •     相当不错,经常拿起来温习温习
  •     适合用于ORACLE开发
  •     初学者,或是 开发者,可以参考的书籍!
  •     11g
  •     内容还行,写的不错
  •     比较基础,适用于编程开发,DBA慎入
  •     货还是很快的,书也很新,还没开始看,今天收到的,要是能有光盘就更好了
  •     讲的比较清楚,适合我这种初学者。。。
  •     是给我们公司技术人员买的,都是初级的,他们说还行
  •     新手也能看得懂
  •     内容很全面,讲解的虽然不是很详细,但对于初学者够用!虽然贵了点,但还是物有所值
  •     很适合初学者。都想把书卖掉了。
  •     作为入门和查询语句还是不错的。
  •     每个Oracle数据库开发维护人员的必备书籍
  •     我说此书差,是结构上差。该有的知识点基本还是都有的。基本上我买书只买老外写的。Wrox的P2P系列,图灵系列等。这OracleDB系列的一套,这是第一本,但是印象非常糟糕。知识点的排布非常混乱,一些基础知识放到后面再讲。在知识点的讲解上,更多更重要的是讲Oracle的方言,而不是重点告诉你SQL标准。比如第二章的表连接,放到最后有一节2.21专门讲了SQL/92的标准语法。这对于初学者来说是很重要的问题。代码上,也是很不规范,有时候关键字都用大写,有时候都用小写。象子查询,CASE表达式,GROUPBY子句,INSERT/UPDATE/DELETE关键字这些基本内容都放到了函数后面来介绍。这本书只能适合有关系型数据库经验(比如SQLServer,MySQL)的开发人员读。而对于初学者来说,容易剑走偏锋,学个几年后发现自己写的东西都不太标准,改写成其他方言的时候需要做更多的工作。另外作为我这样一个.NET工程师来说,比较遗憾的一点是在第15章介绍了在JAVA开发的知识点,但是却没有提到.NET方面的任何东西。
  •     还不错,就是书上有点灰。
  •     书不错,货到的也快。
  •     发货挺快,是正品的哈哈
  •     讲得详细,但内容不是很深
  •     好多错误,分析函数草草带过!
  •     封面很脏,能不能弄干净了再出货送来。
  •       适合初学者掌握oracle的sql语句,某些地方的讲解也谈得上细致。翻译也算说得过去。但本书在分析函数方面的讲解非常垃圾,你根本搞不清是怎么回事。还得到网上查资料学习这部分。
  •     我是一个初学ORACLE,想买一本适合初级学者教材,但我之前做SQL 2005 DBA 想过渡到ORACLE ,就从这里购买了一本教材,当我打开教材,浏览一番,顿时心情凉了,本书没有太过于精彩内容,基础知识涵盖量过少,完全不适合初学者来学习,因为他根本就是一个连最具有基础的教材都比不上。希望买者深思。
  •     及其基础的内容,但是说的尚算全面,即便是对数据库没什么了解的人也能看的明白。
  •     操作指南性质的书
  •     我是已经上班的,虽然平时都用SQL,但是只会一些常用的,这本书写的很好,很实用
  •     初学者或老手都适合。。
  •     系统过一遍,整理一下季总的传承
  •     还是很有用的,sql的每种用法写的都很详细。但感觉就是一本技术类参考书,如果趣味性更强点就更好了。
  •     PL/SQL 开发 应该看另外一本
  •     很好,很全面,真的很有用
  •     对我的提升很大。。
  •     全面,翔实,但只能当工具书用。内容非常专业,值得拥有。
  •     这本书只能说是开卷有益吧。
    这本书与那本宝典很多地方重合,而且宝典更丰富,我是两本都有了,所以觉得有点浪费,这本书最有意义的地方是讲优化那章,其它的没啥意思。
  •     书很好!质量还不错!
  •     书挺好,可以作为工具书使用,哪里不清楚了翻两下!
  •     书是老师推荐的书,挺不错的。不过送来的时候书有褶皱,看起来不爽。
  •     好书,我在项目中真正派上用场,发挥不少作用
  •     这本书比较仔细,还好。
  •     很好 在书店看到 来这里买的
  •     通俗易懂 质量也不错 内容比较详实 对考试有帮助
  •     我是因为高级数据库课程选用了这本书作为教材才购买的。读过之后发现即使不是作为上课使用的教材,对于一个开发人员这本书也是非常实用的。书中的内容清晰、简明,并且配有相关的例子,这样在自己编写程序的时候就可以照葫芦画瓢,方便的很!这本书对我的课程学习有很大的帮助!总体来说,物有所值!
  •     讲的很细致,值得一看
  •     这本书挺好的,挺适合开发人员
  •     一本将SQL的很好的书,和那个PL/SQL一样,值得去深入读
  •     书还可以 刚货 ,还在阅读。
  •     对于初学SQL编写非常有用
  •     对于开发人员指明了一个学习方向;少走弯路
  •     SQL开发的好书正在啃。。
  •     内容挺全,介绍的很详细
  •     书的内容很充实,可以当做参考书来使用
  •     当当的书是好的没得说,我信赖!这本书写的也好,是给朋友买的,不错。
  •     书到了,感觉还好,物有所值吧
  •     新手或者高级开发人员必备的书籍
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024