第1章 数据库概念 1
1.1 什么是数据库 1
1.1.1 数据库的发展史 1
1.1.2 数据模型 2
1.1.3 数据库系统的体系结构 3
1.1.4 数据库系统的组成 3
1.2 关系型数据库的基本理论 4
1.2.1 关系型数据库概述 4
1.2.2 关系型数据库的E-R模型 5
1.2.3 关系型数据库的设计范式 7
知识点提炼 9
习题 9
第2章 Oracle 11g体系结构 10
2.1 Oracle 11g体系结构概述 10
2.2 逻辑存储结构 10
2.2.1 数据块 11
2.2.2 数据区 12
2.2.3 段 12
2.2.4 表空间 13
2.3 物理存储结构 14
2.3.1 数据文件 15
2.3.2 控制文件 16
2.3.3 日志文件 17
2.3.4 服务器参数文件 19
2.3.5 密码文件、警告文件和跟踪文件 20
2.4 Oracle 11g服务器结构 22
2.4.1 系统全局区 22
2.4.2 程序全局区(PGA) 25
2.4.3 前台进程 25
2.4.4 后台进程 26
2.5 数据字典 29
2.5.1 Oracle数据字典命名规则 29
2.5.2 Oracle常用数据字典 29
知识点提炼 31
习题 31
第3章 Oracle数据库的安装与配置 32
3.1 Oracle 11g的安装与卸载 32
3.1.1 Oracle 11g的安装 32
3.1.2 Oracle 11g的卸载 38
3.2 Oracle 11g的管理工具 41
3.2.1 SQL*Plus工具 41
3.2.2 Oracle企业管理器 42
3.2.3 数据库配置助手 43
3.3 启动与关闭数据库实例 44
3.3.1 启动数据库实例 44
3.3.2 关闭数据库实例 46
3.4 综合实例——安装Oracle 11g数据库 47
知识点提炼 47
习题 48
实验:使用ABORT方式关闭数据库 48
实验目的 48
实验内容 48
实验步骤 48
第4章 SQL*Plus命令 49
4.1 设置SQL*Plus运行环境 49
4.1.1 SET命令基本语法 49
4.1.2 使用SET命令设置运行环境 51
4.2 常用SQL*Plus命令 55
4.2.1 HELP命令 55
4.2.2 DESCRIBE命令 56
4.2.3 SPOOL命令 58
4.2.4 其他常用命令 58
4.3 格式化查询结果 60
4.3.1 COLUMN命令 61
4.3.2 TTITLE和BTITLE命令 63
4.4 综合实例——设置空白行数为4 64
知识点提炼 65
习题 65
实验:应用指定字符替换表中的null值 65
实验目的 65
实验内容 65
实验步骤 65
第5章 SQL语言基础及调优 66
5.1 SQL语言简介 66
5.1.1 SQL语言的特点 67
5.1.2 SQL语言的分类 67
5.1.3 SQL语言的编写规则 68
5.2 用户模式 69
5.2.1 模式与模式对象 69
5.2.2 示例模式SCOTT 69
5.3 检索数据 70
5.3.1 简单查询 70
5.3.2 筛选查询 73
5.3.3 分组查询 77
5.3.4 排序查询 78
5.3.5 多表关联查询 78
5.4 Oracle常用系统函数 82
5.4.1 字符类函数 82
5.4.2 数字类函数 85
5.4.3 日期和时间类函数 86
5.4.4 转换类函数 87
5.4.5 聚合类函数 88
5.5 子查询的用法 88
5.5.1 什么是子查询 89
5.5.2 单行子查询 89
5.5.3 多行子查询 90
5.5.4 关联子查询 91
5.6 操作数据库 91
5.6.1 插入数据(INSERT语句) 91
5.6.2 更新数据(UPDATE语句) 92
5.6.3 删除数据(DELETE语句和TRUNCATE语句) 93
5.7 事务处理 94
5.7.1 事务概述 94
5.7.2 操作事务 95
5.8 常规SQL语句优化 96
5.8.1 建议不用“*”来代替所有列名 97
5.8.2 用TRUNCATE代替DELETE 97
5.8.3 在确保完整性的情况下多用COMMIT语句 97
5.8.4 尽量减少表的查询次数 98
5.8.5 用[NOT]EXISTS代替[NOT]IN 98
5.9 表连接优化 98
5.9.1 驱动表的选择 98
5.9.2 WHERE子句的连接顺序 99
5.10 合理使用索引 99
5.10.1 何时使用索引 99
5.10.2 索引列和表达式的选择 99
5.10.3 选择复合索引主列 100
5.10.4 避免全表扫描大表 100
5.10.5 监视索引是否被使用 100
5.11 优化器的使用 101
5.11.1 优化器的概念 101
5.11.2 运行EXPLAIN PLAN 102
5.11.3 Oracle 11g中SQL执行计划的管理 102
5.12 数据库和SQL重演 102
5.12.1 数据库重演 102
5.12.2 SQL重演 103
5.13 Oracle的性能顾问 103
5.13.1 SQL调优顾问 104
5.13.2 SQL访问顾问 104
5.14 综合实例——查询工资不小于WARD的员工信息 104
知识点提炼 105
习题 105
实验:更新表中数据 106
实验目的 106
实验内容 106
实验步骤 106
第6章 PL/SQL编程 107
6.1 PL/SQL简介 107
6.1.1 PL/SQL块结构 107
6.1.2 代码注释和标识符 109
6.2 数据类型、变量和常量 110
6.2.1 基本数据类型 110
6.2.2 特殊数据类型 111
6.2.3 定义变量和常量 113
6.3 流程控制语句 114
6.3.1 选择语句 114
6.3.2 循环语句 118
6.4 PL/SQL游标 120
6.4.1 显式游标 120
6.4.2 游标属性 123
6.4.3 隐式游标 124
6.4.4 通过for语句循环游标 125
6.5 PL/SQL异常处理 126
6.5.1 预定义异常 126
6.5.2 自定义异常 128
6.6 综合实例——使用游标查询工资小于1000元的员工工资 129
知识点提炼 130
习题 130
实验:游标提取比指定员工工资少的员工信息 131
实验目的 131
实验内容 131
实验步骤 131
第7章 过程、函数、触发器和包 132
7.1 存储过程 132
7.1.1 创建存储过程 132
7.1.2 存储过程的参数 134
7.1.3 IN参数的默认值 139
7.2 函数 140
7.2.1 创建函数 140
7.2.2 调用函数 141
7.2.3 删除函数 141
7.3 触发器 141
7.3.1 触发器简介 142
7.3.2 语句级触发器 143
7.3.3 行级别触发器 145
7.3.4 替换触发器 146
7.3.5 用户事件触发器 148
7.4 程序包 150
7.4.1 程序包的规范 150
7.4.2 程序包的主体 151
7.5 综合实例——创建带参数的存储过程 153
知识点提炼 153
习题 154
实验:通过触发器实现当emp表中删除数据时bonus表中对应数据也删除 154
实验目的 154
实验内容 154
实验步骤 154
第8章 数据表对象 155
8.1 数据表概述 155
8.2 创建数据表 156
8.2.1 数据表的逻辑结构 156
8.2.2 创建数据表 157
8.2.3 数据表的特性 158
8.3 维护数据表 163
8.3.1 增加和删除字段 163
8.3.2 修改字段 164
8.3.3 重命名表 165
8.3.4 改变表空间和存储参数 165
8.3.5 删除表 166
8.3.6 修改表的状态 167
8.4 数据完整性和约束性 168
8.4.1 非空约束 168
8.4.2 主键约束 169
8.4.3 唯一性约束 171
8.4.4 外键约束 172
8.4.5 禁用和激活约束 173
8.4.6 删除约束 175
8.5 综合实例——创建用户表并添加唯一性约束 175
知识点提炼 176
习题 176
实验:关联表之间的级联删除 176
实验目的 176
实验内容 177
实验步骤 177
第9章 视图、索引、序列、同义词 178
9.1 视图对象 178
9.1.1 创建视图 178
9.1.2 管理视图 181
9.2 索引 182
9.2.1 索引概述 182
9.2.2 创建索引 183
9.2.3 修改索引 187
9.2.4 删除索引 188
9.2.5 显示索引信息 188
9.3 序列 190
9.3.1 创建序列 190
9.3.2 管理序列 192
9.4 同义词 192
9.5 综合实例——创建多表连接视图 194
知识点提炼 194
习题 194
实验:为用户表创建索引 195
实验目的 195
实验内容 195
实验步骤 195
第10章 管理表空间和数据文件 196
10.1 表空间与数据文件的关系 196
10.2 Oracle 11g的默认表空间 197
10.2.1 SYSTEM表空间 198
10.2.2 SYSAUX表空间 198
10.3 创建表空间 198
10.3.1 创建表空间的语法 199
10.3.2 通过本地化管理方式创建表空间 200
10.3.3 通过段空间管理方式创建表空间 200
10.3.4 创建非标准块表空间 201
10.3.5 建立大文件表空间 202
10.4 维护表空间与数据文件 203
10.4.1 设置默认表空间 203
10.4.2 更改表空间的状态 203
10.4.3 重命名表空间 204
10.4.4 删除表空间 204
10.4.5 维护表空间中的数据文件 205
10.5 管理撤销表空间 206
10.5.1 撤销表空间的作用 206
10.5.2 撤销表空间的初始化参数 207
10.5.3 撤销表空间的基本操作 208
10.6 管理临时表空间 211
10.6.1 简介临时表空间 211
10.6.2 创建临时表空间 211
10.6.3 查询临时表空间的信息 211
10.6.4 关于临时表空间组 212
10.7 综合实例——在新建的表空间中创建数据表 214
知识点提炼 214
习题 214
实验:新建表空间并将其设置为默认表空间 215
实验目的 215
实验内容 215
实验步骤 215
第11章 控制文件和日志文件 216
11.1 管理控制文件 216
11.1.1 简介控制文件 216
11.1.2 控制文件的多路复用 217
11.1.3 创建控制文件 218
11.1.4 备份和恢复控制文件 221
11.1.5 删除控制文件 223
11.1.6 查询控制文件的信息 223
11.2 管理重做日志文件 224
11.2.1 重做日志文件概述 224
11.2.2 增加日志组及其成员 225
11.2.3 删除重做日志 227
11.2.4 更改重做日志的位置或名称 228
11.2.5 查看重做日志信息 229
11.3 管理归档日志文件 229
11.3.1 日志模式分类 229
11.3.2 管理归档操作 230
11.3.3 设置归档文件位置 232
11.3.4 查看归档日志信息 234
11.4 综合实例——向数据库中添加包含3个文件的重做日志文件组 235
知识点提炼 235
习题 235
实验:查看并切换日志模式 236
实验目的 236
实验内容 236
实验步骤 236
第12章 表分区与索引分区 237
12.1 分区技术简介 237
12.2 创建表分区 238
12.2.1 范围分区 238
12.2.2 散列分区 239
12.2.3 列表分区 241
12.2.4 组合分区 242
12.2.5 Interval分区 243
12.3 表分区策略 243
12.4 管理表分区 244
12.4.1 添加表分区 244
12.4.2 合并分区 244
12.4.3 删除分区 245
12.4.4 并入分区 246
12.5 创建索引分区 247
12.5.1 索引分区概述 247
12.5.2 本地索引分区 248
12.5.3 全局索引分区 249
12.6 管理索引分区 249
12.6.1 索引分区管理的操作列表 250
12.6.2 索引分区管理的实际操作 250
12.7 综合实例——创建图书表,并按图书编号创建表分区 251
知识点提炼 251
习题 252
实验:为工作表创建索引分区 252
实验目的 252
实验内容 252
实验步骤 252
第13章 用户管理与权限分配 253
13.1 用户与模式的关系 253
13.2 创建与管理用户 254
13.2.1 身份验证 254
13.2.2 创建用户 255
13.2.3 修改用户 256
13.2.4 删除用户 257
13.3 用户权限管理 258
13.3.1 权限简介 258
13.3.2 授权操作 258
13.3.3 回收系统权限 259
13.3.4 对象授权 260
13.3.5 回收对象权限 261
13.3.6 查询用户与权限 261
13.4 角色管理 262
13.4.1 角色简介 262
13.4.2 预定义角色 262
13.4.3 创建角色与授权 264
13.4.4 管理角色 265
13.4.5 角色与权限查询 266
13.5 资源配置PROFILE 267
13.5.1 PROFILE简介 267
13.5.2 使用PROFILE管理密码 268
13.5.3 使用PROFILE管理资源 270
13.5.4 维护PROFILE文件 271
13.5.5 显示PROFILE信息 272
13.6 综合实例——创建开发者角色 272
知识点提炼 275
习题 275
实验:创建开发者用户 276
实验目的 276
实验内容 276
实验步骤 276
第14章 数据导出和导入 279
14.1 EXPDP和IMPDP概述 279
14.2 EXPDP导出数据 280
14.2.1 执行EXPDP命令 280
14.2.2 EXPDP命令参数 283
14.3 IMPDP导入数据 284
14.3.1 执行IMPDP命令 284
14.3.2 IMPDP命令参数 286
14.4 SQL*Loader工具 287
14.4.1 SQL*Loader概述 287
14.4.2 加载数据 288
14.5 综合实例——使用EXPDP工具导出HR模式中的employees表 290
知识点提炼 291
习题 291
实验:导入数据表 291
实验目的 291
实验内容 291
实验步骤 291
第15章 Oracle闪回技术与系统调优 293
15.1 闪回技术简介 293
15.2 闪回数据库 294
15.2.1 闪回恢复区配置 294
15.2.2 闪回数据库配置 294
15.2.3 闪回数据库技术应用 296
15.3 闪回表 297
15.3.1 闪回表命令的语法 297
15.3.2 闪回表的应用 297
15.4 闪回丢弃 298
15.4.1 回收站简介 298
15.4.2 回收站的应用 299
15.5 其他闪回技术 300
15.5.1 闪回版本查询 300
15.5.2 闪回事务查询 300
15.5.3 闪回数据归档 301
15.6 调整初始化参数 301
15.6.1 Oracle初始化参数分类 301
15.6.2 主要系统调优参数介绍 302
15.7 系统全局区(SGA)优化 304
15.7.1 理解内存分配 304
15.7.2 调整日志缓冲区 304
15.7.3 调整共享池 306
15.7.4 调整数据库缓冲区 308
15.7.5 SGA调优建议 308
15.8 排序区优化 309
15.8.1 排序区与其他内存区的关系 309
15.8.2 理解排序活动 309
15.8.3 专用模式下排序区的调整 310
15.8.4 共享模式下排序区的调整 312
15.9 综合实例——使用闪回丢弃还原表 313
知识点提炼 314
习题 314
实验:清除插入的记录 315
实验目的 315
实验内容 315
实验步骤 315
第16章 综合案例——企业人事管理系统 316
16.1 需求分析 316
16.2 总体设计 316
16.2.1 系统目标 316
16.2.2 构建开发环境 317
16.2.3 系统功能结构 324
16.2.4 业务流程图 325
16.3 数据库设计 326
16.3.1 数据库概要说明 326
16.3.2 数据库E-R图 327
16.3.3 数据表结构 328
16.4 公共模块设计 328
16.4.1 编写Hibernate配置文件 329
16.4.2 编写Hibernate持久化类和映射文件 330
16.4.3 编写通过Hibernate操作持久化对象的常用方法 330
16.4.4 创建用于特殊效果的部门树对话框 332
16.4.5 创建通过部门树选取员工的面板和对话框 333
16.5 系统主要模块开发 335
16.5.1 主窗体设计 335
16.5.2 人事管理模块设计 341
16.5.3 待遇管理模块设计 347
16.5.4 系统维护模块设计 353
16.6 程序打包与安装 358
16.6.1 打包 358
16.6.2 安装 360