第1篇 数据库基础 2
第1章 数据库简介(教学视频:18分钟) 2
1.1数据库简介 2
1.1.1数据库的发展历史 2
1.1.2主流数据库简介 3
1.1.3 Oracle数据库的特点 4
1.2安装及配置Oracle数据库 4
1.2.1 Oracle数据库的版本变迁 4
1.2.2 Oracle数据库的安装环境 5
1.2.3 Oracle数据库的安装步骤 5
1.3本章小结 8
1.4本章习题 8
第2章 实体-联系模型(教学视频:35分钟) 9
2.1实体和联系的概念 9
2.1.1实体 9
2.1.2联系 10
2.2 E-R图 10
2.2.1实体联系符号 10
2.2.2 E-R图示例 11
2.3 E-R模型到关系模型 12
2.3.1实体集转换为关系 12
2.3.2联系转换为关系 12
2.3.3总结联系转换为关系 14
2.4范式 15
2.4.1第一范式 15
2.4.2第二范式 15
2.4.3第三范式 16
2.4.4 BCNF范式 16
2.5数据库设计工具 17
2.5.1 PowerDesigner 17
2.5.2 ERWin 19
2.6本章小结 20
2.7本章习题 20
第3章 Oracle数据库与数据表(教学视频:60分钟) 21
3.1创建Oracle数据库 21
3.2配置/管理Oracle数据库 24
3.2.1网络配置助手工具——Net Configuration Assistant 24
3.2.2网络管理员工具——Net Manager 32
3.2.3 Oracle自带的客户端工具——sqlplus/sqlplusw 36
3.2.4开发利器——PL/SQL Developer 40
3.2.5 Toad for Oracle 47
3.3 Oracle表空间 47
3.3.1创建Oracle表空间 47
3.3.2表空间的使用 49
3.3.3表空间的重命名及删除 50
3.4 Oracle数据表 52
3.4.1创建Oracle数据表 52
3.4.2数据表的相关操作 53
3.4.3删除数据表 55
3.5特殊的数据表dual 55
3.6本章实例1——非1521端口监听程序的使用 56
3.7本章实例2——根据列名获得表名 61
3.8本章小结 62
3.9本章习题 62
第2篇 PL/SQL编程 64
第4章 SQL查询(教学视频:54分钟) 64
4.1基本查询 64
4.1.1查询命令select 64
4.1.2指定过滤条件——where子句 65
4.1.3获取唯一记录——distinct 68
4.1.4分组——group by子句 68
4.1.5过滤分组——having子句 70
4.1.6排序——order by子句 71
4.1.7 order by与group by子句 72
4.1.8 order by与distinct 74
4.2子查询 75
4.2.1查询条件中的子查询 75
4.2.2建表语句中的子查询 76
4.2.3插入语句中的子查询 77
4.3联合语句 77
4.3.1求并集(记录唯一)——union运算 77
4.3.2求并集——union all运算 79
4.3.3求交集——intersect运算 80
4.3.4求差集——minus运算 80
4.3.5联合语句的混合运算 81
4.4连接 82
4.4.1自然连接 82
4.4.2内连接 84
4.4.3外连接 86
4.5层次化查询 91
4.5.1树状模型 91
4.5.2层次化查询 92
4.5.3层次化查询的相关函数 94
4.5.4总结一条记录衍生出多条记录 95
4.6本章实例 97
4.7本章小结 98
4.8本章习题 98
第5章 SQL更新数据(教学视频:18分钟) 99
5.1插入数据——insert操作 99
5.1.1单条插入 99
5.1.2批量插入 101
5.1.3注意事项与技巧 101
5.2更新数据——update操作 103
5.2.1 update更新单列 103
5.2.2 update更新多列 104
5.2.3注意事项 105
5.3删除数据——delete操作 106
5.3.1 delete操作 106
5.3.2 delete操作与truncate table操作 107
5.4本章实例 108
5.5本章小结 110
5.6本章习题 111
第6章 Oracle中的字符型及处理方法(教学视频:34分钟) 112
6.1字符型简介 112
6.1.1固定长度字符串——char(n) 112
6.1.2 varchar(n) 113
6.1.3 varchar2(n) 113
6.2字符型分析 114
6.2.1 varchar2(n)与char(n)的区别 114
6.2.2 varchar2(n)与char(n)的选择 115
6.2.3变量声明中的字符串类型 115
6.3字符型处理 116
6.3.1向左补全字符串——lpad()函数 116
6.3.2向右补全字符串——rpad()函数 116
6.3.3返回字符串的小写形式——lower()函数 117
6.3.4返回字符串的大写形式——upper()函数 117
6.3.5单词首字符大写——initcap()函数 118
6.3.6返回字符串长度——length()函数 119
6.3.7截取字符串——substr()函数 119
6.3.8获得字符串出现的位置——instr()函数 120
6.3.9删除字符串左侧空格——ltrim()函数 121
6.3.10删除字符串右侧空格——rtrim()函数 121
6.3.11删除字符串两侧空格——trim()函数 121
6.3.12串联字符串——concat()函数 122
6.3.13翻译字符串——translate()函数 122
6.3.14反转字符串——reverse()函数 123
6.4本章实例 124
6.5本章小结 124
6.6本章习题 124
第7章 Oracle中的数值型及处理方法(教学视频:26分钟) 125
7.1 Oracle中的数值型 125
7.1.1如何理解精度 125
7.1.2精度与小数位数 125
7.2 Oracle中的数值处理 127
7.2.1返回数字的绝对值——abs()函数 127
7.2.2返回数字的“四舍五入”值——round()函数 128
7.2.3向上取整——ceil()函数 128
7.2.4向下取整——floor()函数 129
7.2.5取模操作——mod()函数 129
7.2.6返回数字的正负性——sign()函数 130
7.2.7返回数字的平方根——sqrt()函数 130
7.2.8乘方运算——power()函数 131
7.2.9截取数字——trunc()函数 131
7.2.10将ASCII码转换为字符——chr()函数 132
7.2.11格式化数值——to_char()函数 133
7.3本章实例 137
7.4本章小结 138
7.5本章习题 138
第8章 Oracle中的日期型及处理方法(教学视频:30分钟) 139
8.1 Oracle中的日期型 139
8.2 Oracle中的日期处理 139
8.2.1获得当前日期——sy sdate()函数 139
8.2.2为日期加上特定月份——add_months()函数 140
8.2.3返回特定日期所在月的最后一天——last_day()函数 141
8.2.4返回两个日期所差的月数——months_between()函数 141
8.2.5返回特定日期之后的一周内的日期next day()函数 142
8.2.6截取日期——trunc()函数 142
8.2.7返回当前会话时区的当前日期——current date()函数 144
8.2.8返回当前会话时区的时间戳——current timestamp()函数 144
8.2.9返回日期的某个域——extract()函数 144
8.2.10将日期转换为字符串——to char()函数 145
8.3本章实例 147
8.4本章小结 149
8.5本章习题 149
第9章 Oracle中的复杂数据处理(教学视频:88分钟) 150
9.1利用聚合函数统计数据 150
9.1.1求最大值——max()函数 150
9.1.2求最小值——min()函数 151
9.1.3求平均值——avg()函数 152
9.1.4求和——sum()函数 152
9.1.5统计记录数——count()函数 152
9.2 Oracle中的常用技巧 155
9.2.1多值判断——decode()函数 155
9.2.2空值处理——nvl()函数 156
9.2.3结果集的行号——rownum()函数 157
9.2.4强制转换数据类型——cast()函数 160
9.3 Oracle中的运算 161
9.3.1数学运算 162
9.3.2逻辑运算 164
9.3.3按位运算 165
9.3.4列的乘积 167
9.4 Oracle中的特殊判式 169
9.4.1 between——范围测试 170
9.4.2 in——集合成员测试 171
9.4.3 like——模糊匹配 171
9.4.4 is null——空值判断 173
9.4.5 exists——存在性判断 174
9.4.6 all、some、any——集合判断 174
9.5 Oracle中的分析函数与窗口函数 176
9.5.1分析函数与窗口函数简介 176
9.5.2排名函数 177
9.5.3默认窗口 179
9.5.4分区窗口 180
9.5.5窗口子句 182
9.5.6常用分析函数 185
9.6本章实例 189
9.7本章小结 190
9.8本章习题 190
第10章 Oracle中的控制语句(教学视频:17分钟) 191
10.1 Oracle中的条件语句 191
10.1.1流程控制——if else判断 191
10.1.2流程控制——case when分支 193
10.2 Oracle中的循环语句 194
10.2.1无条件循环 194
10.2.2 while循环 196
10.2.3 for循环 197
10.3本章实例 198
10.4本章小结 198
10.5本章习题 199
第3篇 Oracle数据库对象 202
第11章 视图(教学视频:70分钟) 202
11.1视图简介 202
11.1.1什么是视图 202
11.1.2为什么使用视图 203
11.2创建和使用关系视图 204
11.2.1创建关系视图 205
11.2.2使用关系视图 206
11.2.3修改/删除视图 210
11.2.4只读视图 211
11.2.5联接视图 212
11.2.6强制创建视图 213
11.2.7创建视图约束 214
11.3使用内嵌视图 217
11.3.1内嵌视图简介 217
11.3.2使用内嵌视图 217
11.3.3内嵌视图小结 219
11.4使用对象视图 220
11.4.1对象简介 220
11.4.2对象视图 225
11.5物化视图 227
11.5.1物化视图简介 227
11.5.2使用物化视图 227
11.5.3延迟载入 231
11.5.4数据刷新 232
11.5.5查询重写 234
11.6本章小结 236
11.7本章习题 236
第12章 约束(教学视频:100分钟) 237
12.1主键约束 237
12.1.1为什么要使用主键约束 237
12.1.2主键约束简介 238
12.1.3创建主键约束 239
12.1.4修改主键约束 245
12.1.5主键与索引 247
12.1.6总结 249
12.2外键约束 250
12.2.1为什么要使用外键约束 250
12.2.2外键约束简介 250
12.2.3创建外键约束 251
12.2.4级联更新与级联删除 254
12.2.5外键约束的相关操作 257
12.2.6总结 260
12.3唯一性约束 260
12.3.1为什么要使用唯一性约束 260
12.3.2唯一性约束简介 260
12.3.3创建唯一性约束 261
12.3.4修改唯一性约束 263
12.3.5总结 265
12.4检查约束 265
12.4.1为什么要使用检查约束 265
12.4.2检查约束简介 266
12.4.3创建检查约束 266
12.4.4修改检查约束 269
12.4.5总结 270
12.5默认值约束 270
12.5.1为什么要使用默认值约束 271
12.5.2默认值约束简介 271
12.5.3创建默认值约束 271
12.5.4修改默认值约束 273
12.5.5总结 273
12.6非空约束 274
12.6.1为什么要使用非空约束 274
12.6.2非空约束简介 274
12.6.3创建非空约束 274
12.6.4修改非空约束 277
12.6.5总结 278
12.7本章小结 278
12.8本章习题 278
第13章 游标(教学视频:38分钟) 279
13.1游标简介 279
13.1.1为什么使用游标 279
13.1.2游标简介 279
13.2显式游标 280
13.2.1声明显式游标 280
13.2.2使用显式游标 282
13.2.3游标属性 285
13.3隐式游标 285
13.3.1 SQL隐式游标的使用 285
13.3.2 cursor for游标的使用 288
13.3.3总结显式游标和隐式游标 289
13.4动态游标 289
13.4.1强类型动态游标 289
13.4.2弱类型动态游标 290
13.5本章小结 292
13.6本章习题 292
第14章 触发器(教学视频:51分钟) 293
14.1触发器简介 293
14.1.1什么是触发器 293
14.1.2为什么需要触发器 293
14.2语句触发器 294
14.2.1创建语句触发器 294
14.2.2触发器的作用对象与触发时机 295
14.2.3多个激活动作 296
14.2.4触发器谓词 297
14.2.5总结语句触发器 300
14.3行触发器 300
14.3.1创建和使用行触发器 300
14.3.2行触发器的变量引用 302
14.3.3变量引用与referencing 304
14.3.4多个触发器的执行顺序 305
14.3.5触发器的条件限制 306
14.4 instead of触发器 307
14.4.1创建和使用instead of触发器 307
14.4.2 instead of触发器中的变量引用 310
14.5系统事件与用户事件触发器 311
14.5.1系统事件触发器 311
14.5.2用户事件触发器 313
14.6触发器的相关操作 315
14.6.1为什么要禁用触发器 315
14.6.2禁用触发器——Disable 316
14.6.3启用触发器——Enable 316
10.6.4在数据字典中查看触发器信息 317
14.7本章实例 318
14.8 本章小结 319
14.9本章习题 319
第15章 序列(教学视频:26分钟) 320
15.1自动生成序号 320
15.1.1什么是自动生成序号 320
15.1.2主流数据库的自动生成序号策略 320
15.2创建和使用序列 321
15.2.1创建序列 321
15.2.2使用序列 322
15.2.3指定序列初始值 324
15.3序列属性 325
15.3.1设置序列的最大值和最小值——minvalue和maxvalue属性 326
15.3.2设置序列的增长步长——increment by属性 327
15.3.3设置序列循环取值——cycle属性 329
15.3.4设置序列缓存大小——cache属性 330
15.4本章实例 332
15.5本章小结 333
15.6本章习题 333
第16章 用户、角色与权限控制(教学视频:36分钟) 334
16.1用户 334
16.1.1 Oracle中的用户概况 334
16.1.2利用系统用户创建新的用户 335
16.1.3用户的对象集合——模式 336
16.1.4系统用户——system与sys 338
16.2权限 339
16.2.1系统权限 340
16.2.2对象权限 346
16.3角色 352
16.3.1利用角色进行权限分配 352
16.3.2角色的延伸——继承 355
16.3.3禁用/启用角色 356
16.4本章实例 358
16.5本章小结 359
166本章习题 359
第17章 函数与存储过程(教学视频:57分钟) 360
17.1自定义函数 360
17.1.1创建自定义函数 360
17.1.2函数的参数 362
17.1.3利用函数的确定性提高数据库效率 364
17.1.4典型函数——行转列 365
17.2存储过程 366
17.2.1创建存储过程 366
17.2.2“只进不出的参数”——in参数 369
17.2.3“只出不进的参数”——out参数 371
17.2.4“可进可出的参数”——in out参数 372
17.2.5调试存储过程 373
17.3程序包 377
17.3.1程序包的规范 377
17.3.2程序包的主体 379
17.3.3调用程序包中的函数/存储过程 381
17.4本章实例 381
17.5本章小结 382
17.6本章习题 382
第4篇 Oracle数据库设计与优化 384
第18章 数据库性能优化(教学视频:52分钟) 384
18.1在物理层面上提高Oracle性能 384
18.1.1修改SGA 384
18.1.2修改PGA 390
18.1.3异常情况 391
18.2索引的使用 392
18.2.1索引简介 392
18.2.2索引的创建与使用 392
18.2.3索引的开销 394
18.2.4索引的使用场景 395
18.3优化SQL语句 396
18.3.1 SQL语句的命中率 396
18.3.2 exists与in 397
18.3.3 where条件的合理利用 398
18.3.4利用with子句重用查询 400
18.4本章小结 401
18.5本章习题 401
第19章 数据一致性与事务管理(教学视频:37分钟) 402
19.1数据一致性和事务 402
19.1.1 Oracle中的数据一致性 402
19.1.2 Oracle中的事务 402
19.2 Oracle中的事务处理 403
19.2.1利用commit命令界定事务 403
19.2.2利用rollback命令界定事务 407
19.2.3 Oracle事务的属性和隔离级别 407
19.3事务处理原则 412
19.3.1事务的原子性——Atomicity 413
19.3.2事务的一致性——Consistency 413
19.3.3事务的隔离性——Isolation 413
19.3.4事务的持久性——Durablity 414
19.4本章实例 414
19.5本章小结 416
19.6本章习题 416
第20章 并发控制(教学视频:30分钟) 417
20.1并发与锁定 417
20.1.1并发与锁定举例 417
20.1.2死锁 418
20.2悲观锁定与乐观锁定 421
20.2.1 Oracle中的悲观锁定 421
20.2.2 Oracle中的乐观锁定 422
20.3锁定转换 425
20.3.1一般数据库中的锁定升级 425
20.3.2 Oracle中的锁定转换 425
20.4本章小结 430
20.5本章习题 430
第5篇 Oracle应用开发 432
第21章 Oracle在开发中的应用(教学视频:22分钟) 432
21.1 Oracle在Java开发中的应用 432
21.1.1利用JDBC操作Oracle数据库 432
21.1.2 PreparedStatement的使用 440
21.2 Oracle在C#开发中的应用 442
21.2.1在C#中连接Oracle数据库 442
21.2.2在C#中操作Oracle数据库 443
21.2.3在C#中使用Oracle数据库事务 446
21.3本章小结 448
21.4本章习题 448
第22章 Oracle+Hibernate应用实例(教学视频:25分钟) 449
22.1创建项目实例 449
22.2建立映射关系 450
22.3 Hibernate配置文件 451
22.4加载Hibernate文件 452
22.5查询操作 454
22.6更新操作 457
22.7插入操作 458
22.8本章小结 460
22.9本章习题 460