第1部分 数据库入门 3
第1章 数据库入门 3
1.1 认识数据库 4
1.1.1 数据库的使用 4
1.1.2 数据库的定义 4
1.1.3 数据库管理系统 6
1.2 实体-关系模型 7
1.2.1 实体-关系模型的定义 7
1.2.2 E-R图画法 8
1.3 表 10
1.3.1 表的定义 10
1.3.2 表中的行和列 10
1.4 表中的重要概念 12
1.4.1 用主键保证数据唯一性 12
1.4.2 用外键保证引用完整性 13
第2章 数据库表结构设计 15
2.1 表结构设计的重要性 16
2.2 实体和属性 17
2.2.1 提取实体和属性的方法 17
2.2.2 将实体映射为表 18
2.3 提取关系 19
2.3.1 一对一关系下的表设计 19
2.3.2 一对多关系下的表设计 20
2.3.3 多对多关系下的表设计 21
2.3.4 实体自身发生联系情况下的表设计 23
2.4 特殊情况下的表设计 24
2.4.1 引入冗余字段 24
2.4.2 其他技巧 25
第3章 实践指导1 27
3.1 教务管理系统的需求 28
3.1.1 基本功能 28
3.1.2 学生的功能 28
3.1.3 教师的功能 28
3.1.4 管理员的功能 29
3.2 提取实体和属性 29
3.2.1 识别实体和属性 29
3.2.2 画出E-R图 30
3.2.3 实体映射为表 30
3.3 提取关系 31
3.4 得出最终结果 33
3.5 其他问题 34
3.5.1 存在的问题 34
3.5.2 思考 34
第2部分 数据查询 37
第4章 Oracle的安装和使用 37
4.1 认识Oracle 38
4.1.1 认识Oracle公司 38
4.1.2 Oracle公司的产品 38
4.2 安装Oracle 39
4.2.1 系统需求 39
4.2.2 获取Oracle安装软件 39
4.2.3 安装Oracle 40
4.3 Oracle数据库的常用开发工具 47
4.3.1 用Database Control管理数据库 47
4.3.2 用Database Configuration Assistant创建和删除数据库 47
4.3.3 用SQL Plus进行数据库操作 49
4.4 用PL/SQL Developer管理数据库 50
4.4.1 安装PL/SQL Developer 50
4.4.2 使用PL/SQL Developer 50
4.5 使用scott用户 52
第5章 数据库简单查询 54
5.1 认识SQL 55
5.1.1 SQL的作用 55
5.1.2 SQL的定义 55
5.1.3 SQL书写规则 56
5.2 教学数据库介绍 56
5.2.1 表的基本知识 56
5.2.2 本书中的样例表 58
5.3 基本查询语句SELECT 59
5.3.1 最简单的SELECT语句 59
5.3.2 字符串连接 60
5.3.3 包含算术表达式的SELECT语句 61
5.3.4 字段别名 61
5.3.5 空值的使用 63
5.3.6 去掉重复值 63
5.4 带有限制条件的查询 64
5.4.1 用WHERE限制查询出的数据 64
5.4.2 WHERE中的运算符 65
5.4.3 用BETWEEN…AND定位某一范围 66
5.4.4 用IN代替OR运算符 67
5.4.5 用LIKE进行模糊查询 67
5.4.6 用IS判断空值 68
5.5 对查询数据的排序 69
5.5.1 使用ORDER BY排序输出结果 69
5.5.2 ORDER BY的一些特殊用法 70
第6章 数据库连接查询 72
6.1 认识连接查询 73
6.1.1 连接查询的作用 73
6.1.2 使用连接查询 74
6.1.3 需要注意的问题 74
6.2 内连接 76
6.2.1 内连接的定义 76
6.2.2 使用内连接 77
6.3 外连接 79
6.3.1 外连接的定义 79
6.3.2 使用外连接 80
6.4 其他连接 82
6.4.1 使用CROSS JOIN实现笛卡儿积 82
6.4.2 使用NATURAL JOIN进行自动连接 82
6.4.3 使用USING子句进行连接 83
第7章 实践指导2 85
7.1 安装Oracle以及附属软件 86
7.1.1 安装Oracle 86
7.1.2 安装PL/SQL Developer 86
7.1.3 初始化教学数据库 86
7.2 关于单表查询的实践 86
7.3 关于连接查询的实践 88
7.4 总结 93
第8章 聚合函数 94
8.1 认识聚合函数 95
8.1.1 聚合函数的作用 95
8.1.2 使用聚合函数 95
8.2 用COUNT计算总个数 96
8.3 用AVG计算平均值 99
8.4 用SUM计算总和 100
8.5 用MAX和MIN求最大值和最小值 101
8.5.1 MAX和MIN的用法 101
8.5.2 一个容易出错的地方 102
8.6 使用GROUP BY对数据进行分组 104
8.6.1 GROUP BY的作用 104
8.6.2 使用GROUP BY 104
8.6.3 几个特殊功能 106
8.7 使用HAVING子句对聚合结果进行限制 107
第9章 数据库子查询 110
9.1 认识子查询 111
9.1.1 子查询的作用 111
9.1.2 使用子查询 111
9.2 详解子查询 112
9.2.1 子查询的使用位置 112
9.2.2 关联子查询 115
9.3 用WITH和ROWNUM实现子查询 117
9.3.1 用WITH重用子查询 117
9.3.2 用ROWNUM限制查询结果 118
9.4 和子查询相关的运算符 120
9.4.1 EXISTS关键字 120
9.4.2 多行比较运算符 122
9.4.3 结果集的合并和保存 122
第10章 单行数据处理函数 125
10.1 认识单行数据处理函数 126
10.1.1 单行数据处理函数的作用 126
10.1.2 使用单行数据处理函数 126
10.2 字符串处理函数 127
10.3 数值处理函数 130
10.4 日期处理函数 132
10.5 类型转换函数 134
10.6 其他函数 137
第11章 实践指导3 139
11.1 关于聚合函数的实践 140
11.2 关于子查询的实践 142
11.3 关于数据处理函数的实践 148
11.4 总结 152
第3部分 数据修改和维护 155
第12章 添加、删除和修改数据 155
12.1 认识DML语句 156
12.2 使用INSERT语句插入数据 156
12.2.1 向表中插入一条记录 156
12.2.2 向表中插入多条记录 158
12.3 使用DELETE语句删除数据 159
12.3.1 带简单条件的DELETE语句 160
12.3.2 带子查询的DELETE语句 161
12.4 用UPDATE语句修改数据 162
12.4.1 带简单条件的UPDATE语句 163
12.4.2 带子查询的UPDATE语句 163
12.5 认识事务 165
12.5.1 事务的作用 165
12.5.2 控制事务 166
12.5.3 设置保存点 167
第13章 表的创建与表的约束 168
13.1 认识数据库对象 169
13.2 创建和管理表 169
13.2.1 创建和删除表 169
13.2.2 修改表结构 173
13.3 约束的作用 174
13.4 使用主键约束 175
13.5 使用非空约束 177
13.6 使用唯一性约束 178
13.7 使用外键约束 180
13.8 使用CHECK约束 182
第14章 索引、视图、同义词和序列 185
14.1 认识索引 186
14.1.1 索引的作用 186
14.1.2 创建索引 187
14.1.3 索引使用技巧 188
14.2 认识视图 188
14.2.1 视图的作用 188
14.2.2 创建视图 189
14.2.3 通过视图修改数据 192
14.3 认识同义词 193
14.4 认识序列 194
第15章 实践指导4 196
15.1 关于数据增删改的实践 197
15.2 关于表创建和表管理的实践 202
15.3 关于索引、视图和同义词的实践 205
第4部分 数据库编程第16章 PL/SQL编程 209
16.1 认识PL/SQL编程 210
16.1.1 PL/SQL编程的作用 210
16.1.2 PL/SQL编程的优点 210
16.1.3 最简单的PL/SQL程序 211
16.2 在PL/SQL中使用变量 211
16.2.1 声明变量 211
16.2.2 将变量结合SQL使用 212
16.2.3 使用记录变量 214
16.2.4 使用表变量 216
16.3 用PL/SQL实现判断逻辑 217
16.3.1 用IF语句实现判断逻辑 217
16.3.2 用CASE语句实现判断逻辑 218
16.4 用PL/SQL实现循环逻辑 220
16.4.1 用LOOP语句实现循环逻辑 220
16.4.2 用WHILE语句实现循环逻辑 221
16.4.3 用FOR语句实现循环逻辑 221
第17章 存储过程、函数和包 223
17.1 认识存储过程 224
17.1.1 存储过程的作用 224
17.1.2 创建存储过程 224
17.1.3 调用存储过程 225
17.2 详解存储过程 226
17.2.1 带输入参数的存储过程 226
17.2.2 存储过程内部的返回 228
17.2.3 带输出参数的存储过程 229
17.3 认识函数 230
17.3.1 函数的作用 230
17.3.2 创建函数 231
17.3.3 调用函数 232
17.3.4 将函数使用到SQL语句 233
17.4 认识包 233
17.4.1 定义包 233
17.4.2 使用包 235
第18章 触发器 236
18.1 认识触发器 237
18.1.1 触发器的作用 237
18.1.2 使用触发器 237
18.1.3 测试触发器 239
18.2 数据操作语言触发器 240
18.2.1 数据操作语言触发器的定义 240
18.2.2 用BEFORE触发器进行数据校验 241
18.2.3 用AFTER触发器进行级联操作 244
18.2.4 认识语句级触发器 245
18.2.5 INSTEAD OF触发器 246
18.3 数据定义语言触发器 248
18.4 触发器和其他数据库对象的关系 249
第19章 游标和异常 250
19.1 游标 251
19.1.1 游标的作用 251
19.1.2 定义游标 252
19.1.3 使用游标 252
19.1.4 游标和其他数据库对象的结合使用 254
19.1.5 用FOR循环简化游标操作 255
19.2 异常处理 255
19.2.1 异常处理的作用 255
19.2.2 进行异常处理 256
19.2.3 处理特定异常 257
第20章 实践指导5 260
20.1 关于PL/SQL的实践 261
20.2 关于存储过程、函数的实践 263
20.3 关于触发器的实践 270
20.4 关于游标的实践 273
第5部分 数据库管理 277
第21章 OEM、监听与网络服务配置 277
21.1 认识OEM 278
21.2 监听器配置 281
21.2.1 认识监听器 281
21.2.2 配置监听器 282
21.3 服务配置 287
第22章 Oracle的安全管理 293
22.1 认识用户 294
22.1.1 用户的定义 294
22.1.2 创建用户 295
22.1.3 赋予用户权限 296
22.2 认识角色 299
22.2.1 角色的定义 299
22.2.2 创建角色 300
22.2.3 赋予用户角色 300
22.3 配置文件 303
第23章 表空间管理和SQL Loader 305
23.1 表空间管理 306
23.1.1 表空间的定义 306
23.1.2 创建表空间 306
23.1.3 修改用户的表空间 307
23.2 SQL Loader 309
23.2.1 认识SQL Loader 309
23.2.2 使用SQL Loader 310
第24章 数据备份与恢复 315
24.1 数据备份与恢复 316
24.2 逻辑备份与恢复 316
24.3 物理备份与恢复入门 321
24.3.1 认识物理备份与恢复 321
24.3.2 冷备份与恢复 322
24.3.3 热备份与恢复 323
第25章 实践指导6 328
25.1 关于OEM的实践 329
25.2 关于监听和服务配置的实践 331
25.3 关于用户和角色的实践 334
25.4 关于表空间和SQL Loader的实践 340
25.5 关于数据库备份和恢复的实践 341