第1章 Oracle数据库基础 1
实例001 画读者与图书之间的E-R图 2
实例002 安装Oracle 11g数据库 3
实例003 卸载Oracle 11g数据库 12
实例004 使用SQL Plus工具 15
实例005 Oracle企业管理器和数据库配置助手 17
实例006 启动数据库实例到NOMOUNT模式下 19
实例007 启动数据库实例到MOUNT模式下 20
实例008 启动数据库实例到OPEN模式下 21
实例009 启动数据库实例到FORCE模式下 21
实例010 使用NORMAL方式关闭数据库 22
实例011 使用DBCA创建一个数据库 24
实例012 强制关闭Oracle数据库 26
实例013 查询Oracle标准数据块的大小 26
实例014 获取Oracle的数据文件信息 28
实例015 查看Oracle控制文件信息 29
实例016 查看Oracle的日志文件信息 30
实例017 查看数据库中内部系统表 32
实例018 使用show parameter命令显示服务器参数 33
实例019 修改服务器参数 34
实例020 创建一个密码文件 35
实例021 查看当前实例的警告文件的路径 35
实例022 查看当前实例的用户跟踪文件的路径 36
实例023 修改Oracle大型池的缓存区 37
实例024 使用Oracle数据字典 38
实例025 查询当前实例进程信息 40
实例026 查询数据库所有段的存储空间 43
实例027 查询数据库所使用的数据文件 44
第2章 SQL Plus命令行工具的使用 45
实例028 使用set newpage命令修改空行的数量 46
实例029 使用set pagesize命令修改一页的行数 48
实例030 使用set linesize命令修改一行显示的最多字符 49
实例031 使用SET PAUSE命令设置显示结果按页暂停 50
实例032 使用指定格式显示雇员的工资 51
实例033 使用helpindex命令来查看SQL Plus命令清单 52
实例034 通过DESCRIBE命令查看dba_tablespaces数据字典表 53
实例035 将销售员的记录保存到指定文件中 54
实例036 使用save命令保存SQL语句到文件中 55
实例037 加载并执行SQL脚本文件 56
实例038 使用format选项格式化员工工资格式 57
实例039 使用heading选项将英文列名转换为中文形式 58
实例040 为打印记录设置头标题和底标题 59
实例041 打印输出scott.emp数据表中的所有记录 60
实例042 使用TEXT值代替NULL值列 60
第3章 表及表空间基本操作 63
实例043 创建一个学生档案信息表students 64
实例044 创建students表的一个副本 65
实例045 用alter table命令修改字段s 66
实例046 用alter table命令删除字段s 67
实例047 用alter table命令增加新字段 68
实例048 用altertable命令重命名表名 68
实例049 用alter table命令修改表空间 69
实例050 使用存储参数为表分配第一个盘区的大小 70
实例051 查询表STUDENTS_3的第一个盘区的大小 71
实例052 创建student_4数据表,并设置其PCTFREE和PCTUSED参数分别为20和40 72
实例053 创建students_5表,并指定在数据块头部存放10个事务 73
实例054 查询INITRANS和MAXTRANS参数的设置情况 74
实例055 使用NOLOGGING子句创建students_6表 75
实例056 查询STUDENTS_6表是否启用了缓存功能 76
实例057 用droptable命令删除表 77
实例058 闪回功能快速恢复被删除的表 78
实例059 将表students_5置于只读的read only状态值 79
实例060 通过表其他列修改单列值 81
实例061 修改多行的单个列值 81
实例062 修改单行的多个列值 82
实例063 UPDATE和SELECT语句结合使用来修改数据 83
实例064 删除单行数据 83
实例065 删除多行数据 84
实例066 删除所有行 85
实例067 从DBA_DATA_FILES数据字典中查询表空间及其数据文件 85
实例068 查询USERS表空间内存放的数据对象及其类型和拥有者 87
实例069 查询SYSAUX表空间 88
实例070 创建一个扩展大小为256KB的表空间 89
实例071 创建一个扩展大小为自动管理的表空间 90
实例072 通过段空间管理方式创建表空间 91
实例073 创建一个块大小为标准块2倍的表空间 92
实例074 创建一个数据文件大小为2GB的大文件表空间 93
实例075 修改大文件表空间 94
实例076 更改表空间的读写状态 95
实例077 重命名表空间 96
实例078 删除表空间 96
实例079 创建和删除users表空间中的users02.dbf数据文件 97
实例080 对数据文件的自动扩展设置 98
实例081 创建一个数据文件大小为100MB的撤销表空间 99
实例082 修改UNDO表空间 102
实例083 切换UNDO表空间 102
实例084 删除UNDO表空间 103
实例085 查询当前例程正在使用的UNDO表空间 104
实例086 统计UNDO表空间中“回退块”的生成信息 104
实例087 查询特定UNDO段的信息 105
实例088 查询指定段的信息 106
实例089 查询临时表空间的信息 107
实例090 创建临时表空间组 107
实例091 转移临时表空间到另外一个组 108
实例092 把临时表空间组分配给指定的用户使用 109
实例093 删除临时表空间组 110
实例094 创建并设置默认永久表空间 111
实例095 创建并设置默认临时表空间 112
实例096 将创建的数据表置于指定的表空间中 113
第4章 PL/SQL流程控制 115
实例097 计算两个整数的和与这个两个整数的差的商 116
实例098 添加单行注释 117
实例099 添加多行注释 118
实例100 使用%type类型的变量输出emp表中编号为7369的员工名称和职务 119
实例101 声明%ROWTYPE类型的变量rowVar_emp 120
实例102 声明记录类型emp_type存储一条记录信息 121
实例103 定义变量和常量 122
实例104 使用if…then语句比较两个字符串变量的长度 122
实例105 使用if…then…else语句判断退休年龄 124
实例106 使用if…then…elsif语句判断月份所属的季节 125
实例107 使用case语句判断指定季节所包含的月份信息 126
实例108 使用loop/while语句求前100个自然数的和 128
实例109 使用for语句求前100个自然数中偶数之和 130
第5章 基础查询 133
实例110 检索scott.emp表中职位是SALESMAN(销售员)的记录 134
实例111 查询多个列名 135
实例112 查询所有列 136
实例113 使用列别名 137
实例114 在列上加入计算 138
实例115 利用通配符进行查询 139
实例116 查询数字 140
实例117 利用%通配符进行查询 140
实例118 利用[]通配符进行查询 141
实例119 利用[^]通配符进行查询 142
实例120 检索名称以字母“a”开头的员工信息 143
实例121 复杂的模糊查询 144
实例122 统一字段格式进行查询 145
实例123 在查询中去除空格 145
实例124 对查询结果进行格式化 146
实例125 利用IN谓词限定范围 147
实例126 利用NOT IN限定范围 148
实例127 利用ALL谓词限定范围 149
实例128 利用ANY谓词限定范围 150
实例129 NOT与谓词进行组合条件的查询 151
实例130 查询时不显示重复记录 152
实例131 列出数据中的重复记录和记录条数 153
实例132 去除记录中指定字段的空值 154
实例133 获取记录中指定字段的空值 154
实例134 查询前5名数据 155
实例135 查询后5名数据 156
实例136 取出数据统计结果前3名数据 157
实例137 查询指定日期的数据 157
实例138 查询指定时间段的数据 158
实例139 按月查询数据 159
实例140 查询大于指定条件的数据 160
实例141 查询小于指定条件的数据 160
实例142 将系统日期转换为“YYYY-MM-DD”格式 161
实例143 查询工资在2000到3000之间的员工信息 161
实例144 统计某一个部门的雇员的最高和最低工资 162
实例145 利用〈、〉号进行区间查询 163
实例146 利用BETWEEN进行区间查询 164
实例147 利用模糊查询进行区间查询 165
实例148 利用OR进行查询 165
实例149 利用AND进行查询 166
实例150 同时利用OR、AND进行查询 167
实例151 在分组查询中使用ALL关键字 168
实例152 在分组查询中使用HAVING子句 169
实例153 在分组查询中使用CUBE运算符 170
实例154 在分组查询中使用ROLLUP 171
实例155 对统计结果进行排序 172
实例156 数据分组统计(单列) 173
实例157 按仓库分组统计图书库存(多列) 173
实例158 多表分组统计 174
实例159 使用COMPUTE 175
实例160 在查询时对数值进行取整 176
第6章 函数在查询中的应用 179
实例161 利用聚集函数SUM对销售额进行汇总 180
实例162 利用聚集函数AVG求某班学生的平均年龄 180
实例163 利用聚集函数MIN求最小值 181
实例164 利用聚集函数MAX求最大值 182
实例165 利用聚集函数COUNT求日销售额大于某值的商品数 183
实例166 使用ROUND函数 184
实例167 使用POWER函数 185
实例168 使用EXP函数 185
实例169 使用LOG函数 186
实例170 使用FLOOR函数和CEILING函数 187
实例171 使用三角函数 187
实例172 使用SYSDATE函数 188
实例173 使用ADD_MONTHS函数 189
实例174 使用LAST_DAY函数 189
实例175 使用CONCAT函数 190
实例176 使用ASCII函数 191
实例177 使用SUBSTR函数 191
实例178 使用TO_NUMBER函数 192
实例179 使用TO_CHAR函数 193
实例180 使用REPLICATE函数 193
实例181 用LTRIM、RTRIM和TRIM函数 194
实例182 使用LOWER、UPPER函数 195
实例183 使用LENGTH函数 196
实例184 使用MOD函数 197
实例185 使用SIGN函数 198
实例186 使用CAST函数 199
第7章 高级查询 201
实例186 利用FROM子句进行多表查询 202
实例187 使用表的别名 203
实例188 合并多个结果集 204
实例189 由IN引入的子查询 205
实例190 EXISTS子查询实现两表交集 206
实例191 使用ANY/SOME操作符的多行子查询 207
实例192 使用ALL操作符的多行子查询 208
实例193 在SELECT子句中的子查询 209
实例194 在子查询中使用聚集函数 210
实例195 使用子查询更新数据 210
实例196 使用子查询删除数据 212
实例197 使用“关联子查询”检索信息 212
实例198 复杂的嵌套查询 213
实例199 嵌套查询在查询统计中的应用 214
实例200 使用UNION运算符 216
实例201 使用EXCEPT运算符 216
实例202 使用INTERSECT运算符 217
实例203 一对多联合查询 218
实例204 对联合查询后的结果进行排序 219
实例205 简单内连接查询 220
实例206 复杂的内连接查询 221
实例207 自身连接 222
实例208 笛卡尔乘积(交叉连接) 223
实例209 使用USING子句的连接 224
实例210 使用ON子句的连接 225
实例211 LEFT OUTER JOIN查询 226
实例212 RIGHT OUTER JOIN查询 228
实例213 使用外连接进行多表联合查询 229
实例214 完全外连接 230
实例215 以&开始的替换变量 231
实例216 字符型和日期型替代变量 233
实例217 以&&开始的替换变量 235
实例218 替代变量可以出现的地方 236
实例219 使用DEFINE定义替代变量 238
实例220 使用ACCEPT定义替代变量 239
实例221 如何使用ACCEPT命令的HIDE选项 241
实例222 参数和替代变量的永久设置 243
第8章 索引与视图 249
实例223 创建唯一索引 250
实例224 创建单列索引 252
实例225 创建复合索引 252
实例226 建立B树索引 253
实例227 建立位图索引 254
实例228 建立反向键索引 255
实例229 基于函数的索引 257
实例230 对索引执行合并操作 258
实例231 对索引执行进行重建 259
实例232 显示索引信息 259
实例233 删除索引 261
实例234 创建简单视图 263
实例235 操作简单视图 264
实例236 建立只读视图 266
实例237 复杂视图 267
实例238 连接视图 268
实例239 查看视图定义 269
实例240 修改视图定义 270
实例241 重新编译视图 270
实例242 创建基于视图的视图 271
实例243 通过视图插入数据 272
实例244 通过视图修改数据 273
实例245 通过视图删除数据 274
实例246 删除视图 274
实例247 创建同义词 275
实例248 生成序列号 276
实例249 修改和注销序列 278
实例250 通过序列对象为数据表添加数据 280
实例251 为Books_1表定义非空约束 281
实例252 为Books_1表定义行级主键约束BOOK_PK 283
实例253 使用ALTER TABLE…ADD语句为Books表添加主键约束 284
实例254 为会员表Members的QQ列定义唯一性约束 285
实例255 创建一个新表EMPLOYEES_TEMP,并为其添加一个与DEPARTMENTS表之间外键约束 287
实例256 使用CASCADE关键字创建外键约束以及实现数据的级联删除操作 288
实例257 在定义约束时禁用约束 290
实例258 禁用已经存在的约束 291
实例259 激活约束 292
实例260 删除约束 293
第9章 存储过程与事务处理 295
实例261 创建存储过程 296
实例262 调用存储过程 298
实例263 声明一个带有IN模式的存储过程 299
实例264 使用“指定名称传递”的方式向其中传递参数 300
实例265 使用“按位置传递”的方式向其中传递参数值 301
实例266 使用“混合方式传递”方式传递参数 301
实例267 创建带默认值的存储过程 302
实例268 调试存储过程 303
实例269 创建一个存储过程,定义两个out模式参数 304
实例270 在PL/SQL块中调用OUT模式的存储过程 305
实例271 使用EXEC命令执行OUT模式的存储过程 306
实例272 输出变量var_dname和var_loc的值 306
实例273 创建一个存储过程,定义“in out”参数 307
实例274 调用存储过程计算平方或平方根 308
实例275 创建计算emp表中指定部门平均工资的函数 309
实例276 计算部门编号为10的雇员平均工资并输出 310
实例277 删除函数 311
实例278 开始事务 312
实例279 提交事务 312
实例280 回滚事务 314
实例281 使用保存点(savepoint)回滚最后添加的记录 316
实例282 创建employees表的一个副本 317
实例283 dcl语句提交事务 318
实例284 利用AUTOCOMMIT进行事务控制 319
实例285 查询锁信息 320
实例286 监控锁 322
实例287 锁定数据表 323
实例288 死锁的产生及预防 325
实例289 创建程序包的包说明 326
实例290 创建程序包的主体 327
实例291 通过程序包调用存储过程和函数 329
实例292 删除包 330
第10章 触发器 331
实例293 创建语句触发器 332
实例294 语句触发器被触发 333
实例295 建立BEFORE语句触发器 336
实例296 在触发器中使用条件谓词 337
实例297 查看触发器 338
实例298 insert触发器 339
实例299 update触发器 340
实例300 delete触发器 341
实例301 创建instead of触发器 342
实例302 创建行级触发器 344
实例303 限制行触发器 346
实例304 向emp表和dept表中插入两行相关联数据 347
实例305 创建事件触发器 349
实例306 禁用/启用触发器 351
实例307 以表为单位禁用/启用触发器 352
实例308 将删除记录自动写入日志表 353
实例309 限制非工作时间操作数据 354
实例310 限制对保护数据的操作 355
实例311 使用DML触发器控制数据安全 356
实例312 使用行触发器实现数据审计 357
实例313 使用触发器实现数据完整性 358
实例314 使用触发器实现参照完整性 359
实例315 实现级联更新 360
实例316 级联删除 361
实例317 删除触发器 362
第11章 游标 363
实例318 声明游标 364
实例319 打开游标 365
实例320 提取游标 367
实例321 关闭游标 368
实例322 查看游标 368
实例323 定义游标变量 370
实例324 使用带参数的游标 371
实例325 视图中游标的使用 372
实例326 创建隐式游标 373
实例327 使用隐式游标和for语句 375
实例328 使用显式游标和for语句 376
实例329 带子查询的游标FOR循环 377
实例330 cursorfor游标的使用 378
实例331 提取整行数据 379
实例332 使用游标的%found属性判断是否检索到指定编号的雇员信息 380
实例333 判断游标是否打开 381
实例334 获取游标读取的记录行数 382
实例335 判断记录是否存在 383
实例336 使用游标更新数据 384
实例337 使用游标删除数据 385
实例338 使用游标读取员工信息 386
实例339 使用“too_many_rows”预定义异常捕获错误信息 387
实例340 错误编号异常 389
实例341 业务逻辑异常 391
第12章 控制文件和日志文件的使用 393
实例342 实现控制文件的多路复用 394
实例343 创建控制文件 397
实例344 查询控制文件信息 400
实例345 在system模式下向数据库中添加一个重做日志文件组 402
实例346 向数据库中添加一个组编号为5的重做日志文件组 403
实例347 更改重做日志的位置或名称 404
实例348 使用desc命令显示V$LOG数据字典视图的结构 405
实例349 删除重做日志文件 406
实例350 查看归档日志文件信息 408
实例351 建立本地归档目标 409
实例352 查看并修改数据库归档模式 410
第13章 分区技术 413
实例353 为商品零售表按照销售日期所在的季度创建4个分区 414
实例354 为Goods表创建HASH列分区(分区列为id) 415
实例355 在clients表中以province列为分区键创建列表分区 417
实例356 为表saleRecord创建Interval分区 418
实例357 在客户信息表clients中添加一个省份为“河北省”的表分区 419
实例358 并入表分区 420
实例359 创建本地索引分区 423
实例360 删除索引分区 425
实例361 重命名索引分区 427
第14章 用户、角色与权限控制 429
实例362 创建一个口令为mrsoft的mr用户 430
实例363 修改用户east在表空间上的磁盘限额为20m 431
实例364 修改用户east的新口令为123456 432
实例365 设置和解除用户锁定 433
实例366 更改用户名 433
实例367 删除一个用户 434
实例368 将系统权限授予用户 435
实例369 将对象权限授予用户 436
实例370 为用户east授予连接和开发系统权限 436
实例371 撤销east用户的resource系统权限 437
实例372 查询角色信息 438
实例373 创建designer角色 440
实例374 给角色授权 441
实例375 收回对象权限 442
实例376 回收系统权限 442
实例377 级联系统权限的授予 443
实例378 收回级联的系统权限 444
实例379 级联对象权限的授予 445
实例380 收回级联的对象权限 446
实例381 收回角色权限 446
实例382 显示角色的权限 447
实例383 启用/禁用角色 448
实例384 修改角色密码 448
实例385 查询HR用户被授予的系统 450
实例386 删除自定义角色 450
实例387 显示用户所有系统权限 451
实例388 对PROFILE文件的资源限制参数进行修改 451
实例389 显示指定PROFILE文件的资源配置信息 453
实例390 创建PROFILE文件实现自动锁定用户的账户 453
实例391 创建PROFILE文件实现设置密码的宽限期 455
实例392 删除已经指定给用户的PROFILE文件 456
第15章 Oracle性能优化 457
实例393 在select语句中避免使用“*” 458
实例394 使用truncate命令动态删除数据表 458
实例395 使用rowid高效删除重复记录 459
实例396 高效统计记录行数 460
实例397 尽量多使用commit 460
实例398 清空指定的数据表 461
实例399 用exists替代in谓词 461
实例400 修改Oracle数据库中SGA的大小 462
实例401 数据字典的“请求存取数”和“不命中数” 462
实例402 用索引提高检索效率 463
实例403 监视索引是否被使用 463
实例404 避免全表扫描 464
实例405 避免在索引列上用is null 465
实例406 驱动表的选择 466
实例407 查询当前Oracle实例的日志缓冲区大小 466
实例408 库缓存的“请求存取数” 467
实例409 数据字典高速缓存的不命中情况 467
实例410 显示当前分配给所有会话的内存数 468
实例411 显示曾经分配给所有会话的最大内存数 469
实例412 查询V$SYSSTAT表中的统计信息 469
实例413 查看和修改参数large_pool_size的值 470
实例414 查看所有服务器进程使用的内存的总量 470
实例415 查看会话信息及堆栈空间的大小 471
实例416 查询高速缓存在调用阶段的不命中数 471
第16章 数据的备份与恢复 473
实例417 使用rman工具连接注册数据库 474
实例418 非一致性和一致性备份整个数据库 476
实例419 备份tbsp_1和ts_1表空间 479
实例420 备份指定的数据文件、控制文件 482
实例421 对system表空间进行1级增量备份 485
实例422 对表空间example进行2级累积增量备份 486
实例423 在NOARCHIVELOG模式下备份和恢复数据库 486
实例424 恢复ARCHIVELOG模式下的数据库 490
实例425 实现基于时间的不完全恢复 492
实例426 使用RMAN工具备份表空间 497
实例427 使用RMAN工具还原备份的表空间 498
第17章 数据的导出和导入 501
实例428 导出scott方案中的dept和emp表 502
实例429 导出scott和hr方案中的所有对象 505
实例430 导出表空间tbsp_1 506
实例431 导出整个数据库 507
实例432 只导出对象数据 508
实例433 导出dept表中部门编号为10的数据 509
实例434 将表dept、emp导入到SYSTEM方案中 510
实例435 将scott方案中的所有对象导入到system方案中 511
实例536 将表空间中的所有对象都导入到当前数据库中 511
实例437 从fulldatabase.dmp文件中导入全数据库 512
实例438 移动表空间时导入test.dbf数据文件 513
实例439 从DMP文件中提取DDL语句写入SQL脚本 515
实例440 导出HR方案中的regions表 516
实例441 将regions表导入到SCOTT方案中 517
实例442 调用SQL Loader 518
实例443 加载TXT文件 519
实例444 导入excel数据 521
第18章 闪回技术的应用 523
实例444 将闪回恢复区的大小设置为4GB 524
实例445 启动闪回数据库 525
实例446 使用闪回数据库完成到某个SCN的恢复 527
实例447 使用flashback table命令恢复数据 528
实例448 闪回丢弃技术的应用 530
实例449 使用闪回丢弃还原已经drop掉的表 532
实例450 使用闪回表命令清除记录 534
实例451 其他闪回技术 535
第19章 Orale在Java开发中的应用 537
实例452 企业人事管理系统——主窗口设计 538
实例453 企业人事管理系统——人事管理模块设计 541
实例454 企业人事管理系统——待遇管理模块设计 549
实例455 企业人事管理系统——系统维护模块设计 555
第20章 Oracle在VC++开发中的应用 561
实例456 汽配管理系统——主窗口设计 562
实例457 汽配管理系统——系统登录模块设计 567
实例458 汽配管理系统——基础信息查询模块设计 573
实例459 汽配管理系统——商品信息模块设计 576
实例460 汽配管理系统——日常业务处理模块设计 581