《精通Oracle 10g SQL和PL/SQL》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:王海亮等编著
  • 出 版 社:北京:中国水利水电出版社
  • 出版年份:2007
  • ISBN:7508443012
  • 页数:580 页
图书介绍:本书是专门为Oracle应用开发人员所提供的SQL和PL/SQL编程指南。通过学习本书,读者不仅可以掌握SQL和PL/SQL的基础知识,而且可以掌握PL/SQL的各种高级特征(记录类型、集合类型、对象类型、大对象类型)及常用的PL/SQL系统包。本书不仅适合于SQL和PL/SQL初学者,而且也适合于有经验的Oracle应用开发人员。

第一部分 SQL 1

第1章 开始使用Oracle Server 1

1.1 安装Oracle Database 10g 1

前言 1

1.2 数据库配置助手 4

1.3 Net Manager 12

1.3.1 配置监听程序 12

1.3.2 配置网络服务名 14

1.4 SQL*Plus 17

1.4.1 以命令行运行SQL*Plus 17

1.4.2 在Windows环境中运行SQL*Plus 17

1.5 iSQL*Plus 18

1.6 PL/SQL Developer 20

1.6.2 Program Window 21

1.6.1 Command Window 21

1.6.3 Test Window 22

1.7 小结 22

1.8 习题 23

第2章 SQL和PL/SQL综述 24

2.1 关系数据库 24

2.1.1 概念模型 25

2.1.2 数据模型 25

2.2 SQL综述 27

2.2.1 SQL语言特点 27

2.2.2 SQL语言分类 27

2.2.3 SQL语句编写规则 28

2.3 PL/SQL简介 29

2.4.1 表(Table) 31

2.4 Oracle数据库对象 31

2.4.2 索引(Index) 32

2.4.3 约束(Constraint) 32

2.4.4 视图(View) 33

2.4.5 序列(Sequence) 34

2.4.6 同义词(Synonym) 34

2.4.7 过程(Procedure) 34

2.4.8 函数(Function) 35

2.4.9 包(Package) 35

2.4.10 触发器(Trigger) 35

2.4.11 对象类型(Object Type) 36

2.5 小结 36

3.1 查询所有列 37

3.2 查询特定列 37

第3章 基本查询语句 37

3.3 查询日期列 38

3.4 排除重复行 41

3.5 使用算术运算符 42

3.6 处理NULL 42

3.7 连接字符串 44

3.8 使用列别名 45

3.9 小结 47

3.10 习题 47

第4章 限制数据 48

4.1 在WHERE子句中使用常规比较符 48

4.2 在WHERE子句中使用其他比较符 50

4.3 在WHERE子句中使用逻辑操作符 51

4.4 小结 53

4.5 习题 53

5.1 单列排序 54

第5章 排序数据 54

5.2 多列排序 57

5.3 小结 58

5.4 习题 58

第6章 SQL单行函数 59

6.1 数字函数 59

6.1.1 数字函数使用示例 59

6.1.2 数字函数清单 60

6.2 字符函数 61

6.2.1 字符函数使用示例 62

6.2.2 字符函数清单 63

6.3 日期时间函数 64

6.3.1 日期时间函数使用示例 64

6.3.2 日期时间函数清单 66

6.4 转换函数 67

6.4.1 转换函数使用示例 68

6.4.2 转换函数清单 69

6.5 正则表达式函数 71

6.6 对象函数 75

6.7 集合函数 75

6.8 其他函数 75

6.9 小结 77

6.10 习题 77

第7章 操纵数据 79

7.1 增加数据 79

7.1.1 增加单行数据 79

7.1.2 使用子查询复制数据 81

7.1.3 在INTO子句中使用子查询 82

7.1.4 使用多表插入 82

7.2.1 使用表达式更新数据 84

7.2 更新数据 84

7.2.2 使用子查询更新数据 85

7.2.3 使用MERGE语句 86

7.3 删除数据 87

7.4 控制事务 88

7.4.1 事务和锁 88

7.4.2 提交事务 89

7.4.3 回退事务 89

7.4.4 只读事务 90

7.4.5 顺序事务 91

7.5 小结 92

7.6 习题 92

第8章 连接查询 94

8.1 相等连接 94

8.2 不等连接 96

8.3 自连接 97

8.4 外连接 98

8.5 SQL:1999连接 99

8.6 小结 103

8.7 习题 103

第9章 数据分组 105

9.1 常用分组函数 105

9.2 使用GROUP BY和HAVING子句 107

9.3 使用ROLLUP和CUBE操作符 109

9.4 使用GROUPING SETS操作符 113

9.5 连接分组 114

9.6 小结 116

9.7 习题 117

10.1.2 多行子查询 118

10.1.1 单行子查询 118

10.1 单行和多行子查询 118

第10章 子查询 118

10.2 多列子查询 120

10.3 相关子查询 122

10.4 在其他SQL语句中引用子查询 124

10.4.1 在DDL语句中使用子查询 124

10.4.2 在FROM子句中使用子查询 124

10.4.3 标量子查询表达式 125

10.4.4 使用WITH子句重用子查询 126

10.5 小结 126

10.6 习题 126

第11章 其他复杂查询 127

11.1 使用集合操作符 127

11.2 层次查询 131

11.3 使用条件表达式 133

11.3.2 使用CASE表达式 134

11.3.1 使用DECODE函数 134

11.4 Flashback查询 136

11.5 小结 137

11.6 习题 138

第二部分 数据库对象 139

第12章 建立和管理表 139

12.1 表简介 139

12.1.1 设计表 139

12.1.2 行格式 140

12.1.3 常用数据类型 140

12.1.4 伪列ROWID和ROWNUM 142

12.2 建表 143

12.3 修改表 145

12.4.1 截断表 146

12.4 截断和删除表 146

12.4.3 恢复被删除表 147

12.5 显示表信息 147

12.4.2 删除表 147

12.6 小结 148

12.7 习题 149

第13章 使用约束 150

13.1 约束简介 150

13.2 定义约束 153

13.3 维护约束 156

13.3.1 增加约束 156

13.3.2 修改约束名 157

13.3.3 删除约束 158

13.3.4 禁止约束 158

13.4 显示约束信息 159

13.3.5 激活约束 159

13.5 小结 160

13.6 习题 160

第14章 使用视图 162

14.1 视图简介 162

14.1.1 视图的作用 162

14.1.2 视图分类 163

14.1.3 在视图上执行DML操作的原则 163

14.2 建立视图 163

14.2.1 建立简单视图 164

14.2.2 建立复杂视图 164

14.2.3 建立连接视图 165

14.2.4 建立只读视图 165

14.2.6 在建立视图时定义列别名 166

14.2.5 在建立视图时定义CHECK约束 166

14.3 维护视图 167

14.3.1 修改视图定义 167

14.3.2 重新编译视图 167

14.3.3 删除视图 167

14.4 显示视图信息 168

14.5 小结 168

14.6 习题 169

第15章 使用其他对象 170

15.1 使用索引 170

15.1.1 索引的分类 170

15.1.2 使用索引的指导方针 171

15.1.3 建立索引 171

15.1.5 显示索引信息 173

15.1.4 维护索引 173

15.2 使用序列 174

15.2.1 建立序列 175

15.2.2 维护序列 176

15.2.3 显示序列信息 177

15.3 使用同义词 177

15.3.1 建立同义词 178

15.3.2 删除同义词 178

15.3.3 显示同义词信息 179

15.4 小结 179

15.5 习题 180

第三部分 PL/SQL 181

第16章 PL/SQL基础 181

16.1 PL/SQL块简介 181

16.1.1 PL/SQL块结构 181

16.1.2 PL/SQL块分类 183

16.2 定义并使用变量 186

16.2.1 标量(Scalar)变量 186

16.2.2 复合(Composite)变量 189

16.2.3 参照(Reference)变量 191

16.2.4 LOB(Large Object)变量 193

16.2.5 使用子类型定义变量 193

16.2.6 非PL/SQL变量 194

16.3 编写PL/SQL代码 195

16.3.1 PL/SQL词汇单元 195

16.3.2 PL/SQL代码编写规则 198

16.4 小结 199

16.5 习题 200

17.1.1 使用标量变量接收数据 202

17.1 检索单行数据 202

第17章 访问Oracle 202

17.1.2 使用记录变量接收数据 203

17.1.3 嵌入SELECT语句注意事项 203

17.2 操纵数据 205

17.2.1 插入数据 205

17.2.2 更新数据 206

17.2.3 删除数据 206

17.2.4 SQL游标 207

17.3 使用事务控制语句 209

17.4 小结 210

17.5 习题 210

第18章 编写控制结构 212

18.1 条件分支语句 212

18.1.2 二重条件分支 213

18.1.1 简单条件判断 213

18.1.3 多重条件分支 214

18.2 CASE语句 215

18.3 循环语句 217

18.3.1 基本循环 217

18.3.2 WHILE循环 218

18.3.3 FOR循环 218

18.3.4 嵌套循环和标号 219

18.4 顺序控制语句 219

18.5 小结 221

18.6 习题 221

第19章 使用复合数据类型 223

19.1 PL/SQL记录 223

19.1.1 定义PL/SQL记录 223

19.1.2 使用PL/SQL记录 224

19.2 PL/SQL集合 227

19.2.1 PL/SQL表 227

19.2.2 嵌套表 228

19.2.3 变长数组(VARRAY) 231

19.2.4 PL/SQL记录表 232

19.3 PL/SQL集合方法 232

19.4 批量绑定 237

19.4.1 传统循环和批量绑定 237

19.4.2 使用BULK COLLECT子句 239

19.4.3 使用FORALL语句 240

19.4.4 使用INDICES OF和VALUES OF子句 242

19.5 PL/SQL集合高级特性 243

19.5.1 集合赋值 243

19.5.2 集合比较 246

19.5.3 集合嵌套 249

19.6 小结 252

19.7 习题 252

第20章 使用游标 253

20.1 显式游标 253

20.1.1 显式游标属性 253

20.1.2 使用显式游标 254

20.1.3 游标FOR循环 256

20.1.4 参数游标 258

20.1.5 更新或删除游标行 258

20.2 游标变量 261

20.3 使用批量提取 263

20.4 使用CURSOR表达式 264

20.6 习题 265

20.5 小结 265

第21章 异常处理 267

21.1 异常简介 267

21.2 捕捉并处理异常 268

21.2.1 预定义异常 268

21.2.2 非预定义异常 270

21.2.3 自定义异常 271

21.3 使用异常处理函数 273

21.4 使用编译警告 274

21.5 小结 276

21.6 习题 276

第22章 本地动态SQL 277

22.1 动态SQL简介 277

22.2 使用EXECUTE IMMEDIATE语句 278

22.2.1 处理DDL和DCL语句 278

22.2.2 处理DML语句 279

22.2.3 处理单行查询 281

22.3 处理多行查询 282

22.4 在动态SQL中使用批量绑定 283

22.5 小结 286

22.6 习题 286

第23章 PL/SQL过程 287

23.1 使用过程参数 287

23.2 调用过程 289

23.3 过程开发示例 290

23.3.1 为过程参数指定默认值 290

23.3.2 使用异常处理 291

23.3.3 自定义错误消息 292

23.3.4 使用记录变量作为输入参数 293

23.3.5 使用记录变量作为输出参数 294

23.3.6 使用集合变量作为输入参数 295

23.3.7 使用集合变量作为输出参数 296

23.4 维护过程 297

23.5 小结 298

23.6 习题 298

第24章 PL/SQL函数 299

24.1 使用函数参数 299

24.2 调用函数 301

24.3 函数开发示例 303

24.3.1 使用异常处理 303

24.3.2 使用记录类型作为返回类型 304

24.3.3 使用集合类型作为返回类型 305

24.4 管理函数 306

24.6 习题 307

24.5 小结 307

第25章 PL/SQL包 308

25.1 包组件 308

25.1.1 建立包规范 308

25.1.2 建立包体 309

25.2 调用包组件 310

25.3 包开发示例 311

25.3.1 使用记录类型 311

25.3.2 使用集合类型 312

25.3.3 使用重载 314

25.3.4 使用构造过程 315

25.3.5 使用纯度级别 317

25.4 维护包 318

25.6 习题 319

25.5 小结 319

第26章 触发器 321

26.1 DML触发器 321

26.1.1 语句触发器 321

26.1.2 行触发器 323

26.1.3 DML触发器开发示例 325

26.2 INSTEAD OF触发器 328

26.3 事件触发器 329

26.3.1 事件属性函数 329

26.3.2 系统事件触发器 330

26.3.3 客户事件触发器 331

26.4 维护触发器 333

26.5 小结 334

26.6 习题 334

第27章 使用对象类型 336

27.1 对象类型简介 336

27.2 建立对象类型 337

27.3 使用对象方法 339

27.4 使用对象表 341

27.4.1 使用行对象和列对象 342

27.4.2 在对象表上引用对象方法 343

27.5 对象类型开发示例 345

27.5.1 嵌套对象类型 345

27.5.2 对象类型继承 349

27.5.3 参照对象类型 351

27.6 维护对象类型 353

27.7 小结 356

27.8 习题 356

第四部分 PL/SQL系统包 358

第28章 使用大对象 358

28.1 LOB简介 358

28.2 使用CLOB 359

28.3 使用BFILE 362

28.4 使用BLOB 363

28.5 DBMS_LOB包 365

28.6 小结 371

第29章 读写OS文件 372

29.1 写入OS文件 372

29.2 读取OS文件 373

29.3 UTL_FILE包 374

29.4 小结 378

第30章 DBMS_SQL动态SQL 379

30.1 实现动态SQL 379

30.2 DBMS_SQL 383

30.3 小结 389

31.1 管理表统计 390

第31章 管理统计 390

31.2 管理索引统计 391

31.3 管理直方图统计 392

31.4 管理方案和数据库统计 392

31.5 管理系统统计 393

31.6 DBMS_STATS包 394

31.7 小结 411

第32章 使用数据库资源管理器 412

32.1 实现资源管理 412

32.2 DBMS_RESOURCE_MANAGER_PRIVS包 415

32.3 DBMS_RESOURCE_MANAGER包 416

32.4 小结 421

第33章 数据加密和解密 422

33.1 实现数据加密和解密 422

33.2 DBMS_OBFUSCATION_TOOLKIT 424

33.3 DBMS_CRYPTO 426

33.4 小结 429

第34章 开发Web应用 430

34.1 配置数据库访问描述符 430

34.2 Web应用开发示例 432

34.3 HTP和HTF 436

34.4 OWA_COOKIE 457

34.5 OWA_IMAGE 457

34.6 OWA_OPT_LOCK 458

34.7 OWA_PATTERN 459

34.8 OWA_SEC 461

34.9 OWA_TEXT 462

34.10 OWA_UTIL 463

34.11 小结 467

第35章 使用调度程序 468

35.1 使用作业 468

35.2 使用程序 469

35.3 使用时间表 470

35.4 使用作业类 471

35.5 DBMS_SCHEDULE包 472

35.6 小结 482

第36章 使用Flashback 483

36.1 实现Flashback 483

36.2 DBMS_FLASHBACK 484

36.3 小结 485

第37章 使用重定义联机表 486

37.1 重定义联机表 486

37.2 DBMS_REDEFINITION 488

37.3 小结 490

第38章 修正损坏块 491

38.1 实现损坏块修正 491

38.2 DBMS_REPAIR 493

38.3 小结 495

第39章 使用日志挖掘 496

39.1 实现日志挖掘 496

39.2 DBMS_LOGMNR D包 498

39.3 DBMS_LOGMNR包 498

39.4 小结 500

第40章 使用管道 501

40.1 实现管道 501

40.2 DBMS_PIPE包 503

40.3 小结 505

41.1 实现精细访问控制 506

第41章 使用精细访问控制 506

41.2 DBMS_RLS 510

41.3 小结 513

第42章 使用精细审计 514

42.1 实现精细审计 514

42.2 DBMS_FGA包 515

42.3 小结 516

第43章 使用预警事件 517

43.1 实现预警事件 517

43.2 DBMS_ALERT 518

43.3 小结 519

第44章 转换ROWID 520

44.1 实现ROWID转换 520

44.2 DBMS ROWID 521

44.3 小结 523

第45章 其他常用包 524

45.1 DBMS_DDL 524

45.2 DBMS_OUTPUT 525

45.3 DBMS_RANDOM 528

45.4 DBMS_SESSION 530

45.5 DBMS_SHARED_POOL 533

45.6 DBMS_SPACE 534

45.7 DBMS_SPACE_ADMIN 539

45.8 DBMS_TRANSACTION 542

45.9 DBMS_TTS 544

45.10 DBMS_UTILITY 545

45.11 UTL_INADDR 550

附录A 习题答案 552

附录B SQL*Plus命令 570