Oracle数据库系统是Oracle公司推出的跨平台的具有灵活体系结构的数据库管理软件,Oracle可以在Linux、Windows、UNIX等系统上运行,并且具有一致的操作方式。目前市面上很多优秀的Oracle书籍都是以某个特定的技术点为基点,或侧重于开发,或侧重于管理,造成了Oracle学习人员不能全局领略Oracle的组成。《从零开始学Oracle》作者丁勇以初学者为对象,使用最简单易懂的语言,力求让读者轻松学习Oracle。本书各个章节中列举了大量具体实例,以强化读者对于Oracle知识点的理解。
为了方便读者学习,本书首先介绍了数据库的基本知识,并为读者讲解了安装Oracle数据库系统的过程,通过层层深入的方式带领读者进入Oracle的世界。本书层层深入,从Oracle系统的基本操作开始,详细讲解了数据库对象的创建与管理,并详细介绍了PL/SQL的编程知识,通过理论与实例结合的方式让读者尽快对Oracle的管理与开发有一个清楚的认识。
《从零开始学Oracle》用简单易懂的实例和大量的图示,深入浅出地介绍了Oracle数据库的操作与编程方面的知识。作者丁勇以实际工作为切入点,详细介绍了Oracle数据库的基础知识及PL/SQL程序设计实战的知识。
本书共分为17章,主要介绍了数据库的入门知识、安装Oracle以及使用Oracle的客户端工具管理Oracle,Oracle数据库表、索引、约束、视图、序列和同义词的创建与使用方法,如何使用DML语句和SELECT语句查询与管理数据库对象,PL/SQL编程方面的知识,以及用户与数据库表空间的管理。
《从零开始学Oracle》技术点丰富,讲解手法细腻,不仅适合Oracle初学者,也适合任何对数据库有兴趣的相关人员。
第1篇 Oracle基础篇
第1章 数据库入门 1
1.1 数据库基础 1
1.1.1 什么是关系型数据库 1
1.1.2 实体关系模型 3
1.1.3 数据库管理系统 3
1.1.4 使用SQL语言管理数据库 5
1.2 理解数据库范式 7
1.2.1 什么是数据库范式 7
1.2.2第一范式1NF 8
1.2.3第二范式2NF 8
1.2.4第三范式3NF 9
1.2.5 使用数据库建模工具 9
1.3 认识Oracle数据库系统 14
1.3.1 Oracle数据库特性 14
1.3.2 Oracle数据库术语 15
1.3.3 Oracle数据库系统的组成 17
1.3.4 与SQL Server数据库的比较 18
1.4 安装Oracle数据库 19
1.4.1 获取Oracle数据库软件 19
1.4.2 使用Oracle技术与文档库 20
1.4.3 安装Oracle数据库 21
1.4.4 卸载Oracle数据库 25
1.5 小结 26
1.6 习题 26
第2章 使用Oracle数据库 28
2.1 管理Oracle系统 28
2.1.1 启动和停止监听程序 28
2.1.2 数据库的启动和关闭 29
2.1.3 配置网络监听程序 33
2.1.4 使用网络配置助手工具 34
2.1.5 Net Manager网络管理员 36
2.2 创建Oracle数据库 37
2.2.1 使用DBCA创建数据库 37
2.2.2 数据库安装参数 41
2.2.3 删除现有数据库 43
2.2.4 手动安装数据库 44
2.3 连接Oracle数据库 47
2.3.1 安装Oracle客户端 47
2.3.2 客户端网络配置工具 49
2.3.3 使用Oracle企业管理器 52
2.3.4 使用SQL*Plus 53
2.3.5 使用Oracle SQL Developer 56
2.3.6 使用PL/SQL Developer 58
2.3.7 使用Toad 59
2.4 小结 62
2.5 习题 62
第3章 SQL与SQL*Plus 63
3.1 SQL语言基础 63
3.1.1 SQL、SQL*Plus与Oracle的关系 64
3.1.2 SQL语言的特点 64
3.1.3 SQL语言的分类 65
3.1.4 SQL语言的编写规则 66
3.2 认识SQL*Plus 68
3.2.1 SQL*Plus的功能 68
3.2.2 启动SQL *Plus 69
3.2.3 重新连接数据库 70
3.2.4 SQL*Plus运行环境设置 70
3.2.5 使用命令帮助 71
3.3 使用SQL*Plus管理数据库对象 72
3.3.1 执行SQL语句 72
3.3.2 了解SQL缓冲区 73
3.3.3 运行脚本文件 75
3.3.4 显示表结构 75
3.4 格式化查询结果 76
3.4.1 格式化列 76
3.4.2 清除列格式 79
3.4.3 限制重复行 79
3.4.4 使用汇总行 80
3.5 小结 82
3.6 习题 82
第2篇 管理Oracle对象篇
第4章 操纵数据表 83
4.1 表基础 83
4.1.1 表和实体 83
4.1.2 表的分类 84
4.1.3 表和列命名规则 85
4.1.4 内置列数据类型 86
4.2 创建表 87
4.2.1 理解表空间 88
4.2.2 创建标准表 88
4.2.3 全局临时表 91
4.2.4 使用Dual表 93
4.2.5 查看表信息 94
4.3 修改表 96
4.3.1 添加表列 96
4.3.2 修改表列 97
4.3.3 删除表列 98
4.3.4 重命名表列 98
4.3.5 删除数据表 99
4.4 小结 100
4.5 习题 100
第5章 索引和约束 101
5.1 创建索引 101
5.1.1 索引的作用 101
5.1.2 索引的原理 103
5.1.3 索引的分类 104
5.1.4 创建B树索引 105
5.1.5 创建位图索引 107
5.1.6 创建函数索引 107
5.1.7 修改索引 108
5.1.8 删除索引 110
5.1.9 查看索引信息 111
5.1.10 索引创建策略 112
5.2 创建约束 112
5.2.1 约束的分类 112
5.2.2 主键约束 113
5.2.3 外键约束 115
5.2.4 检查约束 117
5.2.5 唯一性约束 119
5.3 管理约束 120
5.3.1 修改约束 120
5.3.2 禁用和启用约束 121
5.3.3 查询约束信息 123
5.4 小结 125
5.5 习题 125
第6章 视图 126
6.1 视图基础 126
6.1.1 什么是视图 126
6.1.2 视图的分类 127
6.1.3 视图创建语法 128
6.1.4 创建简单视图 128
6.1.5 创建复杂视图 130
6.1.6 视图的修改 131
6.1.7 视图的删除 132
6.2 内联视图 133
6.2.1 什么是内联视图 133
6.2.2 内联视图的执行顺序 133
6.2.3 内联视图与DML语句 134
6.3 物化视图 135
6.3.1 什么是物化视图 135
6.3.2 创建物化视图 137
6.3.3 删除物化视图 138
6.4 小结 138
6.5 习题 139
第7章 序列和同义词 140
7.1 使用序列 140
7.1.1 序列的作用 140
7.1.2 创建自增序列 141
7.1.3 NEXTVAL和CURRVAL伪列 143
7.1.4 使用序列编号 144
7.1.5 修改序列 145
7.1.6 删除序列 146
7.2 使用同义词 146
7.2.1 同义词的作用 146
7.2.2 创建和使用同义词 147
7.3 小结 148
7.4 习题 148
第3篇 使用SQL语言篇
第8章 SQL查询 149
8.1 单表查询 149
8.1.1 SELECT语法 149
8.1.2 查询指定列数据 150
8.1.3 移除重复列值 151
8.1.4 表达式查询 152
8.1.5 指定查询条件 152
8.1.6 BETWEEN、IN和LIKE范围查询 154
8.1.7 处理NULL列值 157
8.1.8 AND、OR、NOT逻辑运算符 157
8.1.9 ORDER BY排序 159
8.1.10 ROWNUM伪列 161
8.1.11 ROWID伪列 163
8.1.12 使用CASE表达式 164
8.2 分组查询 167
8.2.1 分组查询简介 167
8.2.2 使用分组函数 167
8.2.3 使用GROUP BY子句分组 170
8.2.4 使用HAVING子句分组过滤 172
8.3 多表查询 173
8.3.1 多表查询分类 173
8.3.2 内连接 175
8.3.3 外连接 177
8.3.4 自引用连接 180
8.3.5 交叉连接 180
8.3.6 自然连接 181
8.4 小结 181
8.5 习题 182
第9章 操纵数据表 183
9.1 插入数据 183
9.1.1 理解DML语言 183
9.1.2 使用INSERT语句 184
9.1.3 DEFAULT和NULL值 185
9.1.4 使用子查询插入多行数据 187
9.1.5 插入多表数据 188
9.2 更新数据 190
9.2.1 使用UPDATE语句 190
9.2.2 使用RETURNING子句 191
9.2.3 使用子查询更新多行记录 192
9.2.4 使用MERGE合并数据表 193
9.3 删除数据 195
9.3.1 删除单行记录 195
9.3.2 删除多行记录 196
9.3.3 使用TRUNCATE清空表数据 197
9.4 小结 198
9.5 习题 198
第10章 Oracle内置函数 200
10.1 函数基础 200
10.1.1 函数简介 200
10.1.2 函数的分类 201
10.2 字符型函数 202
10.2.1 字符型函数列表 202
10.2.2 大小写转换函数 203
10.2.3 字符串处理函数 203
10.2.4 字符串替代函数 204
10.3 数字型函数 205
10.3.1 数字型函数列表 205
10.3.2 数字型函数示例 206
10.4 日期时间函数 206
10.4.1 日期时间函数列表 206
10.4.2 日期时间函数示例 208
10.5 类型转换函数 208
10.5.1 类型转换函数列表 209
10.5.2 TO_CHAR将日期型转换为字符串 210
10.5.3 TO_CHAR将数字型转换为字符串 211
10.5.4 TO_DATE将字符串转换为日期 213
10.5.5 TO_NUMBER将字符串转换为数字 213
10.6 通用函数列表 213
10.7 小结 214
10.8 习题 214
第4篇 PL/SQL编程篇
第11章 PL/SQL入门 215
11.1 PL/SQL基础 215
11.1.1 结构化程序设计 215
11.1.2 与SQL语言整合 217
11.1.3 提高程序性能 219
11.1.4 模块化应用程序开发 220
11.1.5 面向对象的开发 221
11.2 PL/SQL语言概览 223
11.2.1 PL/SQL块 223
11.2.2 变量和数据类型 225
11.2.3 程序控制语句 225
11.2.4 存储过程、函数与包 229
11.2.5 触发器简介 231
11.2.6 结构化异常处理 233
11.2.7 集合与记录 234
11.2.8 游标基础 235
11.3 小结 237
11.4 习题 237
第12章 存储子程序和包 238
12.1 定义子程序 238
12.1.1 什么是子程序 238
12.1.2 子程序的调试 240
12.1.3 创建过程 243
12.1.4 创建函数 244
12.1.5 使用RETURN语句 246
12.1.6 查看子程序 247
12.1.7 删除子程序 249
12.2 子程序参数 250
12.2.1 形式参数与实际参数 250
12.2.2 IN、OUT和IN OUT模式 251
12.2.3 参数调用方式 253
12.3 定义PL/SQL包 254
12.3.1 什么是包(Package) 254
12.3.2 定义包规范 255
12.3.3 定义包体 257
12.3.4 调用包组件 258
12.4 小结 259
12.5 习题 260
第13章 记录与集合 261
13.1 使用PL/SQL记录 261
13.1.1 什么是记录 261
13.1.2 定义记录类型 263
13.1.3 记录类型赋值 264
13.1.4 在DML中使用记录 266
13.2 使用集合类型 267
13.2.1 集合的分类 268
13.2.2 定义索引表 268
13.2.3 操纵索引表 270
13.2.4 定义嵌套表 271
13.2.5 操纵嵌套表 272
13.2.6 数据库中的嵌套表 273
13.2.7 定义变长数组 275
13.2.8 操纵变长数组 276
13.2.9 数据库中的变长数组 277
13.3 小结 278
13.4 习题 278
第14章 触发器和游标 280
14.1 理解触发器 280
14.1.1 触发器的作用 280
14.1.2 触发器的分类 282
14.2 DML触发器 283
14.2.1 触发器的执行顺序 283
14.2.2 定义DML触发器 284
14.2.3 理解:OLD和:NEW谓词记录 287
14.2.4 使用REFERENCING子句 288
14.2.5 使用WHEN子句 289
14.2.6 理解自治事务 290
14.3 替代触发器 291
14.3.1 什么是替代触发器 292
14.3.2 定义替代触发器 292
14.3.3 UPDATE和DELETE替代触发器 294
14.4 系统事件触发器 295
14.4.1 定义系统事件触发器 296
14.4.2 使用DDL触发器 296
14.4.3 使用数据库触发器 298
14.4.4 SERVERERROR触发器 301
14.5 游标 302
14.5.1 什么是游标 302
14.5.2 定义游标 303
14.5.3 打开游标 305
14.5.4 提取游标数据 305
14.5.5 关闭游标 307
14.6 小结 308
14.7 习题 308
第5篇 Oracle维护篇
第15章 数据库安全性管理 309
15.1 用户管理 309
15.1.1 用户与方案简介 309
15.1.2 创建用户 310
15.1.3 修改用户 312
15.1.4 删除用户 313
15.1.5 查询用户 313
15.1.6 在Oracle SQL Developer中管理用户 314
15.2 权限管理 315
15.2.1 理解权限 315
15.2.2 分配权限 317
15.2.3 撤销权限 319
15.2.4 查看权限 320
15.3 角色管理 321
15.3.1 角色简介 321
15.3.2 创建角色 323
15.3.3 分配权限 324
15.3.4 管理角色 324
15.3.5 查看角色 326
15.4 小结 327
15.5 习题 327
第16章 数据库空间管理 329
16.1 理解表空间 329
16.1.1 表空间概述 329
16.1.2 表空间分类 330
16.1.3 表空间的创建 331
16.1.4 创建普通表空间 332
16.1.5 创建临时表空间 333
16.1.6 创建大文件表空间 333
16.1.7 创建撤销表空间 333
16.2 管理表空间 334
16.2.1 调整表空间大小 334
16.2.2 调整脱机和联机状态 334
16.2.3 调整只读和只写状态 335
16.2.4 更改表空间名称 335
16.2.5 删除表空间 336
16.2.6 查询表空间信息 336
16.3 小结 338
16.4 习题 338
第17章 备份和恢复数据库 339
17.1 理解备份与恢复 339
17.1.1 什么是备份与恢复 339
17.1.2 备份与恢复的方法 340
17.2 脱机备份与恢复 340
17.2.1 理解脱机状态 340
17.2.2 脱机备份 341
17.2.3 脱机恢复 342
17.3 逻辑备份与恢复 343
17.3.1 理解数据泵 343
17.3.2 使用expdp导出数据 344
17.3.3 使用impdp导入数据 346
17.4 联机备份与恢复 348
17.4.1 设置归档日志模式 348
17.4.2 创建恢复表空间 349
17.4.3 创建RMAN用户 349
17.4.4 创建恢复目录 349
17.4.5 注册目标数据库 350
17.4.6 使用RMAN进行备份 350
17.4.7 使用RMAN进行恢复 351
17.5 小结 352
17.6 习题 352