图书介绍
精通Oracle Database 12c SQL & PL/SQL编程 3版PDF|Epub|txt|kindle电子书版本网盘下载
![精通Oracle Database 12c SQL & PL/SQL编程 3版](https://www.shukui.net/cover/40/30630154.jpg)
- (美)普赖斯著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302365983
- 出版时间:2014
- 标注页数:590页
- 文件大小:75MB
- 文件页数:612页
- 主题词:关系数据库系统-程序设计
PDF下载
下载说明
精通Oracle Database 12c SQL & PL/SQL编程 3版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 简介1
1.1 关系数据库简介1
1.2 SQL简介2
1.3 使用SQL*Plus4
1.3.1 启动SQL*Plus4
1.3.2 从命令行启动SQL*Plus4
1.3.3 使用SQL*Plus执行SELECT语句5
1.4 使用SQL Developer6
1.5 创建store模式8
1.5.1 检查脚本8
1.5.2 运行脚本10
1.5.3 用来创建store模式的DDL语句11
1.6 添加、修改和删除行17
1.6.1 向表中添加行17
1.6.2 修改表中的现有行19
1.6.3 从表中删除行20
1.7 连接数据库和断开连接20
1.8 退出SQL*Plus20
1.9 Oracle PL/SQL简介21
1.10 小结22
第2章 从数据库表中检索信息23
2.1 对单表执行SELECT语句24
2.2 选择一个表中的所有列24
2.3 使用WHERE子句限定行25
2.4 行标识符25
2.5 行号26
2.6 执行算术运算26
2.6.1 执行日期运算27
2.6.2 列运算28
2.6.3 算术运算操作符的优先级29
2.7 使用列别名29
2.8 使用连接操作合并列的输出结果30
2.9 空值31
2.10 禁止显示重复行32
2.11 比较值33
2.11.1 使用不等于操作符33
2.11.2 使用大于操作符34
2.11.3 使用小于或等于操作符34
2.11.4 使用ANY操作符34
2.11.5 使用ALL操作符35
2.12 使用SQL操作符35
2.12.1 使用LIKE操作符36
2.12.2 使用IN操作符37
2.12.3 使用BETWEEN操作符38
2.13 使用逻辑操作符38
2.13.1 使用AND操作符38
2.13.2 使用OR操作符39
2.14 逻辑操作符的优先级39
2.15 使用ORDER BY子句对行进行排序40
2.16 执行使用两个表的SELECT语句41
2.17 使用表别名43
2.18 笛卡尔积43
2.19 执行使用多于两个表的SELECT语句44
2.20 连接条件和连接类型45
2.20.1 不等连接46
2.20.2 外连接46
2.20.3 自连接50
2.21 使用SQL/92语法执行连接51
2.21.1 使用SQL/92标准语法执行两个表的内连接51
2.21.2 使用USING关键字简化连接51
2.21.3 使用SQL/92执行多于两个表的内连接52
2.21.4 使用SQL/92执行多列的内连接53
2.21.5 使用SQL/92执行外连接53
2.21.6 使用SQL/92执行自连接55
2.21.7 使用SQL/92执行交叉连接55
2.22 小结55
第3章 使用SQL*PIus57
3.1 查看表的结构58
3.2 编辑SQL语句58
3.3 保存、检索并运行文件60
3.4 格式化列63
3.5 设置页面大小65
3.6 设置行大小66
3.7 清除列的格式67
3.8 使用变量67
3.8.1 临时变量67
3.8.2 已定义变量70
3.9 创建简单报表73
3.9.1 在脚本中使用临时变量73
3.9.2 在脚本中使用已定义变量73
3.9.3 向脚本中的变量传递值74
3.9.4 添加页眉和页脚75
3.9.5 计算小计76
3.10 从SQL*Plus获取帮助信息78
3.11 自动生成SQL语句79
3.12 断开数据库连接并退出SQL*Plus79
3.13 小结79
第4章 使用简单函数81
4.1 使用单行函数82
4.1.1 字符函数82
4.1.2 数值函数91
4.1.3 转换函数96
4.1.4 正则表达式函数106
4.2 使用聚合函数112
4.2.1 AVG()113
4.2.2 COUNT()114
4.2.3 MAX()和MIN()114
4.2.4 STDDEV()115
4.2.5 SUM()115
4.2.6 VARIANCE()115
4.3 对行进行分组116
4.3.1 使用GROUP BY子句对行进行分组116
4.3.2 调用聚合函数的错误用法119
4.3.3 使用HAVING子句过滤行组120
4.3.4 组合使用WHERE和GROUP BY子句120
4.3.5 组合使用WHERE、GROUP BY和HAVING子句121
4.4 小结122
第5章 日期和时间的存储与处理123
5.1 几个简单的存储和检索日期的例子123
5.2 使用TO_CHAR()和TO_DATE()转换时间值125
5.2.1 使用TO_CHAR()将时间值转换为字符串125
5.2.2 使用TO_DATEO()将字符串转换为时间值130
5.3 设置默认的日期格式132
5.4 Oracle对两位年份的处理133
5.4.1 使用YY格式133
5.4.2 使用RR格式134
5.5 使用时间值函数135
5.5.1 ADD_MONTHS()136
5.5.2 LAST_DAY()137
5.5.3 MONTHS_BETWEEN()137
5.5.4 NEXT_DAY()138
5.5.5 ROUND()138
5.5.6 SYSDATE139
5.5.7 TRUNC()139
5.6 使用时区140
5.6.1 与时区有关的函数140
5.6.2 数据库时区和会话时区141
5.6.3 获取时区的时差142
5.6.4 获取时区名142
5.6.5 将时间值从一个时区转换为另一个时区143
5.7 使用时间戳143
5.7.1 使用时间戳类型143
5.7.2 与时间戳有关的函数147
5.8 使用时间间隔152
5.8.1 使用INTERVAL YEAR TO MONTH类型153
5.8.2 使用INTERVAL DAY TO SECOND类型155
5.8.3 与时间间隔有关的函数157
5.9 小结158
第6章 子查询159
6.1 子查询的类型159
6.2 编写单行子查询160
6.2.1 在WHERE子句中使用子查询160
6.2.2 使用其他单行操作符161
6.2.3 在HAVING子句中使用子查询161
6.2.4 在FROM子句中使用子查询(内联视图)162
6.2.5 可能碰到的错误163
6.3 编写多行子查询164
6.3.1 在多行子查询中使用操作符165
6.3.2 在多行子查询中使用ANY操作符165
6.3.3 在多行子查询中使用ALL操作符166
6.4 编写多列子查询166
6.5 编写关联子查询167
6.5.1 关联子查询的例子167
6.5.2 在关联子查询中使用EXISTS 和NOT EXISTS168
6.6 编写嵌套子查询170
6.7 编写包含子查询的UPDATE和DELETE语句172
6.7.1 编写包含子查询的UPDATE语句172
6.7.2 编写包含子查询的DELETE语句172
6.8 使用子查询因子化173
6.9 小结174
第7章 高级查询175
7.1 使用集合操作符176
7.1.1 示例表176
7.1.2 使用UNIONALL操作符177
7.1.3 使用UNION操作符178
7.1.4 使用INTERSECT操作符179
7.1.5 使用MINUS操作符179
7.1.6 组合使用集合操作符180
7.2 使用TRANSLATE()函数182
7.3 使用DECODE()函数183
7.4 使用CASE表达式185
7.4.1 使用简单CASE表达式185
7.4.2 使用搜索CASE表达式186
7.5 层次化查询187
7.5.1 示例数据187
7.5.2 使用CONNECTBY和START WITH子句189
7.5.3 使用伪列LEVEL190
7.5.4 格式化层次化查询的结果190
7.5.5 从非根节点开始遍历191
7.5.6 在START WITH子句中使用子查询192
7.5.7 从下向上遍历树192
7.5.8 从层次化查询中删除节点和分支193
7.5.9 在层次化查询中加入其他条件194
7.5.10 使用递归子查询因子化查询分层数据194
7.6 使用ROLLUP和CUBE子句198
7.6.1 示例表199
7.6.2 使用ROLLUP子句200
7.6.3 使用CUBE子句203
7.6.4 使用GROUPING()函数204
7.6.5 使用GROUPING SETS子句207
7.6.6 使用GROUPING ID函数207
7.6.7 在GROUP BY子句中多次使用某个列209
7.6.8 使用GROUP ID()函数210
7.7 使用CROSS APPLY和OUTER APPLY211
7.7.1 CROSS APPLY212
7.7.2 OUTER APPLY212
7.8 使用LATERAL213
7.9 小结214
第8章 分析数据215
8.1 使用分析函数215
8.1.1 示例表216
8.1.2 使用评级函数217
8.1.3 使用反百分位函数223
8.1.4 使用窗口函数224
8.1.5 使用报表函数230
8.1.6 使用LAG()和LEAD函数233
8.1.7 使用FIRST和LAST函数234
8.1.8 使用线性回归函数234
8.1.9 使用假想评级与分布函数235
8.2 使用MODEL子句236
8.2.1 MODEL子句示例236
8.2.2 用位置标记和符号标记访问数据单元238
8.2.3 用BETWEEN和AND返回特定范围内的数据单元239
8.2.4 用ANY和IS ANY访问所有的数据单元239
8.2.5 用CURRENTV()函数获取某个维度的当前值239
8.2.6 用FOR循环访问数据单元240
8.2.7 处理空值和缺失值242
8.2.8 更新已有的单元244
8.3 使用PIVOT和UNPIVOT子句245
8.3.1 PIVOT子句的简单示例245
8.3.2 转换多个列246
8.3.3 在转换中使用多个聚合函数247
8.3.4 使用UNPIVOT子句248
8.4 执行Top-N查询249
8.4.1 使用 FETCH FIRST子句250
8.4.2 使用OFFSET子句250
8.4.3 使用PERCENT子句251
8.4.4 使用WITH TIES子句252
8.5 在数据中发现模式252
8.5.1 在all sales2表中发现V形数据模式253
8.5.2 在all sales3表中发现W型数据模式256
8.5.3 在all sales3表中发现V形数据模式257
8.6 小结258
第9章 修改表的内容259
9.1 使用INSERT语句添加行260
9.1.1 省略列的列表261
9.1.2 为列指定空值261
9.1.3 在列值中使用单引号和双引号261
9.1.4 从一个表向另一个表复制行262
9.2 使用UPDATE语句修改行262
9.3 使用RETURNING子句返回聚合函数的计算结果263
9.4 使用DELETE语句删除行264
9.5 数据库的完整性264
9.5.1 主键约束264
9.5.2 外键约束265
9.6 使用默认值266
9.7 使用MERGE合并行267
9.8 数据库事务269
9.8.1 事务的提交和回滚269
9.8.2 事务的开始与结束270
9.8.3 保存点271
9.8.4 事务的ACID特性272
9.8.5 并发事务273
9.8.6 事务锁274
9.8.7 事务隔离级别274
9.8.8 SERIALIZABLE事务隔离级别的一个例子275
9.9 查询闪回276
9.9.1 授权使用闪回276
9.9.2 时间查询闪回277
9.9.3 SCN查询闪回278
9.10 小结280
第10章 用户、特权和角色281
10.1 用户282
10.1.1 创建用户282
10.1.2 修改用户密码283
10.1.3 删除用户283
10.2 系统特权284
10.2.1 向用户授予系统特权284
10.2.2 检查授予用户的系统特权285
10.2.3 使用系统特权286
10.2.4 撤消用户的系统特权286
10.3 对象特权287
10.3.1 向用户授予对象特权287
10.3.2 检查已授予的对象特权288
10.3.3 检查已接受的对象特权289
10.3.4 使用对象特权291
10.3.5 创建同义词291
10.3.6 创建公共同义词292
10.3.7 撤消用户的对象特权293
10.4 角色293
10.4.1 创建角色293
10.4.2 为角色授权294
10.4.3 将角色授予用户294
10.4.4 检查授予用户的角色294
10.4.5 检查授予角色的系统特权296
10.4.6 检查授予角色的对象特权296
10.4.7 使用已授予角色的特权298
10.4.8 启用和禁用角色299
10.4.9 撤消角色300
10.4.1 0从角色中撤消特权300
10.4.1 1删除角色300
10.5 审计300
10.5.1 执行审计需要的特权300
10.5.2 审计示例301
10.5.3 审计跟踪视图302
10.6 小结303
第11章 创建表、序列、索引和视图305
11.1 表305
11.1.1 创建表306
11.1.2 获得有关表的信息307
11.1.3 获得表中列的信息308
11.1.4 修改表308
11.1.5 重命名表317
11.1.6 向表中添加注释317
11.1.7 截断表318
11.1.8 删除表318
11.1.9 使用BINARY_FLOAT和BINARY_DOUBLE数据类型319
11.1.10 使用DEFAULT ON NULL列320
11.1.11 在表中使用可见及不可见列321
11.2 序列323
11.2.1 创建序列324
11.2.2 获取有关序列的信息325
11.2.3 使用序列326
11.2.4 使用序列填充主键328
11.2.5 使用序列指定默认列值329
11.2.6 使用标识列329
11.2.7 修改序列330
11.2.8 删除序列330
11.3 索引331
11.3.1 创建B-树索引331
11.3.2 创建基于函数的索引332
11.3.3 获取有关索引的信息333
11.3.4 获取列索引的信息333
11.3.5 修改索引334
11.3.6 删除索引334
11.3.7 创建位图索引334
11.4 视图335
11.4.1 创建并使用视图336
11.4.2 修改视图343
11.4.3 删除视图343
11.4.4 在视图中使用可见列和不可见列343
11.5 闪回数据归档344
11.6 小结347
第12章 PL/SQL编程简介349
12.1 块结构350
12.2 变量和类型351
12.3 条件逻辑352
12.4 循环352
12.4.1 简单循环353
12.4.2 WHILE循环354
12.4.3 FOR循环354
12.5 游标355
12.5.1 步骤(1):声明用于保存列值的变量355
12.5.2 步骤(2):声明游标355
12.5.3 步骤(3):打开游标356
12.5.4 步骤(4):从游标中取得行356
12.5.5 步骤(5):关闭游标357
12.5.6 完整的示例:product_cursor.sql357
12.5.7 游标与FOR循环358
12.5.8 OPEN-FOR语句359
12.5.9 无约束游标361
12.6 异常362
12.6.1 ZERO DIVIDE异常364
12.6.2 DUP_VAL_ON_INDEX异常365
12.6.3 INVALID_NUMBER异常365
12.6.4 OTHERS异常365
12.7 过程366
12.7.1 创建过程366
12.7.2 调用过程368
12.7.3 获取有关过程的信息369
12.7.4 删除过程370
12.7.5 查看过程中的错误370
12.8 函数371
12.8.1 创建函数371
12.8.2 调用函数372
12.8.3 获取有关函数的信息373
12.8.4 删除函数373
12.9 包373
12.9.1 创建包的规范373
12.9.2 创建包体374
12.9.3 调用包中的函数和过程375
12.9.4 获取有关包中函数和过程的信息376
12.9.5 删除包376
12.10 触发器377
12.10.1 触发器启动的时机377
12.10.2 设置示例触发器377
12.10.3 创建触发器377
12.10.4 启动触发器379
12.10.5 获取有关触发器的信息380
12.10.6 禁用和启用触发器382
12.10.7 删除触发器382
12.11 其他PL/SQL特性382
12.11.1 SIMPLE_INTEGER类型382
12.11.2 在PL/SQL中使用序列383
12.11.3 PL/SQL本地机器代码生成384
12.11.4 WITH子句385
12.12 小结386
第13章 数据库对象387
13.1 对象简介387
13.2 创建对象类型388
13.3 使用DESCRIBE获取有关对象类型的信息390
13.4 在数据库表中使用对象类型391
13.4.1 列对象391
13.4.2 对象表394
13.4.3 对象标识符和对象引用397
13.4.4 比较对象值399
13.5 在PL/SQL中使用对象402
13.5.1 get_products()函数403
13.5.2 display_product()过程403
13.5.3 insert_product()过程404
13.5.4 update_product price()过程405
13.5.5 get_product()函数406
13.5.6 update_product()过程406
13.5.7 get_product_ref()函数407
13.5.8 delete product()过程408
13.5.9 product_lifecycle()过程408
13.5.1 0 product_lifecycle2()过程409
13.6 类型继承410
13.6.1 运行脚本以创建第2个对象模式411
13.6.2 继承属性411
13.7 用子类型对象代替超类型对象413
13.7.1 SQL例子413
13.7.2 PL/SQL示例414
13.7.3 NOT SUBSTITUTABLE对象415
13.8 其他有用的对象函数416
13.8.1 IS OF()函数416
13.8.2 TREAT()函数419
13.8.3 SYS_TYPEID()函数423
13.9 NOT INSTANTIABLE对象类型424
13.10 用户自定义的构造函数425
13.11 重载方法429
13.12 通用调用430
13.12.1 运行脚本以创建第3个对象模式431
13.12.2 继承属性431
13.13 小结432
第14章 集合435
14.1 集合简介435
14.2 创建集合类型436
14.2.1 创建变长数组类型436
14.2.2 创建嵌套表类型437
14.3 使用集合类型定义表列437
14.3.1 使用变长数组类型定义表列437
14.3.2 使用嵌套表类型定义表列438
14.4 获取集合信息438
14.4.1 获取变长数组信息438
14.4.2 获得嵌套表信息439
14.5 填充集合元素441
14.5.1 填充变长数组元素441
14.5.2 填充嵌套表元素441
14.6 检索集合元素442
14.6.1 检索变长数组元素442
14.6.2 检索嵌套表元素443
14.7 使用TABLE()函数将集合视为一系列行443
14.7.1 将TABLE()函数应用于变长数组444
14.7.2 将TABLE()函数应用于嵌套表445
14.8 更改集合元素445
14.8.1 更改变长数组元素445
14.8.2 更改嵌套表元素446
14.9 使用映射方法比较嵌套表的内容447
14.10 使用CAST()函数将集合从一种类型转换为另一种类型449
14.10.1 使用CAST()函数将变长数组转换为嵌套表449
14.10.2 使用CAST()函数将嵌套表转换为变长数组450
14.11 在PL/SQL中使用集合451
14.11.1 操作变长数组451
14.11.2 操作嵌套表453
14.11.3 PL/SQL集合方法455
14.12 创建和使用多级集合464
14.12.1 运行脚本创建第二个集合模式464
14.12.2 使用多级集合464
14.13 Oracle Database 10g对集合的增强467
14.13.1 运行脚本以创建第三个集合模式467
14.13.2 关联数组467
14.13.3 更改元素类型的大小468
14.13.4 增加变长数组中元素的数目469
14.13.5 在临时表中使用变长数组469
14.13.6 为嵌套表的存储表使用不同的表空间469
14.13.7 嵌套表对ANSI的支持470
14.14 小结478
第15章 大对象479
15.1 大对象(LOB)简介480
15.2 示例文件480
15.3 理解大对象类型480
15.4 创建包含大对象的表481
15.5 在SQL中使用大对象483
15.5.1 使用CLOB和BLOB对象483
15.5.2 使用BFILE对象485
15.6 在PL/SQL中使用大对象486
15.6.1 APPEND()方法489
15.6.2 CLOSE()方法489
15.6.3 COMPARE()方法489
15.6.4 COPY()方法491
15.6.5 CREATETEMPORARY()方法492
15.6.6 ERASE()方法492
15.6.7 FILECLOSE()方法493
15.6.8 FILECLOSEALL()方法493
15.6.9 FILEEXISTS()方法494
15.6.10 FILEGETNAME()方法494
15.6.11 FILEISOPEN()方法495
15.6.12 FILEOPEN()方法495
15.6.13 FREETEMPORARY()方法496
15.6.14 GETCHUNKSIZE()方法496
15.6.15 GETLENGTH()方法497
15.6.16 GET_STORAGE_LIMIT()方法497
15.6.17 INSTR()方法498
15.6.18 ISOPEN()方法499
15.6.19 ISTEMPORARY()方法499
15.6.20 LOADFROMFILE()方法500
15.6.21 LOADBLOBFROMFILE()方法501
15.6.22 LOADCLOBFROMFILE()方法502
15.6.23 OPEN()方法503
15.6.24 READ()方法503
15.6.25 SUBSTR()方法504
15.6.26 TRIM()方法505
15.6.27 WRITE()方法506
15.6.28 WRITEAPPEND()方法507
15.6.29 PL/SQL示例过程507
15.7 LONG和LONG RAW类型524
15.7.1 示例表524
15.7.2 向LONG和LONG RAW列添加数据525
15.7.3 将LONG和LONG RAW列转换为LOB525
15.8 Oracle Database 10g对大对象的增强526
15.8.1 CLOB和NCLOB对象之间的隐式转换527
15.8.2 在触发器中使用LOB时:new属性的用法528
15.9 Oracle Database 11g对大对象的增强528
15.9.1 加密LOB数据528
15.9.2 压缩LOB数据532
15.9.3 删除LOB重复数据533
15.10 Oracle Databese 12c对大对象的增强533
15.11 小结534
第16章 SQL优化535
16.1 SQL优化简介535
16.2 使用WHERE子句过滤行536
16.3 使用表连接而不是多个查询536
16.4 执行连接时使用完全限定的列引用537
16.5 使用CASE表达式而不是多个查询538
16.6 添加表索引539
16.6.1 何时创建B-树索引539
16.6.2 何时创建位图索引540
16.7 使用WHERE而不是HAVING540
16.8 使用UNION ALL而不是UNION541
16.9 使用EXISTS而不是IN542
16.10 使用EXISTS而不是DISTINCT543
16.11 使用GROUPING SETS而不是CUBE543
16.12 使用绑定变量543
16.12.1 不相同的SQL语句544
16.12.2 使用绑定变量定义相同的SQL语句544
16.12.3 列出和输出绑定变量545
16.12.4 使用绑定变量存储PL/SQL函数的返回值545
16.12.5 使用绑定变量存储来自REFCURSOR的返回值546
16.13 比较执行查询的成本546
16.13.1 检查执行计划547
16.13.2 比较执行计划552
16.14 为优化器传递提示553
16.15 其他优化工具554
16.15.1 Oracle Enterprise Manager555
16.15.2 Automatic Database Diagnostic Monitor555
16.16 小结556
第17章 XML和Oracle数据库557
17.1 XML简介557
17.2 从关系数据生成XML558
17.2.1 XMLELEMENT()函数558
17.2.2 XMLATTRIBUTES()函数561
17.2.3 XMLFOREST()函数562
17.2.4 XMLAGG()函数563
17.2.5 XMLCOLATTVAL()函数565
17.2.6 XMLCONCAT()函数566
17.2.7 XMLPARSE()函数566
17.2.8 XMLPI()函数567
17.2.9 XMLCOMMENT()函数567
17.2.10 XMLSEQUENCE()函数568
17.2.11 XMLSERIALIZE()函数569
17.2.12 PL/SQL示例:将XML数据写入文件569
17.2.13 XMLQUERY()函数571
17.3 将XML保存到数据库中575
17.3.1 示例XML文件575
17.3.2 创建示例XML模式576
17.3.3 从示例XML模式检索信息577
17.3.4 更新示例XML模式中的信息582
17.4 小结585
附录 Oracle数据类型587