《Oracle PL/SQL完全自学手册》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:宫生文,肖建编著
  • 出 版 社:北京:中国铁道出版社
  • 出版年份:2010
  • ISBN:9787113111953
  • 页数:394 页
图书介绍:本书以Oracle中PL/SQL的使用为主线,由浅入深地介绍了Oracle 11g数据库开发和管理方面(主要是安全性管理)的基础知识,内容包括各种主要数据库对象的操作、常见事务管理等。全书以一个非常贴近现实、但经过适当简化的企业仓储管理系统的数据库为例,循序渐进地讲述如何在实际应用中完成各种数据库开发和管理任务,最后实现一个完整的数据库应用。本书可以让读者对Oracle 11g中的SQL开发有整体性的认识,而且能够通过大量具体的实例演练培养实际动手和解决问题的能力。

第1章 初识Oracle 11g 1

1.1 关系型数据库简介 1

1.1.1 关系型数据库的产生 1

1.1.2 关系型数据库的特点 2

1.2 关系型数据库的范式 4

1.2.1 第一范式(1NF) 4

1.2.2 第二范式(2NF) 5

1.2.3 第三范式(3NF) 5

1.2.4 Boyce-Codd范式(BCNF) 5

1.3 关系型数据库管理系统 6

1.4 Oracle 11g服务器结构 6

1.4.1 数据库 7

1.4.2 表空间、数据文件 7

1.4.3 数据库实例 8

1.5 Oracle 11g新特性 8

1.5.1 数据库管理部分 9

1.5.2 PL/SQL部分 10

1.5.3 其他部分 11

1.6 Oracle 11g数据库实例 11

1.6.1 Oracle的安装 12

1.6.2 登录Oracle 11g 12

1.7 本书使用的数据库简介(仓储管理系统) 15

1.7.1 基础数据相关表 15

1.7.2 物料入库相关表 16

1.7.3 物料出库相关表 18

1.7.4 库存操作相关表 20

1.7.5 报表查询相关表 21

1.8 本章小结 23

第2章 初识PL/SQL 24

2.1 PL/SQL简介 24

2.1.1 SQL发展历史 24

2.1.2 SQL语言的优点 24

2.1.3 PL/SQL与ANSI-SQL的关系 25

2.1.4 PL/SQL的优缺点 26

2.2 学习 PL/SQL前的准备 27

2.3 PL/SQL基本句法 28

2.3.1 大小写 28

2.3.2 分隔符 28

2.3.3 引用字符串 29

2.3.4 括号 29

2.4 PL/SQL数据类型 30

2.4.1 标量类型 30

2.4.2 复合类型 34

2.4.3 引用类型 38

2.4.4 LOB类型 38

2.5 PL/SQL基本结构 39

2.6 常量和变量 39

2.6.1 常量 40

2.6.2 变量 40

2.7 表达式和运算符 41

2.7.1 数值表达式 41

2.7.2 字符表达式 41

2.7.3 关系表达式 42

2.7.4 逻辑表达式 42

2.7.5 集合运算符 42

2.7.6 行运算符 43

2.8 流程控制 43

2.8.1 IF…THEN语句 44

2.8.2 IF…THEN…ELSE语句 44

2.8.3 IF…THEN…ELSIF语句 45

2.8.4 CASE语句 45

2.8.5 搜寻式CASE语句 47

2.8.6 LOOP语句 48

2.8.7 WHILE…LOOP语句 50

2.8.8 FOR…LOOP语句 50

2.8.9 GOTO语句 54

2.8.10 NULL语句 56

2.9 PL/SQL常用语句简介 57

2.9.1 DDL数据定义语句 57

2.9.2 DQL数据查询语句 59

2.9.3 DML数据操作语句 60

2.9.4 DCL数据控制语句 61

2.9.5 TCL事务控制语句 62

2.10 PL/SQL功能特性简介 63

2.10.1 游标 63

2.10.2 过程和函数 64

2.10.3 包 66

2.10.4 集合 66

2.10.5 错误处理 67

2.10.6 Oracle 11g中的新特性 72

2.11 本章小结 74

第3章 PL/SQL常用开发工具 75

3.1 SQL*Plus 75

3.1.1 连接Oracle数据库 75

3.1.2 配置SQL*Plus 76

3.1.3 使用SQL*Plus 79

3.1.4 SQL*Plus常用命令 81

3.2 SQL Developer 84

3.2.1 SQL Developer简介 85

3.2.2 连接Oracle数据库 86

3.3 使用SQL Developer 88

3.3.1 运行SQL语句 88

3.3.2 管理表 89

3.3.3 管理序列 90

3.3.4 管理索引 91

3.3.5 管理视图 91

3.3.6 管理触发器 92

3.3.7 管理过程、函数和包 94

3.4 本章小结 95

第4章 数据表的基本操作 96

4.1 数据表基本操作 96

4.2 创建数据表 96

4.3 修改数据表 97

4.3.1 增加列 97

4.3.2 修改列 98

4.3.3 删除数据列 98

4.3.4 更改表名 99

4.4 删除数据表 99

4.5 表的可视化操作 100

4.5.1 创建表 100

4.5.2 编辑表 101

4.5.3 删除表 102

4.6 约束 102

4.6.1 非空约束 103

4.6.2 唯一约束 103

4.6.3 主键约束 105

4.6.4 外键约束 105

4.6.5 条件约束 106

4.6.6 约束的维护 107

4.6.7 指定列默认值 107

4.7 序列的操作 108

4.7.1 创建序列 108

4.7.2 使用序列 109

4.7.3 修改序列 111

4.7.4 删除序列 112

4.8 序列的可视化操作 113

4.8.1 创建序列 114

4.8.2 编辑序列 115

4.8.3 删除序列 115

4.9 索引的种类 116

4.9.1 B-Tree索引(B-Tree Index) 116

4.9.2 基于函数的索引(Function Based Index) 116

4.9.3 反转键索引(Reverse Key Index) 117

4.9.4 位图索引(Bitmap Index) 117

4.9.5 位图连接索引(Bitmap Join Index) 117

4.9.6 压缩索引(Compress Index) 118

4.9.7 降序索引(Descending Index) 118

4.9.8 分区索引(Partitioned Index) 118

4.9.9 索引组织表(Index Organized Table,IOT) 118

4.9.10 簇索引(Cluster Index) 118

4.9.11 域索引(Domain Index) 118

4.9.12 隐藏索引(Invisible Index) 119

4.9.13 虚拟索引(Virtual Index) 119

4.9.14 其他的索引类型 119

4.10 创建索引 119

4.11 使用索引 120

4.12 管理索引 122

4.13 索引的可视化操作 123

4.13.1 创建索引 123

4.13.2 编辑索引 124

4.13.3 删除索引 125

4.14 元数据管理 125

4.14.1 查询数据表信息 125

4.14.2 查询列信息 127

4.14.3 查询约束信息 127

4.14.4 查询序列信息 128

4.14.5 查询索引信息 129

4.15 本章小结 130

第5章 数据的增、删、改 131

5.1 增加数据 131

5.1.1 指定列名的插入 131

5.1.2 省略列名的插入 132

5.1.3 完整性约束问题 133

5.1.4 特殊的插入语句 133

5.2 修改数据 135

5.2.1 简单更新语句 135

5.2.2 使用子查询更新 135

5.2.3 使用MERGE更新 137

5.3 删除数据 139

5.3.1 删除特定行 139

5.3.2 删除所有行 140

5.3.3 删除重复行 140

5.3.4 使用TRUNCATE截断表 143

5.4 本章小结 144

第6章 数据的基本查询 145

6.1 简单查询 146

6.1.1 SELECT语句 146

6.1.2 WHERE子句 147

6.1.3 关键字的使用 148

6.1.4 使用值表达式 149

6.1.5 排序查询结果 150

6.2 常用内置函数 151

6.2.1 数值操作函数 151

6.2.2 字符串操作函数 153

6.2.3 日期时间操作函数 155

6.2.4 转换操作函数 157

6.2.5 辅助函数 160

6.3 分组和聚合查询结果 161

6.3.1 用GROUP BY子句分组 161

6.3.2 使用聚合函数 162

6.3.3 用HAVING子句过滤组 163

6.4 谓词查询 164

6.4.1 范围查询 164

6.4.2 空值判断 165

6.4.3 模糊查询 166

6.4.4 IN谓词 167

6.4.5 EXISTS谓词 167

6.4.6 定量谓词 168

6.5 本章小结 170

第7章 数据的复杂查询 171

7.1 子查询 171

7.1.1 标量子查询 171

7.1.2 比较子查询 173

7.1.3 相关子查询 174

7.1.4 嵌套子查询 175

7.2 用子查询操作数据 176

7.2.1 用子查询增加数据 176

7.2.2 用子查询修改数据 177

7.2.3 用子查询删除数据 178

7.3 集合操作 178

7.3.1 并集运算 179

7.3.2 交集运算 180

7.3.3 差集运算 181

7.4 多表连接 182

7.4.1 基本连接 183

7.4.2 交叉连接 184

7.4.3 自连接 185

7.4.4 自然连接 186

7.5 条件连接(多表连接) 187

7.5.1 内连接 187

7.5.2 外连接 188

7.6 层次化查询 191

7.6.1 层次化数据 191

7.6.2 递归查询 192

7.6.3 数据的层次 194

7.6.4 使用子查询 195

7.6.5 自下而上遍历树 196

7.6.6 节点和分支的裁剪 197

7.7 本章小结 198

第8章 视图 199

8.1 视图简介 199

8.1.1 视图的优点 199

8.1.2 使用视图的注意事项 201

8.2 创建视图 201

8.2.1 单表视图 201

8.2.2 多表视图 203

8.2.3 可更新视图 204

8.2.4 内联视图 206

8.2.5 嵌套视图 209

8.3 使用视图 209

8.3.1 插入数据 209

8.3.2 修改数据 210

8.3.3 删除数据 210

8.3.4 删除视图 211

8.4 视图的可视化操作 211

8.4.1 创建视图 211

8.4.2 编辑视图 212

8.4.3 删除视图 213

8.5 本章小结 214

第9章 触发器 215

9.1 触发器的作用 215

9.2 Oracle触发器种类 216

9.2.1 DML触发器 216

9.2.2 替代触发器 216

9.2.3 事件触发器 217

9.3 DML触发器 217

9.3.1 基本语法 217

9.3.2 行级触发器 219

9.3.3 限定条件的行级触发器 221

9.3.4 级联修改触发器 224

9.3.5 语句级触发器 226

9.3.6 利用触发器进行数据同步 227

9.4 替代触发器 228

9.5 事件触发器 229

9.5.1 基本语法 229

9.5.2 数据库事件触发器 230

9.5.3 DDL事件触发器 232

9.5.4 事件属性函数 232

9.6 管理触发器 234

9.6.1 查看触发器 234

9.6.2 禁用/启用触发器 235

9.6.3 删除触发器 235

9.7 触发器的可视化操作 236

9.7.1 创建触发器 236

9.7.2 编辑触发器 237

9.7.3 删除触发器 238

9.8 本章小结 238

第10章 游标 239

10.1 游标简介 239

10.2 声明游标 239

10.3 打开/关闭游标 240

10.3.1 打开游标 240

10.3.2 传递游标参数 241

10.3.3 从游标中取值 241

10.3.4 批量取得游标中的数据 243

10.3.5 关闭游标 243

10.3.6 一个完整的示例 243

10.4 在游标中使用子查询 244

10.5 游标属性 244

10.5.1 %FOUND属性 245

10.5.2 %ISOPEN属性 245

10.5.3 %NOTFOUND属性 245

10.5.4 %ROWCOUNT属性 246

10.6 用游标进行循环 247

10.6.1 使用子查询代替显式游标 247

10.6.2 在游标FOR循环中为表达式定义别名 248

10.6.3 为游标FOR循环传递参数 248

10.7 游标变量 249

10.7.1 游标变量简介 249

10.7.2 游标变量的定义和声明 249

10.8 控制游标变量 251

10.8.1 打开游标变量 251

10.8.2 从游标变量中取值 253

10.8.3 关闭游标变量 254

10.9 使用游标变量作为主变量 254

10.10 游标变量的限制 256

10.11 游标表达式 256

10.12 本章小结 258

第11章 数据库事务 259

11.1 事务简介 259

11.2 操作事务 259

11.3 设置事务属性 260

11.3.1 访问级别 260

11.3.2 隔离级别 262

11.4 提交事务 263

11.5 回滚事务 264

11.5.1 设置事务保存点 265

11.5.2 回滚事务事例 266

11.5.3 终止事务 267

11.6 与SQL Server事务的区别 267

11.6.1 事务设置及类型的区别 267

11.6.2 事务隔离级别 268

11.6.3 DDL语句对事务的影响 269

11.6.4 用户断开数据库连接对事务的影响 269

11.7 锁 270

11.7.1 使用FOR UPDATE 270

11.7.2 使用LOCK TABLE 271

11.7.3 提交后的数据取得 271

11.8 时间戳 272

11.9 事务日志 275

11.10 本章小结 276

第12章 集合 277

12.1 联合数组 277

12.1.1 创建联合数组 277

12.1.2 填充联合数组 278

12.1.3 调用联合数组 278

12.2 嵌套表 279

12.2.1 创建嵌套表 280

12.2.2 重新指定元素 280

12.2.3 元素序列 281

12.2.4 非空约束 282

12.2.5 在表列中使用嵌套表 283

12.3 变长数组 284

12.3.1 创建变长数组 285

12.3.2 在表列中使用变长数组 286

12.4 操作集合 287

12.4.1 查询集合信息 287

12.4.2 集合类型转换 288

12.5 集合的属性 289

12.5.1 COUNT属性 290

12.5.2 EXISTS属性 290

12.5.3 FIRST和LAST属性 291

12.5.4 LIMIT属性 291

12.5.5 NEXT和PRIOR属性 291

12.6 集合方法 292

12.6.1 DELETE方法 292

12.6.2 EXTEND方法 293

12.6.3 TRIM方法 294

12.7 集合操作符 294

12.7.1 SET操作符 295

12.7.2 MULTISET UNION操作符 296

12.7.3 MULTISET UNION DISTINCT操作符 297

12.7.4 MULTISET INTERSECT操作符 297

12.7.5 MULTISET EXCEPT操作符 298

12.8 多级集合 299

12.9 本章小结 302

第13章 过程、函数和包 303

13.1 过程 303

13.1.1 创建过程的语法 303

13.1.2 与SQL Server存储过程的区别 305

13.2 创建过程 306

13.2.1 创建不带任何参数的过程 306

13.2.2 创建带有IN参数的过程 307

13.2.3 创建带有OUT参数的过程 309

13.2.4 创建带有IN OUT参数的过程 311

13.2.5 参数传递方式 312

13.2.6 与SQL Server存储过程的对比 314

13.3 管理过程 318

13.3.1 查询已创建的过程 318

13.3.2 查看过程源码 319

13.3.3 使用NOCOPY编译提示传递大型数据结构 319

13.3.4 重编译过程 321

13.3.5 删除过程 322

13.4 函数 322

13.4.1 创建函数的语法 323

13.4.2 与SQLServer函数的区别 323

13.5 创建函数 324

13.5.1 创建不带任何参数的函数 324

13.5.2 创建带有IN参数的函数 325

13.5.3 创建带有OUT参数的函数 326

13.5.4 创建带有IN OUT参数的函数 327

13.5.5 参数传递方式 328

13.5.6 函数调用限制 329

13.5.7 与SQL Server函数的对比 329

13.6 管理函数 331

13.6.1 查询已创建的函数 331

13.6.2 查看函数源码 331

13.6.3 重编译函数 332

13.6.4 删除函数 332

13.7 包 332

13.7.1 创建包的语法 332

13.7.2 包的优点 333

13.8 创建包 334

13.8.1 包规范 334

13.8.2 包体 335

13.8.3 调用包组件 337

13.9 管理包 337

13.9.1 查询已创建的包 338

13.9.2 查看包源码 338

13.9.3 重编译包 338

13.9.4 删除包 339

13.10 系统内置包 339

13.11 本章小结 343

第14章 安全管理 344

14.1 安全性与访问控制 344

14.1.1 访问控制与其他安全措施之间的关系 344

14.1.2 访问控制的三要素 345

14.1.3 访问控制矩阵与授权关系表 345

14.1.4 自主访问控制模型 346

14.1.5 强制访问控制模型 347

14.1.6 基于角色的访问控制模型 348

14.2 用户管理 349

14.2.1 身份认证方式 349

14.2.2 创建用户 350

14.2.3 修改用户 352

14.2.4 用户元数据 353

14.2.5 删除用户 354

14.2.6 可视化操作用户 354

14.3 权限管理 356

14.3.1 权限简介 357

14.3.2 授予/撤销系统权限 358

14.3.3 授予/撤销对象权限 360

14.4 角色管理 364

14.4.1 预置系统角色 365

14.4.2 创建角色 366

14.4.3 授权/撤销角色 367

14.4.4 删除角色 369

14.4.5 角色与权限的元数据 370

14.4.6 可视化操作角色 370

14.5 审计 372

14.5.1 审计简介 373

14.5.2 审计分类 373

14.5.3 启用审计 374

14.5.4 执行审计 374

14.5.5 查询审计信息 377

14.6 本章小结 377

第15章 PL/SQL性能优化 378

15.1 查询操作优化 378

15.1.1 使用CASE表达式替代多个查询 378

15.1.2 避免使用“*” 379

15.1.3 查询表顺序的影响 379

15.1.4 使用表的别名(Alias) 379

15.1.5 用WHERE子句替换HAVING子句 380

15.1.6 减少对表的查询 381

15.1.7 WHERE后面的条件顺序影响 381

15.1.8 IN操作符 382

15.1.9 NOT IN操作符 382

15.1.10 〈〉或!=操作符(不等于) 382

15.1.11 IS NULL或IS NOT NULL操作(判断字段是否为空) 382

15.1.12 〉和〈操作符(大于和小于操作符) 383

15.1.13 LIKE操作符 383

15.1.14 UNION操作符 383

15.1.15 用表连接替换EXISTS 384

15.1.16 使用DECODE函数 384

15.1.17 整合无关联的数据库访问 385

15.2 其他操作优化 386

15.2.1 删除重复记录 386

15.2.2 用TRUNCATE替代DELETE 386

15.2.3 尽量多使用COMMIT 387

15.3 使用绑定变量 387

15.4 利用索引 388

15.4.1 使用索引的基本原则 388

15.4.2 监视索引使用情况 390

15.4.3 不能利用索引的情况 390

15.5 SQL性能分析工具 391

15.5.1 执行计划 392

15.5.2 SQL性能分析器 392

15.5.3 数据库重放和SQL重演 393

15.5.4 SQL调优顾问 393

15.6 本章小结 394