目 录
第1章 初识Oracle 1
1.1 数据库基础 1
1.1.1
什么是数据库 1
1.1.2
表 2
1.1.3
数据类型 2
1.1.4
主键 2
1.2 数据库技术构成 3
1.2.1
数据库系统 3
1.2.2
SQL语言 3
1.2.3
数据库访问技术 4
1.3 熟悉新版Oracle
12c 5
1.3.1
Oracle的发展历程 5
1.3.2
Oracle 12c版本的新功能 6
1.3.3
Oracle的优势 8
1.4 了解Oracle工具 8
1.4.1
SQL Plus 9
1.4.2
Oracle SQL Developer 10
1.5 如何快速掌握Oracle
10
第2章 Oracle 12c的安装与配置 12
2.1 安装Oracle 12c
12
2.2 启动服务并登录Oracle数据库 18
2.2.1
启动Oracle服务 18
2.2.2
登录Oracle数据库 19
2.3 卸载Oracle 12c
23
2.4 疑难解惑 26
2.5 经典习题 29
第3章 数据库和数据表的基本操作
30
3.1 创建数据库 30
3.2 删除数据库 34
3.3 创建数据表 37
3.3.1
创建表的语法形式 37
3.3.2
使用主键约束 38
3.3.3
使用外键约束 40
3.3.4
使用非空约束 42
3.3.5
使用唯一性约束 43
3.3.6
使用默认约束 44
3.3.7
使用检查约束 44
3.3.8
设置表的属性值自动增加 45
3.4 查看数据表结构 46
3.5 修改数据表 47
3.5.1
修改表名 47
3.5.2
修改字段的数据类型 48
3.5.3
修改字段名 49
3.5.4
添加字段 49
3.5.5
删除字段 50
3.6 删除数据表 51
3.6.1
删除没有被关联的表 51
3.6.2
删除被其他表关联的主表 52
3.7 综合案例——数据表的基本操作 53
3.8 疑难解惑 58
3.9 经典习题 60
第4章 数据类型和运算符 61
4.1
Oracle数据类型介绍 61
4.1.1
数值数据类型 61
4.1.2
日期与时间类型 63
4.1.3
字符串类型 65
4.2 如何选择数据类型 66
4.3 常见运算符介绍 67
4.3.1
运算符概述 67
4.3.2
算术运算符 67
4.3.3
比较运算符 69
4.3.4
逻辑运算符 70
4.3.5
运算符的优先级 71
4.4 疑难解惑 72
4.5 经典习题 72
第5章 Oracle函数 73
5.1
Oracle函数简介 73
5.2 数学函数 73
5.2.1
绝对值函数ABS(x) 73
5.2.2
算术平方根函数SQRT(x)和求余函数MOD(x,y) 74
5.2.3
获取整数的函数CEIL(x)和FLOOR(x) 74
5.2.4
获取随机数的函数DBMS_RANDOM.RANDOM和DBMS_RANDOM.RANDOM (x,y) 75
5.2.5
四舍五入函数ROUND(x)、ROUND(x,y)和TRUNC(x,y) 75
5.2.6
符号函数SIGN(x) 76
5.2.7
幂运算函数POWER(x,y)和EXP(x) 77
5.2.8
对数运算函数LOG(x,y)和LN(x) 77
5.2.9
正弦函数SIN(x)和反正弦函数ASIN(x) 78
5.2.10
余弦函数COS(x)和反余弦函数ACOS(x) 78
5.2.11
正切函数、反正切函数和余切函数 78
5.3 字符串函数 79
5.3.1
计算字符串长度的函数 79
5.3.2
合并字符串函数CONCAT(s1,s2) 79
5.3.3
字符串搜索函数INSTR (s,x) 80
5.3.4
字母大小写转换函数 80
5.3.5
获取指定长度的字符串的函数substr(s,m,n) 81
5.3.6
替换字符串的函数REPLACE(s1,s2,s3) 81
5.3.7
删除字符串首尾指定字符的函数LTRIM(s,n)和RTRIM(s,n) 81
5.3.8
删除指定字符串的函数TRIM() 82
5.3.9
字符集名称和ID互换函数 82
5.4 日期和时间函数 83
5.4.1
获取当前日期和时间的函数 83
5.4.2
获取时区的函数 83
5.4.3
获取指定月份*后一天函数 84
5.4.4
获取指定日期后一周的日期函数 84
5.4.5
获取指定日期特定部分的函数 84
5.4.6
获取两个日期之间的月份数 85
5.5 转换函数 85
5.5.1
字符串转ASCII类型字符串函数 85
5.5.2
二进制转十进制函数 85
5.5.3
数据类型转换函数 86
5.5.4
数值转换为字符串函数 86
5.5.5
字符转日期函数 86
5.5.6
字符串转数字函数 87
5.6 系统信息函数 87
5.6.1
返回登录名函数 87
5.6.2
返回会话以及上下文信息函数 87
5.7 综合案例——Oracle函数的使用 88
5.8 疑难解惑 90
5.9 经典习题 91
第6章 查询数据 92
6.1 基本查询语句 92
6.2 单表查询 94
6.2.1
查询所有字段 95
6.2.2
查询指定字段 96
6.2.3
查询指定记录 97
6.2.4
带IN关键字的查询 99
6.2.5
带BETWEEN AND的范围查询 100
6.2.6
带LIKE的字符匹配查询 101
6.2.7
查询空值 102
6.2.8
带AND的多条件查询 104
6.2.9
带OR的多条件查询 104
6.2.10
查询结果不重复 105
6.2.11
对查询结果排序 106
6.2.12
分组查询 110
6.2.13
使用ROWNUM限制查询结果的数量 115
6.3 使用集合函数查询 115
6.3.1
COUNT()函数 116
6.3.2
SUM()函数 117
6.3.3
AVG()函数 117
6.3.4
MAX()函数 118
6.3.5
MIN()函数 119
6.4 连接查询 120
6.4.1
内连接查询 120
6.4.2
外连接查询 123
6.4.3
复合条件连接查询 125
6.5 子查询 126
6.5.1
带ANY、SOME关键字的子查询 126
6.5.2
带ALL关键字的子查询 127
6.5.3
带EXISTS关键字的子查询 127
6.5.4
带IN关键字的子查询 128
6.5.5
带比较运算符的子查询 130
6.6 合并查询结果 131
6.7 为表和字段取别名 134
6.7.1
为表取别名 134
6.7.2
为字段取别名 135
6.8 使用正则表达式查询 137
6.8.1
查询以特定字符或字符串开头的记录 137
6.8.2
查询以特定字符或字符串结尾的记录 138
6.8.3
用符号"."来替代字符串中的任意一个字符 139
6.8.4
使用"*"和" "来匹配多个字符 139
6.8.5
匹配指定字符串 139
6.8.6
匹配指定字符中的任意一个 140
6.8.7
匹配指定字符以外的字符 141
6.8.8
使用{n,}或者{n,m}来指定字符串连续出现的次数 142
6.9 综合案例——数据表查询操作
142
6.10
疑难解惑 149
6.11 经典习题 149
第7章 插入、更新与删除数据
150
7.1 插入数据 150
7.1.1
为表的所有字段插入数据 150
7.1.2
为表的指定字段插入数据 152
7.1.3
同时插入多条记录 153
7.1.4
将查询结果插入到表中 154
7.2 更新数据 156
7.3 删除数据 158
7.4 综合案例——记录的插入、更新和删除 160
7.5 疑难解惑 164
7.6 经典习题 164
第8章 视 图 166
8.1 视图概述 166
8.1.1
视图的含义 166
8.1.2
视图的作用 167
8.2 创建视图 168
8.2.1
创建视图的语法形式 168
8.2.2
在单表上创建视图 168
8.2.3
在多表上创建视图 169
8.2.4
创建视图的视图 170
8.2.5
创建没有源表的视图 170
8.3 查看视图 171
8.4 修改视图 171
8.4.1
CREATE OR REPLACE VIEW语句修改视图 171
8.4.2
ALTER语句修改视图的约束 172
8.5 更新视图 173
8.6 删除视图 175
8.7 限制视图的数据操作 175
8.7.1
设置视图的只读属性 175
8.7.2
设置视图的检查属性 175
8.8 综合案例——视图应用
176
8.9 疑难解惑 181
8.10
经典习题 182
第9章 PL/SQL编程 183
9.1
PL/SQL概述 183
9.1.1
PL/SQL是什么 183
9.1.2
PL/SQL的结构 184
9.1.3
PL/SQL的编程规范 186
9.2 使用常量和变量 188
9.3 使用表达式 189
9.4 PL/SQL的控制结构与语句 190
9.4.1
基本处理流程 191
9.4.2
IF条件控制语句 191
9.4.3
CASE条件控制语句 195
9.4.4
LOOP循环控制语句 198
9.5
PL/SQL中的异常 199
9.5.1
异常概述 199
9.5.2
异常处理 200
9.6
PL/SQL中的函数 201
9.7 疑难解惑 202
9.8 经典习题 202
第10章 存储过程 203
10.1
创建存储过程 203
10.1.1
什么是存储过程 203
10.1.2
创建存储过程 204
10.2
调用存储过程 204
10.3
查看存储过程 206
10.4
存储过程的参数 206
10.4.1
无参数的存储过程 206
10.4.2
有参数的存储过程 207
10.5
修改存储过程 208
10.6
删除存储过程 209
10.7
查看存储过程的错误 209
10.8
综合案例——综合运用存储过程 210
10.9
疑难解惑 211
10.10
经典习题 212
第11章 Oracle触发器 213
11.1
创建触发器 213
11.1.1
触发器是什么 213
11.1.2
创建只有一个执行语句的触发器 214
11.1.3
创建有多个执行语句的触发器 214
11.2
查看触发器 216
11.2.1
查看触发器的名称 217
11.2.2
查看触发器的内容信息 217
11.3
触发器的使用 217
11.4
修改触发器 218
11.5
删除触发器 219
11.6
综合案例——触发器使用 219
11.7
疑难解惑 221
11.8
经典习题 221
第12章 游 标 222
12.1
认识游标 222
12.1.1
游标的概念 222
12.1.2
游标的优点 223
12.1.3
游标的分类 223
12.2
显式游标 223
12.2.1
显式游标的语法 223
12.2.2
打开游标 224
12.2.3
读取游标中的数据 224
12.2.4
关闭游标 224
12.2.5
使用显式游标的案例 224
12.2.6
使用显式游标的LOOP语句 225
12.2.7
使用BULK COLLECT和FOR语句的游标 226
12.2.8
使用CURSOR FOR LOOP语句的游标 227
12.2.9
显式游标的属性 227
12.3
隐式游标 230
12.3.1
使用隐式游标 230
12.3.2
隐式游标的属性 231
12.3.3
游标中使用异常处理 233
12.4
综合案例——游标的综合应用 234
12.5
疑难解惑 235
12.6
经典习题 235
第13章 管理表空间 236
13.1
什么是表空间 236
13.2
查看表空间 237
13.3
管理表空间 238
13.3.1
创建表空间 238
13.3.2
设置表空间的可用状态 239
13.3.3
设置表空间的读写状态 240
13.3.4
重命名表空间 240
13.3.5
删除表空间 240
13.3.6
建立大文件表空间 241
13.4
管理临时表空间 241
13.4.1
创建临时表空间 241
13.4.2
查看临时表空间 242
13.4.3
创建临时表空间组 242
13.4.4
查看临时表空间组 243
13.4.5
删除临时表空间组 243
13.5
管理数据文件 243
13.5.1
移动数据文件 243
13.5.2
删除数据文件 244
13.6
疑难解惑 244
13.7
经典习题 244
第14章 事务与锁 245
14.1
事务管理 245
14.1.1
事务是什么 245
14.1.2
事务的属性 246
14.1.3
事务管理的常用语句 246
14.1.4
事务的类型 246
14.1.5
事务的应用实例 247
14.1.6
事务的保存点 248
14.2
锁 249
14.2.1
锁是什么 249
14.2.2
锁的分类 250
14.2.3
锁的类型 251
14.2.4
锁等待和死锁 251
14.3
综合案例——死锁的案例 253
14.4
疑难解惑 254
14.5
经典习题 254
第15章 Oracle的安全管理 255
15.1
账户管理 255
15.1.1
管理账号概述 255
15.1.2
新建普通用户 256
15.1.3
修改用户信息 257
15.1.4
删除用户 257
15.2
权限管理 258
15.2.1
授权 258
15.2.2
收回权限 259
15.2.3
查看权限 260
15.3
角色管理 260
15.3.1
角色概述 261
15.3.2
创建角色 261
15.3.3
设置角色 261
15.3.4
修改角色 262
15.3.5
查看角色 262
15.3.6
删除角色 263
15.4
管理概要文件PROFILE 263
15.4.1
PROFILE概述 263
15.4.2
创建概要文件 263
15.4.3
修改概要文件 264
15.4.4
删除概要文件 264
15.5
疑难解惑 264
15.6
经典习题 265
第16章 控制文件和日志 266
16.1
控制文件简介 266
16.2
控制文件的应用案例 267
16.2.1
查看控制文件的内容 267
16.2.2
更新控制文件的内容 267
16.2.3
使用init.ora多路复用控制文件 268
16.2.4
使用SPFILE多路复用控制文件 268
16.2.5
创建控制文件 269
16.3
日志简介 271
16.4
管理日志文件 272
16.4.1
新建日志文件组 272
16.4.2
添加日志文件到日志文件组 273
16.4.3
删除日志文件组和日志文件 273
16.4.4
查询日志文件组和日志文件 274
16.5
疑难解惑 275
16.6
经典习题 275
第17章 数据备份与还原 276
17.1
数据备份 276
17.1.1
冷备份 276
17.1.2
热备份 277
17.2
数据还原 278
17.3
表的导出和导入 279
17.3.1
用EXP工具导出数据 279
17.3.2
用EXPDP导出数据 280
17.3.3
用IMP导入数据 281
17.3.4
用IMPDP导入数据 281
17.4
疑难解惑 282
17.5
经典习题 282
第18章 Oracle性能优化 283
18.1
优化简介 283
18.1.1
修改系统全局区 283
18.1.2
修改进程全局区 285
18.2
优化查询 286
18.2.1
分析查询语句的执行计划 286
18.2.2
索引对查询速度的影响 288
18.2.3
使用索引查询 288
18.2.4
优化子查询 289
18.3
优化数据库结构 289
18.3.1
将字段很多的表分解成多个表 289
18.3.2 增加中间表 290
18.3.3
增加冗余字段 292
18.3.4
优化插入记录的速度 292
18.4
优化Oracle服务器 293
18.4.1
优化服务器硬件 294
18.4.2
优化Oracle的参数 294
18.5
疑难解惑 296
18.6
经典习题 296
第19章 Java操作Oracle数据库 297
19.1
JDBC概述 297
19.2
Java连接数据库 299
19.2.1
加载数据库驱动程序 299
19.2.2
以Thin方式连接Oracle数据库 301
19.2.3
以JDBC-ODBC桥方式连接Oracle数据库 302
19.3
Java操作Oracle数据库 305
19.3.1
创建Statement对象 305
19.3.2
使用SELECT语句查询数据 306
19.3.3
插入、更新和删除数据 306
19.3.4
执行任意SQL语句 307
19.3.5
关闭创建的对象 308
19.4
疑难解惑 308
19.5
经典习题 309
第20章 设计新闻发布系统数据库
310
20.1
系统概述 310
20.2
系统功能 311
20.3
数据库设计和实现 311
20.3.1
设计表 312
20.3.2
设计索引 316
20.3.3
设计视图 317
20.3.4
设计触发器 317
20.4
小结 318
第21章 设计论坛管理系统数据库
319
21.1
系统概述 319
21.2
系统功能 320
21.3
数据库设计和实现 321
21.3.1
设计方案图表 321
21.3.2
设计表 323
21.3.3
设计索引 326
21.3.4
设计视图 327
21.3.5
设计触发器 327
21.4
小 结 329
第22章 开发综合购物网站系统
330
22.1
在线购物网站系统分析 330
22.1.1
系统总体设计 330
22.1.2
系统界面设计 331
22.2
在线购物网站系统功能分析 331
22.2.1
系统主要功能 331
22.2.2
系统文件结构图 332
22.3
数据库与数据表设计 333
22.3.1
数据库分析 333
22.3.2
创建数据库和数据表 333
22.4
系统主要功能实现 336
22.4.1
实体类创建 336
22.4.2
数据库访问类 338
24.4.3
控制器实现 339
24.4.4
业务数据处理 342
22.5
系统的测试 343
22.5.1
系统运行 343
22.5.2
项目开发及导入步骤 347
22.6
项目的打包发行 353