《Oracle程序开发范例宝典》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:周佳星,高润岭,李根福编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115368911
  • 页数:592 页
图书介绍:本书精选了460个典型实例,所选实例覆盖了开发中的热点问题和关键问题。全书按实际应用进行分类,可以使读者在短时间内掌握更多有用的技术,快速提高编程水平。所选内容均来源于实际项目的开发,有的实例是作者开发实践的积累,有的实例来源于公司的开发项目,还有的来自读者的问题。通过对这些实例进行详细分析和讲解,可以让读者迅速掌握Oracle数据库的开发经验和技巧,迅速提高程序设计的综合水平。

第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