第1篇Oracle基础 2
第1章 认识关系型数据库 2
1.1理解数据库 2
1.1.1什么是关系型数据库 2
1.1.2实体关系模型 3
1.1.3关系型数据库管理系统RDBMS 5
1.1.4使用SQL语言管理数据库 6
1.2认识数据库范式 7
1.2.1什么是数据库范式 7
1.2.2第一范式1NF 8
1.2.3第二范式2NF 9
1.2.4第三范式3NF 10
1.3认识Oracle数据库系统 10
1.3.1 Oracle数据库特性 10
1.3.2 Oracle数据库管理员 12
1.3.3数据库管理员任务列表 13
1.3.4 Oracle数据库系统的组成 15
1.3.5与SQL Server数据库的比较 16
1.4安装Oracle数据库 18
1.4.1获取Oracle数据库软件 18
1.4.2使用Oracle技术与文档库 19
1.4.3安装Oracle数据库系统 20
1.4.4卸载Oracle数据库 29
1.5小结 31
第2章 创建和连接Oracle数据库 33
2.1创建Oracle数据库 33
2.1.1使用DBCA创建数据库 33
2.1.2使用静默方式创建数据库 41
2.1.3删除现有数据库 43
2.1.4手动安装数据库 45
2.2启动和停止Oracle数据库服务 50
2.2.1启动和停止监听程序 51
2.2.2启动数据库 54
2.2.3限制数据库的访问 56
2.2.4关闭数据库 57
2.3 Oracle客户端工具 59
2.3.1安装Oracle客户端 59
2.3.2客户端网络配置工具 62
2.3.3使用Oracle企业管理器 65
2.3.4使用SQLPlus 67
2.3.5使用Oracle SQL Developer 69
2.3.6使用PL/SQL Developer 71
2.3.7使用Toad 73
2.4小结 76
第3章SQL语言与SQLPlus 77
3.1 SQL语言基础 77
3.1.1 SQL、 SQLPlus与Oracle的关系 77
3.1.2 SQL 语言的特点 78
3.1.3 SQL语言的分类 80
3.1.4 SQL语言的编写规则 81
3.2认识SQLPlus 83
3.2.1 SQLPlus的功能 83
3.2.2启动SQL*Plus 84
3.2.3重新连接数据库 86
3.2.4 SQLPlus运行环境设置 86
3.2.5使用命令帮助 88
3.3操作数据库 90
3.3.1执行SQL与PL/SQL代码 90
3.3.2了解SQLPlus缓冲区 92
3.3.3运行脚本文件 94
3.3.4显示表结构 95
3.3.5使用替换变量 97
3.3.6运行操作系统命令 98
3.3.7断开和退出SQLPlus 99
3.4格式化查询结果 100
3.4.1格式化列 100
3.4.2清除列格式 103
3.4.3限制重复行 103
3.4.4使用汇总行 105
3.5小结 106
第4章 认识Oracle体系结构(教学视频:20分钟) 107
4.1 Oracle实例内存管理 107
4.1.1 Oracle内存结构 107
4.1.2系统全局区SGA 108
4.1.3程序全局区PGA 112
4.1.4数据库缓冲区高速缓存 114
4.1.5共享池 117
4.1.6重做日志缓冲区 118
4.1.7其他内存结构 119
4.2 Oracle实例进程结构 120
4.2.1用户进程与服务器进程 120
4.2.2 PMON与SMON进程 123
4.2.3 DBWn与LGWR进程 125
4.2.4 CKPT与ARCn进程 126
4.3小结 128
第2篇 管理方案对象 130
第5章 创建和管理表 130
5.1表和表列 130
5.1.1表和实体 130
5.1.2表的分类 131
5.1.3表和列命名规则 132
5.1.4列数据类型 133
5.2创建表 136
5.2.1使用设计器建表 136
5.2.2创建标准表 139
5.2.3全局临时表 141
5.2.4索引组织表 144
5.2.5使用外部表 145
5.2.6使用DUAL表 149
5.2.7数据字典中的表信息 151
5.3修改表 152
5.3.1添加表列 152
5.3.2使用虚拟列 154
5.3.3修改表列 156
5.3.4删除表列 158
5.3.5重命名表列 160
5.3.6重命名表 160
5.3.7删除数据表 161
5.4小结 162
第6章 索引和约束 163
6.1创建索引 163
6.1.1索引的作用 163
6.1.2索引的原理 166
6.1.3索引的分类 168
6.1.4创建B树索引 170
6.1.5创建位图索引 173
6.1.6创建函数索引 175
6.1.7修改索引 176
6.1.8重命名索引 177
6.1.9重建和合并索引 178
6.1.10不可见和不可用的索引 180
6.1.11索引的监控 181
6.1.12删除索引 182
6.1.13查看索引信息 183
6.1.14索引创建策略 185
6.1.15创建和管理索引的一般性指南 185
6.2创建约束 186
6.2.1理解约束 186
6.2.2主键约束 188
6.2.3外键约束 190
6.2.4级联关系 192
6.2.5外键与索引 194
6.2.6检查约束 195
6.2.7唯一性约束 198
6.3管理约束 199
6.3.1修改约束 199
6.3.2添加约束 200
6.3.3重命名约束 201
6.3.4删除约束 202
6.3.5约束的状态 203
6.3.6查询约束信息 206
6.4小结 207
第7章 视图(教学视频:28分钟) 208
7.1视图基础 208
7.1.1什么是视图 208
7.1.2视图的分类 209
7.1.3视图创建语法 211
7.1.4创建简单视图 212
7.1.5创建复杂视图 215
7.1.6视图的修改 217
7.1.7视图的删除 218
7.2内联视图 219
7.2.1什么是内联视图 219
7.2.2内联视图执行顺序 221
7.2.3内联视图与DML语句 223
7.3物化视图 224
7.3.1什么是物化视图 225
7.3.2创建物化视图 228
7.3.3修改物化视图 231
7.3.4删除物化视图 233
7.4小结 233
第8章 序列和同义词 234
8.1使用序列 234
8.1.1序列的作用 234
8.1.2创建自增序列 236
8.1.3 NEXTVAL和CURRVAL伪列 238
8.1.4修改序列 241
8.1.5删除序列 242
8.1.6查看序列 242
8.2使用同义词 244
8.2.1同义词的作用 244
8.2.2创建和使用同义词 245
8.2.3删除同义词 246
8.2.4查看同义词 247
8.3小结 248
第3篇 使用SQL语言 250
第9章 SQL查询 250
9.1基本查询 250
9.1.1 SELECT语法 250
9.1.2查询指定列数据 251
9.1.3用DISTINCT去除重复值 253
9.1.4表达式查询 254
9.1.5使用WHERE限制返回的行 257
9.1.6 BETWEEN、IN和LIKE范围查询 259
9.1.7处理NULL列值 263
9.1.8 AND、 OR、 NOT逻辑运算符 264
9.1.9使用ORDER BY排序 267
9.1.10 ROWNUM伪列 269
9.1.11 ROWID伪列 271
9.1.12使用CASE表达式 274
9.2多表连接查询 276
9.2.1理解多表查询 276
9.2.2内连接 278
9.2.3外连接 281
9.2.4自引用连接 284
9.2.5交叉连接 285
9.2.6自然连接 286
9.3集合和子查询 288
9.3.1理解集合运算 288
9.3.2 UNION联合运算与UNION ALL全联合运算 289
9.3.3 INTERSECT交集运算 291
9.3.4 MINUS差集运算 292
9.3.5理解子查询 293
9.3.6非相关子查询 294
9.3.7单行单列子查询 296
9.3.8多行单列子查询 297
9.3.9相关子查询 299
9.4分组查询 301
9.4.1理解分组查询 301
9.4.2分组函数 302
9.4.3使用GROUP BY子句分组 305
9.4.4使用HAVING子句限制结果集 308
9.4.5使用ROLLUP和CUBE 310
9.4.6使用GROUPING SETS子句 312
9.5小结 313
第10章 操作数据表 314
10.1插入数据 314
10.1.1理解DML语言 314
10.1.2使用INSERT语句 316
10.1.3插入默认值和空值 317
10.1.4使用子查询插入多行数据 319
10.1.5插入多表数据 320
10.2更新数据 324
10.2.1使用UPDATE语句 324
10.2.2使用子查询更新多行记录 325
10.2.3使用RETURNING子句 329
10.3删除数据 331
10.3.1使用DELETE语句 331
10.3.2使用子查询删除记录 333
10.3.3使用TRUNCATE清空表数据 334
10.3.4使用MERGE合并数据表 336
10.4小结 338
第11章Oracle内置函数 339
11.1函数基础 339
11.1.1函数的作用 339
11.1.2函数的分类 341
11.2字符型函数 342
11.2.1字符型函数列表 342
11.2.2 ASCII和CHR函数 343
11.2.3大小写转换函数 344
11.2.4字符串处理函数 346
11.2.5字符串替代函数 352
11.3数字型函数 353
11.3.1数字型函数列表 353
11.3.2 ABS和MOD函数 355
11.3.3 CEIL和FLOOR函数 355
11.3.4 ROUND和TRUNC函数 356
11.4日期时间函数 357
11.4.1日期时间函数列表 357
11.4.2日期时间函数使用示例 358
11.4.3使用EXTRACT截取日期信息 361
11.5类型转换函数 362
11.5.1类型转换函数列表 362
11.5.2 TO CHAR字符串转换函数 364
11.5.3 TO DATE日期转换函数 368
11.5.4 TO NUMBER数字转换函数 369
11.6通用函数 370
11.6.1通用函数列表 370
11.6.2 NVL和NVL2函数 371
11.6.3 NULLIF和COALESCE函数 373
11.6.4 DECODE函数 374
11.6.5 SYS GUID函数 376
11.7小结 377
第4篇PL/SQL编程 380
第12章 使用PL/SQL创建Oracle程序 380
12.1 PL/SQL基础 380
12.1.1过程化程序设计 380
12.1.2与SQL语言整合 381
12.1.3提高程序性能 383
12.1.4模块化应用程序开发 384
12.1.5面向对象的开发 386
12.2 PL/SQL语言概览 387
12.2.1 PL/SQL块 387
12.2.2嵌套块 390
12.2.3变量和数据类型 393
12.2.4程序控制语句 396
12.2.5条件判断语句 397
12.2.6循环控制语句 402
12.2.7顺序控制语句 407
12.2.8存储过程、函数与包 409
12.2.9触发器简介 412
12.2.10结构化异常处理 414
12.2.11集合与记录 415
12.2.12游标基础 418
12.3小结 420
第13章 子程序和包 421
13.1定义子程序 421
13.1.1什么是子程序 421
13.1.2子程序的调试 423
13.1.3创建过程 425
13.1.4创建函数 429
13.1.5使用RETURN语句 430
13.1.6管理子程序 431
13.1.7在SQL语句中使用函数 434
13.2子程序参数 436
13.2.1形式参数与实际参数 437
13.2.2 IN、 OUT和IN OUT模式 438
13.2.3参数调用方式 441
13.2.4形式参数的约束 442
13.2.5使用NOCOPY编译提示 444
13.2.6参数默认值 446
13.3定义PL/SQL包 447
13.3.1什么是包(Package) 448
13.3.2定义包规范 450
13.3.3定义包体 453
13.3.4子程序重载 455
13.3.5调用包组件 458
13.3.6重新编译包 462
13.3.7查看包的源代码 463
13.4小结 464
第14章 记录与集合 466
14.1使用PL/SQL记录 466
14.1.1什么是记录 466
14.1.2定义记录类型 467
14.1.3记录类型赋值 471
14.1.4使用记录 478
14.2使用集合类型 482
14.2.1集合的分类 482
14.2.2定义关联数组 483
14.2.3操作关联数组 485
14.2.4定义嵌套表 487
14.2.5操作嵌套表 489
14.2.6数据库中的嵌套表 492
14.2.7定义变长数组 495
14.2.8操作变长数组 496
14.2.9数据库中的变长数组 498
14.3小结 500
第15章 触发器和游标 501
15.1理解触发器 501
15.1.1触发器的作用 501
15.1.2定义触发器 503
15.1.3触发器的分类 505
15.2 DML触发器 506
15.2.1触发器的执行顺序 506
15.2.2定义DML触发器 508
15.2.3使用条件谓词 511
15.2.4使用OLD和NEW伪记录 512
15.2.5使用REFERENCING子句 514
15.2.6使用WHEN子句 515
15.2.7触发器的异常处理 516
15.2.8理解自治事务 518
15.3 INSTEAD OF替代触发器 520
15.3.1什么是替代触发器 520
15.3.2定义替代触发器 521
15.3.3 UPDATE和DELETE替代触发器 524
15.4系统事件触发器 526
15.4.1定义系统触发器 526
15.4.2使用DDL触发器 527
15.4.3使用数据库触发器 530
15.4.4 SERVERERROR触发器 533
15.5游标 534
15.5.1什么是游标 535
15.5.2定义游标 536
15.5.3打开游标 538
15.5.4提取游标数据 539
15.5.5关闭游标 542
15.6小结 542
第16章 异常处理机制 543
16.1理解异常处理 543
16.1.1异常处理简介 543
16.1.2异常处理语法 545
16.1.3预定义异常 547
16.2自定义异常 550
16.2.1声明异常 550
16.2.2异常的作用域范围 551
16.2.3使用EXCEPTION INIT编译指令 552
16.2.4使用RAISE语句 553
16.2.5使用RAISE APPLICATION ERROR 554
16.3处理异常 556
16.3.1使用WHEN子句 556
16.3.2使用OTHERS异常处理器 557
16.3.3使用SQLCODE和SQLERRM 559
16.4小结 560
第17章 动态SQL语句 561
17.1理解动态SQL语句 561
17.1.1动态SQL基础 561
17.1.2动态SQL使用时机 563
17.1.3本地动态SQL 564
17.2使用 EXECUTE IMMEDIATE 566
17.2.1 EXECUTE IMMEDIATE语法 566
17.2.2执行SQL语句和PL/SQL语句块 566
17.2.3使用绑定变量 568
17.2.4使用RETURNING INTO子句 571
17.2.5使用INTO子句 572
17.2.6指定参数模式 573
17.3多行查询语句 574
17.3.1使用OPEN FOR语句 575
17.3.2使用FETCH语句 576
17.3.3关闭游标变量 577
17.4使用动态批量绑定 578
17.4.1使用EXECUTE IMMEDIATE批量绑定 579
17.4.2使用批量FETCH语句 581
17.4.3使用批量FORALL语句 582
17.5动态SQL的性能优化技巧 584
17.5.1用绑定变量改善性能 584
17.5.2重复的绑定占位符 585
17.5.3传递NULL参数 586
17.5.4动态SQL异常处理 586
17.6小结 587
第18章 事务和锁 588
18.1使用Oracle事务 588
18.1.1事务的特性 588
18.1.2使用COMMIT提交事务 590
18.1.3使用ROLLBACK回滚事务 591
18.1.4使用SAVEPOINT保存点 592
18.1.5事务的隔离级别 593
18.1.6使用SET TRANSACTION设置事务属性 595
18.2使用Oracle锁 597
18.2.1什么是锁 597
18.2.2使用锁 599
18.2.3 DML锁 601
18.2.4 DDL锁 602
18.2.5死锁 603
18.2.6使用LOCK TABLE语句 604
18.3小结 606
第5篇Oracle维护 608
第19章 数据库安全性管理 608
19.1用户管理 608
19.1.1用户与方案简介 608
19.1.2创建用户 610
19.1.3修改用户 614
19.1.4删除用户 616
19.1.5用户概要文件 617
19.1.6查询用户信息 620
19.2权限管理 621
19.2.1理解权限 621
19.2.2分配权限 624
19.2.3撤销权限 628
19.2.4查看权限 631
19.3角色管理 633
19.3.1角色简介 633
19.3.2创建角色 636
19.3.3分配权限 637
19.3.4管理角色 638
19.3.5查看角色 642
19.4小结 643
第20章 数据库空间管理 644
20.1理解表空间 644
20.1.1表空间概述 644
20.1.2表空间分类 646
20.1.3表空间的创建 647
20.1.4创建普通表空间 649
20.1.5创建大文件表空间 652
20.1.6创建临时表空间 653
20.1.7创建撤销表空间 654
20.2管理表空间 655
20.2.1调整表空间大小 655
20.2.2调整脱机和联机状态 657
20.2.3调整只读和只写状态 658
20.2.4更改表空间名称 660
20.2.5删除表空间 660
20.2.6查询表空间信息 661
20.3小结 665
第21章 数据库文件管理 666
21.1管理控制文件 666
21.1.1控制文件的重要性 666
21.1.2创建控制文件 667
21.1.3多路复用控制文件 672
21.1.4备份/恢复控制文件 674
21.1.5删除控制文件 676
21.1.6查看控制文件信息 677
21.2管理数据文件 678
21.2.1理解数据文件 679
21.2.2创建数据文件 681
21.2.3改变数据文件的大小 682
21.2.4改变数据文件的可用性 683
21.2.5改变数据文件的位置和名称 686
21.2.6查询数据文件信息 688
21.3管理重做日志文件 691
21.3.1重做记录 691
21.3.2重做日志文件 692
21.3.3重做日志组 693
21.3.4日志切换和日志序列号 694
21.3.5归档重做日志文件 695
21.3.6多路复用重做日志文件 697
21.3.7创建重做日志组和成员 698
21.3.8删除重做日志组和成员 700
21.3.9更改组成员的位置或名称 703
21.3.10清除重做日志文件 704
21.3.11查看重做日志文件信息 705
21.4小结 706
第22章 备份和恢复数据库(教学视频:49分钟) 708
22.1理解备份与恢复 708
22.1.1什么是备份与恢复 708
22.1.2备份与恢复的方法 709
22.2使用RMAN(恢复管理器) 711
22.2.1设置归档日志模式 712
22.2.2认识RMAN 714
22.2.3连接到RMAN 716
22.2.4 RMAN的基本操作 717
22.2.5完整数据库备份 719
22.2.6备份表空间和数据库文件 723
22.2.7理解RMAN命令 727
22.2.8创建增量备份 728
22.2.9恢复数据库 730
22.2.10恢复表空间和数据库文件 732
22.2.11使用恢复目录 733
22.3小结 735
第6篇PL/SQL案例实战 738
第23章 基于PL/SQL物料报表程序 738
23.1系统设计 738
23.1.1物料清单BOM简介 738
23.1.2需求分析 739
23.1.3系统流程 740
23.1.4数据表ER关系图 741
23.1.5 Oracle开发环境的搭建 743
23.2系统编码实现 744
23.2.1创建包规范 745
23.2.2获取物料成本单价 746
23.2.3层次化展开物料清单 748
23.2.4编制BOM成本报表 751
23.2.5定义调用主程序 755
23.3小结 757
第24章 PL/SQL采购订单分析程序 758
24.1系统设计 758
24.1.1采购订单分析简介 758
24.1.2需求分析 759
24.1.3系统流程 759
24.1.4数据表E-R流程 761
24.1.5创建Oracle数据表 762
24.2系统编码实现 764
24.2.1创建包规范 764
24.2.2获取采购订单和订单行数据 765
24.2.3采购分析程序实现 771
24.2.4设置订单行的周范围信息 774
24.2.5定义调用主程序 777
24.3小结 778