《Oracle SQL & PL/SQL基础教程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:娄建安,余建华编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2005
  • ISBN:7030159802
  • 页数:463 页
图书介绍:本书是高等职业技术教育中IT类专业学生获取学历证书和国际著名软件厂商OracleWDP项目相关证书的学习与实践用教材。本教材依据课程教学大纲编写而成。.全书共分26章,由浅入深地介绍了OracleSQL&PL/SQL,内容分为两大部分。第一部分1~13章为OracleSQL,介绍了SQL*Plus的基本使用、基本查询语句、单行函数、多表查询、组函数和分组统计、子查询、替代变量、数据操作、创建和管理表、约束、视图、序列、索引、同义词、用户访问控制。第二部分14~26章为PL/SQL,介绍了PL/SQL基础、变量、PL/SQL中的SQL、控制结构、复合数据类型、游标、异常、过程、函数、包、触发器、大型对象、实用工具包。..本书不仅覆盖了OCP(OracleCertifiedProfessional)考试的几乎全部内容,而且把重点放在了实际能力的训练上。全书以任务驱动的方式讲解实例,所有实例都是围绕Oracle自带的数据表精心编写,具有很强的代表性,并经Oracle9.0.2运行检测通过。本书还为每个章节设计了针对性很强的实验任务,编排了课后习题,以帮助读者通过实践巩固所学的内容。本书可作为

第1章 简单查询语句 1

1.1 基本查询语句 1

1.1.1 选择数据列 3

1.1.2 列标题和数据的默认显示格式 3

1.1.3 算术表达式 4

1.1.4 列的别名 6

1.1.5 连接操作符 6

1.1.6 原义字符串 7

1.1.7 消除重复行 8

1.1.8 NULL的操作 8

1.2 SQL和SQL*Plus 9

1.2.1 登录到SQL*PLUS 11

1.2.2 显示表结构 12

1.2.3 SQL*PLUS的编辑命令 12

1.2.4 SQL*PLUS的文件命令 14

小结 14

实验1 SQL*PLUS的使用和基本SELECT语句 15

思考练习题 15

第2章 限定查询和排序 17

2.1 限制所选择的数据行 17

2.1.1 比较运算符 18

2.1.2 字符串和日期 19

2.1.3 BETWEEN...AND...运算符 19

2.1.4 IN运算符 20

2.1.5 LIKE运算符 21

2.1.6 空值运算符 22

2.1.7 逻辑运算符 23

2.1.8 运算符优先规则 24

2.2 ORDER BY子句 26

小结 28

实验2 使用WHERE和ORDER BY子句 28

思考练习题 29

第3章 单行函数 30

3.1 SQL函数 30

3.2 单行函数 30

3.3 字符函数 31

3.4 数值函数 33

3.5 日期函数 35

3.5.1 日期的处理 35

3.5.2 RR日期格式 36

3.5.3 日期函数 37

3.6 数据类型的隐式转换 38

3.7 数据类型的显式转换 39

3.7.1 TO CHAR用于日期型 39

3.7.2 TO CHAR用于数值型 42

3.7.3 TO NUMBER 43

3.7.4 TO DATE 44

3.8 通用函数 44

3.8.1 NVL函数 44

3.8.2 DECODE函数 45

3.9 单行函数的嵌套 47

小结 48

实验3 在SELECT语句中使用单行函数 48

思考练习题 49

第4章 多表查询 50

4.1 何谓连接 50

4.2 笛卡尔积 51

4.3 等值连接 52

4.4 连接中使用表的别名 53

4.5 多于两个表的连接 54

4.6 非等值连接 55

4.7 外部连接 56

4.8 自身连接 58

4.9 SQL:1999语法的连接 59

4.9.1 创建交叉连接 59

4.9.2 自然连接 60

4.9.3 使用USING子句创建连接 61

4.9.4 使用ON子句创建连接 62

4.9.5 左外连接 64

4.9.6 右外连接 65

4.9.7 全外连接 65

小结 66

实验4 多表查询 67

思考练习题 68

第5章 组函数和分组统计 69

5.1 组函数 69

5.1.1 AVG和SUM 70

5.1.2 MAX和MIN 70

5.1.3 COUNT 71

5.1.4 组函数中使用NVL函数 72

5.2 用GROUP BY创建数据组 72

5.3 使用组函数的非法查询 75

5.4 HAVING子句的使用 76

5.5 组函数的嵌套 77

小结 77

实验5 组函数和分组统计 78

思考练习题 79

第6章 子查询 80

6.1 子查询 80

6.2 单行子查询 82

6.2.1 WHERE子句中使用单行子查询 82

6.2.2 单行子查询中使用组函数 83

6.2.3 HAVING子句中使用单行子查询 83

6.2.4 含单行子查询的复合查询容易出现的问题 84

6.3 多行子查询 85

6.3.1 使用IN运算符的多行子查询 85

6.3.2 使用ANY运算符的多行子查询 86

6.3.3 使用ALL运算符的多行子查询 87

6.4 多列子查询 87

6.4.1 成对比较多列子查询 88

6.4.2 非成对比较多列子查询 88

6.5 子查询中的空值 89

6.6 FROM子句中使用子查询 90

小结 90

实验6 子查询 91

思考练习题 92

第7章 替代变量和SQL*Plus环境 93

7.1 替代变量 93

7.2 使用&替代变量 94

7.3 字符和日期的替代变量 95

7.4 在运行时刻指定列、表达式及文本 96

7.5 使用&&替代变量 97

7.6 定义用户变量 98

7.6.1 ACCEPT 98

7.6.2 DEFINE和UNDIFINE 100

7.7 定制SQL*Plus环境 101

7.8 SQL*Plus格式化命令 103

7.8.1 COLUMN命令 103

7.8.2 BREAK命令 105

7.8.3 TTITLE和BTITLE 105

7.9 创建格式化报表的脚本文件 105

小结 106

实验7 替代变量的使用 107

思考练习题 108

第8章 数据操作 109

8.1 INSERT语句 109

8.1.1 基本的插入语句 109

8.1.2 插入空值 110

8.1.3 插入特殊值 111

8.1.4 使用替代变量插入值 112

8.1.5 从另一个表中复制数据 112

8.2 UPDATE语句 113

8.2.1 基本的更新语句 113

8.2.2 基于另一个表更新记录 114

8.2.3 更新记录时的完整性约束错误 115

8.3 DELETE语句 116

8.3.1 基本的删除语句 116

8.3.2 基于另一个表删除本表记录 116

8.3.3 删除记录时的完整性约束错误 117

8.4 数据库事务 117

8.4.1 COMMIT、ROLLBACK及SAVEPOINT 118

8.4.2 执行COMMIT、ROLLBACK前后的状态 118

8.4.3 数据回滚 119

8.4.4 读取一致性和锁定 120

小结 121

实验8 操作表中的数据 121

思考练习题 123

第9章 创建和管理表 124

9.1 CREATE TABLE语句的基本用法 124

9.2 用子查询创建表 127

9.3 修改表结构 128

9.4 删除表 129

9.5 修改表的名称 130

9.6 截断表 130

9.7 给表添加注释 131

小结 131

实验9 表的创建和维护 132

思考练习题 133

第10章 约束 134

10.1 定义约束 134

10.2 非空约束 135

10.3 惟一约束 136

10.4 主键约束 138

10.5 外键约束 139

10.6 条件约束 140

10.7 添加和删除约束 141

10.8 禁用和启用约束 142

10.9 查询约束 143

小结 144

实验10 使用约束 144

思考练习题 145

第11章 视图 146

11.1 使用视图的优点 146

11.2 视图的分类 147

11.3 创建视图 147

11.4 查询视图 149

11.5 修改视图 149

11.6 视图上的DML操作 150

11.7 删除视图 152

小结 152

实验11 视图的使用 152

思考练习题 153

第12章 其他数据库对象 154

12.1 序列 154

12.1.1 何谓序列 154

12.1.2 创建序列 155

12.1.3 NEXTVAL和CURRVAL伪列 157

12.1.4 使用SQUENCE(序列) 158

12.1.5 序列的修改和删除 159

12.2 索引 160

12.2.1 何谓索引 160

12.2.2 创建索引 160

12.2.3 删除索引 162

12.3 同义词 162

小结 163

实验12 使用其他数据库对表 164

思考练习题 165

第13章 用户访问控制 166

13.1 用户访问控制及权限 166

13.2 权限分类 167

13.3 创建用户及授予系统权限 168

13.4 角色 169

13.5 对象权限 170

13.6 验证授权 172

13.7 回收权限 173

小结 174

思考练习题 174

第14章 PL/SQL简介 175

14.1 PL/SQL体系结构 175

14.2 PL/SQL块结构 176

第15章 PL/SQL变量 179

15.1 变量的使用和操作 179

15.2 变量类型 180

15.3 声明PL/SQL变量 180

15.4 变量的赋值 182

15.5 标量 183

15.6 %TYPE 184

15.7 其他类型的变量 185

15.7.1 布尔变量 185

15.7.2 复合类型 185

15.7.3 LOB型变量 186

15.7.4 外部变量 186

小结 187

实验13 PL/SQL变量 187

思考练习题 188

第16章 可执行部分 189

16.1 PL/SQL块的语法和原则 189

16.1.1 分隔符 189

16.1.2 标识符 190

16.1.3 字面值 190

16.1.4 注释 190

16.2 SQL和PL/SQL函数 191

16.3 嵌套块和变量的作用域 192

16.4 PL/SQL中的运算符 194

16.5 PL/SQL的编程准则 194

小结 196

实验14 编写PL/SQL块 196

思考练习题 197

第17章 PL/SQL中的SQL语句 199

17.1 PL/SQL中的SELECT语句 199

17.2 PL/SQL中DML语句 202

17.2.1 插入数据 202

17.2.2 更新数据 202

17.2.3 删除数据 203

17.2.4 标识符命名 203

17.3 COMMIT和ROLLBACK 204

17.4 SQL游标 205

小结 206

实验15 PL/SQL中的SQL语句 206

思考练习题 208

第18章 控制结构 209

18.1 条件控制 209

18.1.1 IF-THEN语句 210

18.1.2 IF-THEN-ELSE语句 210

18.1.3 IF-THEN-ELSIF语句 211

18.1.4 CASE语句 212

18.1.5 构造逻辑条件 214

18.2 循环控制 215

18.2.1 Basic Loop 215

18.2.2 FOR Loop 216

18.2.3 WHILE Loop 217

18.2.4 循环嵌套和循环标记 218

小结 219

实验16 控制结构 219

思考练习题 220

第19章 复合数据类型 221

19.1 PL/SQL记录 221

19.1.1 创建PL/SQL记录 222

19.1.2 为PL/SQL记录赋值 223

19.1.3 %ROWTYPE 223

19.1.4 嵌套记录 224

19.2 索引表 225

19.2.1 创建索引表 225

19.2.2 含有RECORD的索引表 227

19.2.3 索引表所提供的方法 227

小结 228

实验17 复合数据类型的使用 229

思考练习题 229

第20章 游标 230

20.1 显式游标 230

20.1.1 声明游标 231

20.1.2 打开游标 233

20.1.3 从游标中提取数据 233

20.1.4 关闭游标 235

20.2 显式游标的属性 236

20.3 游标式的FOR循环 237

20.4 参数化的游标 238

20.5 SELECT FOR UPDATE游标 240

20.5.1 FOR UPDATE 240

20.5.2 WHERE CURRENT OF 241

20.6 隐式游标 242

小结 243

实验18 游标的使用 243

思考练习题 244

第21章 异常 245

21.1 何谓异常 245

21.2 预定义异常 247

21.3 PL/SQL的异常处理结构 250

21.3.1 异常的触发 250

21.3.2 异常的传播 250

21.4 用户定义异常 253

21.4.1 声明异常 253

21.4.2 触发自定义异常 254

21.4.3 异常处理程序 254

21.4.4 使用EXCEPTION_INT 254

21.4.5 使用错误函数SQLCODE和SQLERRM 255

21.4.6 使用RAISE_APPLICATION_ERROR 256

小结 257

实验19 异常的使用 257

思考练习题 259

第22章 创建子程序和包 260

22.1 过程和函数 260

22.1.1 创建子程序 262

22.1.2 删除过程和函数 266

22.1.3 子程序参数 266

22.1.4 过程与函数的比较 284

22.2 包 285

22.2.1 包的说明 285

22.2.2 包体 287

22.2.3 包和作用域 289

22.2.4 重载封装子程序 291

22.2.5 包的初始化 293

小结 295

实验20 子程序和包的创建 296

思考练习题 298

第23章 使用子程序和包 300

23.1 子程序位置 300

23.1.1 存储子程序和数据字典 300

23.1.2 局部子程序 303

23.1.3 存储子程序和局部子程序的比较 308

23.2 存储子程序和包的注意事项 309

23.2.1 子程序的依赖性 309

23.2.2 包运行时状态 316

23.2.3 特权和存储子程序 321

23.3 在SQL语句中使用存储函数 329

23.3.1 纯度等级 330

23.3.2 默认参数 336

23.3.3 从Oracle8i中从SQL语句调用函数 336

23.4 包的辅助功能 339

23.4.1 共享池锁定 340

23.4.2 包体长度的限制 341

23.4.3 优化参数 342

小结 344

实验21 子程序和包的使用 345

思考练习题 346

第24章 数据库触发器 347

24.1 触发器的类型 347

24.1.1 DML触发器 348

24.1.2 instead-of触发器 349

24.1.3 系统触发器 350

24.2 创建触发器 350

24.2.1 创建DML触发器 351

24.2.2 创建instead-of触发器 360

24.2.3 创建系统触发器 362

24.2.4 其他触发器问题 368

24.2.5 触发器与数据字典 371

24.3 变异表 372

24.3.1 变异表的例子 373

24.3.2 变异表错误的解决 374

小结 377

实验22 数据库触发器的使用 377

思考练习题 378

第25章 实用工具包 380

25.1 DBMS_OUTPUT包与输入输出 380

25.1.1 PUT和PUT_LINE过程调用语法 380

25.1.2 GET_LINE和GET_LINES调用语法 381

25.1.3 ENABLE和DISABLE语法 381

25.2 UTL_FILE包与文件输入输出 384

25.2.1 安全 384

25.2.2 UTL_FILE引发的异常 386

25.2.3 打开和关闭文件 387

25.2.4 文件输出 388

25.2.5 文件输入 391

25.2.6 文件操作举例 392

25.3 DBMS_SQL包与动态SQL语句 398

25.3.1 静态与动态SQL 398

25.3.2 动态DML语句 398

25.3.3 动态DDL语句 402

25.3.4 DBMS_SQL包的语法说明 403

25.4 DBMS_JOB包与数据库作业 411

25.4.1 后台进程 411

25.4.2 运行作业 412

25.4.3 其他的DBMS_JOB子程序 417

25.4.4 在数据库视图中观察作业 421

25.4.5 作业运行环境 421

小结 421

实验23 常用工具包的使用 422

思考练习题 423

第26章 大型对象 424

26.1 大型对象概述 424

26.1.1 什么是大型对象 424

26.1.2 大型对象数据类型 425

26.1.3 大型对象的值和定位器 426

26.1.4 目录(DIRECTORY) 428

26.2 PL/SQL的DBMS_LOB包的使用 428

26.2.1 DBMS_LOB包的函数/过程介绍 429

26.2.2 DBMS_LOB包的大型对象定位器 430

26.2.3 DBMS_LOB的数据类型、常数及异常 430

26.2.4 DBMS_LOB包的使用规则 431

26.3 对BFILE的操作 432

26.3.1 创建目录对象 432

26.3.2 函数BFILENAME 433

26.3.3 打开BFILE 433

26.3.4 函数FILEISOPEN 434

26.3.5 函数FILEEXISTS 435

26.3.6 关闭文件的过程 435

26.3.7 获取文件信息 436

26.3.8 读取文件 437

26.3.9 比较两个文件的内容 438

26.3.10 INSTR函数 439

26.3.11 SUBSTR函数 439

26.3.12 使用外部大型对象BFILE的举例 440

26.4 使用内部大型对象 441

26.4.1 使用内部大型对象前的准备 441

26.4.2 APPEND过程 442

26.4.3 COMPARE函数 442

26.4.4 COPY过程 444

26.4.5 ERASE过程 445

26.4.6 GETLENGTH函数 446

26.4.7 INSTR函数 446

26.4.8 READ过程 447

26.4.9 SUBSTR函数 448

26.4.10 TRIM过程 449

26.4.11 WRITE过程 450

26.4.12 WRITEAPPEND过程 450

26.4.13 使用内部大型对象举例 451

26.5 临时大型对象 456

26.5.1 临时大型对象概述 456

26.5.2 临时大型对象的使用 457

26.6 LONG与LOB数据类型的转换 459

26.6.1 LONG与LOB数据类型的比较 459

26.6.2 LONG与LOB数据类型的转换 460

小结 461

实验24 大型对象的使用 461

思考练习题 462

ORACLE认证课程介绍 463