当前位置:首页 > 工业技术
OracleDatabase11gSQL开发指南
OracleDatabase11gSQL开发指南

OracleDatabase11gSQL开发指南PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:史新元编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2008
  • ISBN:9787302185895
  • 页数:600 页
图书介绍:本书使用SQL Plus和SQL Developer、使用SQL SELECT.INSERT.UPPATE和DELETE语句、编写PL/SQL程序、创建表、序列、视图和触发器、编写包含分析功能的高级查询、创建数据库对象和集合、在Java程序中通过JDBC访问数据库、使用大对象处理多媒体文件、优化SQL,展示XML处理能力。
《OracleDatabase11gSQL开发指南》目录

第1章 简介 1

1.1关系数据库简介 2

1.2结构化查询语言(SQL)简介 2

1.3使用SQL*Plus 4

启动SQL*Plus 4

从命令行启动SQL*Plus 5

使用SQL*Plus执行SELECT语句 6

1.4 SQL Developer 7

1.5创建store模式 9

运行SQL*Plus脚本创建store模式 9

用来创建store模式的DDL语句 10

1.6添加、修改、删除行 18

向表中添加行 18

修改表中的现有行 19

从表中删除行 20

1.7 BINARY_FLOAT和BINARY_DOUBLE数据类型 21

BINARY_FLOAT和BINARY_DOUBLE的优点 21

在表中使用BINARY_FLOAT和BINARY_DOUBLE 21

特殊值 22

1.8退出SQL*Plus 23

1.9 Oracle PL/SQL简介 23

1.10小结 24

第2章 从数据库表中检索信息 25

2.1对单表执行SELECT语句 25

2.2选择一个表中的所有列 26

2.3使用WHERE子句过滤行 27

2.4理解行标识符 27

2.5理解行号 28

2.6执行算术运算 28

日期运算 29

列运算 30

2.7使用列别名 31

2.8使用连接操作合并列的输出结果 32

2.9理解空值 33

2.10禁止显示重复行 34

2.11比较值 35

2.12使用SQL操作符 37

使用LIKE操作符 37

使用IN操作符 38

使用BETWEEN操作符 39

2.13使用逻辑操作符 40

2.14理解操作符的优先级 41

2.15 使用ORDER BY子句对行进行排序 41

2.16执行使用两个表的SELECT语句 42

2.17使用表别名 44

2.18笛卡尔积 45

2.19执行使用多于两个表的SELECT语句 46

2.20连接条件和连接类型 47

不等连接 47

外连接 48

自连接 51

2.21使用SQL/92语法执行连接 52

使用SQL/92标准语法执行两个表的内连接 53

使用USING关键字简化连接 53

使用SQL/92执行多于两个表的内连接 54

使用SQL/92执行多列的内连接 55

使用SQL/92执行外连接 55

使用SQL/92执行自连接 56

使用SQL/92执行交叉连接 57

2.22小结 57

第3章 使用SQL*Plus 59

3.1查看表结构 60

3.2编辑SQL语句 60

3.3保存、检索并运行文件 62

3.4格式化列 65

3.5设置页面大小 67

3.6设置行大小 68

3.7清除列格式 68

3.8使用变量 69

临时变量 69

已定义变量 72

3.9创建简单报表 74

在脚本中使用临时变量 74

在脚本中使用已定义变量 75

向脚本中的变量传递值 75

添加页眉和页脚 76

计算小计 78

3.10从SQL*Plus获取帮助信息 79

3.11自动生成SQL语句 80

3.12断开数据库连接并退出SQL*Plus 81

3.13小结 81

第4章 使用简单函数 83

4.1使用单行函数 84

字符函数 84

数字函数 92

转换函数 96

正则表达式函数 102

4.2使用聚合函数 108

AVG函数 109

COUNT函数 110

MAX和MIN函数 110

STDDEV函数 111

SUM函数 111

VARIANCE函数 112

4.3对行进行分组 112

使用GROUP BY子句对行进行分组 112

调用聚合函数的错误用法 115

使用HAVING子句过滤行组 116

组合使用WHERE和GROUPBY子句 117

组合使用WHERE、 GROUPBY和HAVING子句 117

4.4小结 118

第5章 日期和时间的存储与处理 119

5.1几个简单的存储和检索日期的例子 120

5.2使用TO_CHAR()和TO_DATE()转换时间值 121

使用TO_CHAR()将时间值转换为字符串 121

使用TO_DATE()将字符串转换为时间值 125

5.3设置默认的日期格式 128

5.4 Oracle对2位年份的处理 129

使用YY格式 129

使用RR格式 130

5.5使用时间值函数 131

ADD_MONTHS函数 131

LAST_DAY函数 132

MONTHS_BETWEEN函数 133

NEXT_DAY函数 133

ROUND函数 133

SYSDATE 134

TRUNC函数 134

5.6理解时区 135

与时区有关的函数 136

数据库时区和会话时区 136

获取时区的时差 137

获取时区名 138

将时间值从一个时区转换为另一个时区 138

5.7使用时间戳 139

使用时间戳类型 139

与时间戳有关的函数 143

5.8使用时间间隔 148

使用INTERVAL YEAR TO MONTH类型 149

使用INTERVAL DAY TO SECOND类型 150

与时间间隔有关的函数 152

5.9小结 153

第6章 子查询 155

6.1子查询的类型 155

6.2编写单行子查询 156

在WHERE子句中使用子查询 156

使用其他单行操作符 157

在HAVING子句中使用子查询 157

在FROM子句中使用子查询(内联视图) 159

可能碰到的错误 159

6.3编写多行子查询 160

在多行子查询中使用IN操作符 161

在多行子查询中使用ANY操作符 162

在多行子查询中使用ALL操作符 162

6.4编写多列子查询 162

6.5编写关联子查询 163

关联子查询的例子 163

在关联子查询中使用EXISTS和NOT EXIST 164

6.6编写嵌套子查询 166

6.7编写包含子查询的UPDATE和DELETE语句 168

编写包含子查询的UPDATE语句 168

编写包含子查询的DELETE语句 168

6.8小结 169

第7章 高级查询 171

7.1使用集合操作符 172

示例表 172

使用UNION ALL操作符 173

使用UNION操作符 174

使用INTERSECT操作符 175

使用MINUS操作符 175

组合使用集合操作符 176

7.2使用TRANSLATE函数 178

7.3使用DECODE()函数 179

7.4使用CASE表达式 181

使用简单CASE表达式 181

使用搜索CASE表达式 182

7.5层次化查询 183

示例数据 183

使用CONNECT BY和START WITH子句 185

使用伪列LEVEL 185

格式化层次化查询的结果 186

从非根节点开始遍历 187

在START WITH子句中使用子查询 187

从下向上遍历树 188

从层次查询中删除节点和分支 188

在层次化查询中加入其他条件 189

7.6使用扩展的GROUP BY子句 190

7.7使用ROLLUP子句 192

使用CUBE子句 194

使用GROUPING函数 195

使用GROUPING SETS子句 198

使用GROUPING_ID函数 199

在GROUP BY子句中多次使用一个列 201

使用GROUP_ID函数 201

7.8使用分析函数 203

示例表 203

使用评级函数 204

使用反百分点函数 211

使用窗口函数 211

使用报表函数 216

使用LAG和LEAD函数 218

使用FIRST和LAST函数 219

使用线性回归函数 219

使用假想评级与分布函数 221

7.9使用MODEL子句 221

MODEL子句示例 222

用位置标记和符号标记访问数据单元 223

用BETWEEN和AND返回特定范围内的数据单元 224

用ANY和IS ANY访问所有的数据单元 224

用CURRENTV()获取某个维度的当前值 225

用FOR循环访问数据单元 226

处理空值和缺失值 227

更新已有的单元 229

7.10使用PIVOT和UNPIVOT子句 230

PIVOT子句示例 230

转换多个列 231

在转换中使用多个聚合函数 232

使用UNPIVOT子句 233

7.11小结 234

第8章 修改表的内容 237

8.1使用INSERT语句添加行 237

省略列的列表 239

为列指定空值 239

在列值中使用单引号和双引号 239

从一个表向另外一个表复制行 239

8.2使用UPDATE语句修改行 240

8.3 RETURNING子句 241

8.4使用DELETE语句删除行 242

8.5数据库的完整性 242

主键约束 242

外键约束 243

8.6使用默认值 244

8.7使用MERGE合并行 245

8.8数据库事务 247

事务的提交和回滚 247

事务的开始与结束 248

保存点 249

事务的ACID特性 251

并发事务 251

事务锁 252

事务隔离级别 253

SERIALIZABLE事务的一个例子 254

8.9查询闪回 254

使用闪回的授权 254

时间查询闪回 255

系统变更号查询闪回 256

8.10小结 258

第9章 用户、特权和角色 259

9.1用户 260

创建用户 260

修改用户密码 261

删除用户 261

9.2系统特权 262

向用户授予系统特权 263

检查授予用户的系统特权 263

使用系统特权 264

撤消用户的系统特权 264

9.3对象特权 265

向用户授予对象特权 265

检查已授予的对象特权 266

检查已接受的对象特权 267

使用对象特权 269

同名对象 269

公共同名对象 270

撤消用户的对象特权 271

9.4角色 271

创建角色 271

为角色授权 272

将角色授予用户 272

检查授予用户的角色 273

检查授予角色的系统特权 274

检查授予角色的对象特权 274

使用授予角色的特权 276

默认角色 276

撤消角色 277

从角色中撤消特权 277

删除角色 277

9.5审计 277

执行审计需要的特权 277

审计示例 278

审计跟踪视图 279

9.6小结 280

第10章 创建表、序列、索引和视图 281

10.1表 282

创建表 282

获得有关表的信息 283

获得表中列的信息 284

修改表 285

重命名表 294

向表中添加注释 294

截断表 295

删除表 295

10.2序列 295

创建序列 295

获取有关序列的信息 297

使用序列 298

使用序列填充主键 299

修改序列 300

删除序列 301

10.3索引 301

创建B-树索引 302

创建基于函数的索引 303

获取有关索引的信息 303

获取列索引的信息 304

修改索引 304

删除索引 305

创建位图索引 305

10.4视图 305

创建并使用视图 306

修改视图 313

删除视图 314

10.5闪回数据归档 314

10.6小结 316

第11章PL/SQL编程简介 317

11.1块结构 318

11.2变量和类型 319

11.3条件逻辑 320

11.4循环 320

简单循环 321

WHILE循环 322

FOR循环 322

11.5游标 323

步骤1:声明用于保存列值的变量 323

步骤2:声明游标 323

步骤3:打开游标 324

步骤4:从游标中取得记录 324

步骤5:关闭游标 325

完整的示例:product_cursor.sql 325

游标与FOR循环 326

OPEN-FOR语句 327

无约束游标 329

11.6异常 330

ZERO_DIVIDE异常 332

DUP_VAL_ON_INDEX异常 333

INVALID_NUMBER异常 333

OTHERS异常 333

11.7过程 334

创建过程 334

调用过程 337

获取有关过程的信息 338

删除过程 338

查看过程中的错误 338

11.8函数 339

创建函数 339

调用函数 340

获取有关函数的信息 341

删除函数 341

11.9包 341

创建包规范 342

创建包体 342

调用包中的函数和过程 344

获取有关包中函数和过程的信息 344

删除包 345

11.10触发器 345

触发器运行的时机 345

设置示例触发器 345

创建触发器 346

激活触发器 347

获取有关触发器的信息 348

禁用和启用触发器 350

删除触发器 350

11.11 Oracle Database 11 g新增加的PL/SQL特性 350

SIMPLE_INTEGER类型 350

在PL/SQL中使用序列 351

PL/SQL本地机器代码生成 352

11.12小结 353

第12章 数据库对象 355

12.1对象简介 356

12.2创建对象类型 356

12.3使用DESCRIBE获取有关对象类型的信息 358

12.4在数据库表中使用对象类型 359

列对象 359

对象表 361

对象标识符和对象引用 365

比较对象值 367

12.5在PL/SQL中使用对象 369

get_products()函数 370

display_product()过程 371

insert_product()过程 372

update_product_price()过程 373

get_product()函数 373

update_product()过程 374

get_product_ref()函数 375

delete_product()过程 375

product_lifecycle()过程 376

product_lifecycle2()过程 377

12.6类型继承 378

12.7用子类型对象代替超类型对象 380

SQL例子 380

PL/SQL例子 381

NOT SUBSTITUTABLE对象 382

12.8其他有用的对象函数 383

IS OF() 383

TREAT() 387

SYS_TYPEID() 391

12.9 NOT INSTANTIABLE对象类型 391

12.10用户自定义的构造函数 393

12.11重载方法 396

12.12通用调用 398

12.13小结 400

第13章 集合 401

13.1集合简介 401

13.2创建集合类型 402

创建变长数组类型 402

创建嵌套表类型 403

13.3使用集合类型定义表列 403

使用变长数组类型定义表列 403

使用嵌套表类型定义表列 404

13.4获取集合信息 404

获取变长数组信息 404

获得嵌套表信息 405

13.5填充集合元素 407

填充变长数组元素 407

填充嵌套表元素 407

13.6检索集合元素 408

检索变长数组元素 408

检索嵌套表元素 409

13.7使用TABLE()将集合视为一系列行 409

将TABLE()用于变长数组 410

将TABLE()用于嵌套表 411

13.8更改集合元素 411

更改变长数组元素 411

更改嵌套表元素 412

13.9使用映射方法比较嵌套表的内容 413

13.10使用CAST()将集合从一种类型转换为另一种类型 415

使用CAST()将变长数组转换为嵌套表 416

使用CAST()将嵌套表转换为变长数组 416

13.11在PL/SQL中使用集合 417

操作变长数组 417

操作嵌套表 419

PL/SQL集合方法 421

13.12多级集合类型 431

13.13 Oracle Database 10g对集合的增强 433

关联数组 434

更改元素类型的大小 435

增加变长数组的元素数目 435

在临时表中使用变长数组 435

为嵌套表的存储表使用不同的表空间 435

嵌套表对ANSI的支持 436

13.14小结 444

第14章 大对象 447

14.1大对象(LOB)简介 448

14.2示例文件 448

14.3理解大对象类型 449

14.4创建包含大对象的表 449

14.5在SQL中使用大对象 450

使用CLOB和BLOB 450

使用BFILE 452

14.6在PL/SQL中使用大对象 454

APPEND() 456

CLOSE() 457

COMPARE() 457

COPY() 458

CREATETEMPORARY() 459

ERASE() 460

FILECLOSE() 460

FILECLOSEALL() 461

FILEEXISTS() 461

FILEGETNAME() 462

FILEISOPEN() 462

FILEOPEN() 463

FREETEMPORARY() 463

GETCHUNKSIZE() 464

GET_STORAGE_LIMIT() 464

GETLENGTH() 464

INSTR() 465

ISOPEN() 466

ISTEMPORARY() 467

LOADFROMFILE() 467

LOADBLOBFROMFILE() 468

LOADCLOBFROMFILE() 469

OPEN( 470

READ() 471

SUBSTR() 471

TRIM() 473

WRITE() 473

WRITEAPPEND() 474

PL/SQL示例过程 475

14.7理解LONG和LONG RAW类型 492

示例表 492

向LONG和LONG RAW列添加数据 492

将LONG和LONG RAW列转换为LOB 493

14.8 Oracle Database 10g对大对象的增强 494

CLOB和NCLOB对象之间的隐式转换 494

在触发器中使用LOB时:new属性的用法 495

14.9 Oracle Database 11 g对大对象的增强 495

加密LOB数据 496

压缩LOB数据 499

删除LOB重复数据 499

14.10小结 500

第15章 在Java程序中运行SQL 501

15.1准备工作 502

15.2配置计算机 502

设置ORACLE_HOME环境变量 502

设置JAVA_HOME环境变量 503

设置PATH环境变量 503

设置CLASSPATH环境变量 504

设置LD_LIBRARY_PATH环境变量 504

15.3 Oracle JDBC驱动程序 505

Thin驱动程序 505

OCI驱动程序 505

服务器端内部驱动程序 505

服务器端Thin驱动程序 505

15.4导入JDBC包 506

15.5注册Oracle JDBC驱动程序 506

15.6打开数据库连接 506

使用getConnection()方法连接数据库 507

数据库URL 507

使用Oracle数据源连接数据库 508

15.7创建JDBC Statement对象 511

15.8从数据库中检索行 511

步骤1:创建和填充ResultSet对象 511

步骤2:从ResultSet对象中读取列值 512

步骤3:关闭ResultSet对象 514

15.9向数据库中添加行 514

15.10更改数据库的行 515

15.11删除数据库的行 516

15.12处理数字 516

15.13处理数据库Null值 517

15.14控制数据库事务 519

15.15执行DDL语句 519

15.16处理异常 520

15.17关闭JDBC对象 521

15.18示例程序:BasicExample 1.java 522

编译BasicExample 1 527

运行BasicExample 1 527

15.19预备SQL语句 529

15.20示例程序:BasicExample2.java 531

15.21 Oracle JDBC扩展 534

oracle.sql包 534

oracle.jdbc包 537

示例程序:BasicExample3.java 540

15.22小结 543

第16章 SQL优化 545

16.1 SQL优化简介 545

16.2使用WHERE子句过滤行 546

16.3使用表连接而不是多个查询 546

16.4执行连接时使用完全限定的列引用 547

16.5使用CASE表达式而不是多个查询 548

16.6添加表索引 549

16.7使用WHERE而不是HAVING 550

16.8使用UNION ALL而不是UNION 550

16.9使用EXISTS而不是IN 552

16.10使用EXISTS而不是DISTINCT 552

16.11使用GROUPING SETS而不是CUBE 553

16.12使用绑定变量 553

不相同的SQL语句 554

使用绑定变量定义相同SQL语句 554

列出和输出绑定变量 555

使用绑定变量存储PL/SQL函数的返回值 555

使用绑定变量存储REFCURSOR的行 556

16.13比较执行查询的成本 556

检查执行计划 557

比较执行计划 562

16.14为优化器传递提示 563

16.15其他优化工具 564

Oracle Enterprise ManagerDiagnostics Pack 565

Automatic DatabaseDiagnostic Monitor 565

16.16小结 566

第17章 XML和Oracle数据库 567

17.1 XML简介 567

17.2从关系数据生成XML 568

XMLELEMENT() 568

XMLATTRIBUTES() 571

XMLFOREST() 571

XMLAGG() 573

XMLCOLATTVAL() 575

XMLCONCAT() 576

XMLPARSE() 576

XMLPI() 577

XMLCOMMENT() 577

XMLSEQUENCE() 578

XMLSERIALIZE() 579

PL/SQL范例:将XML数据写入文件 579

XMLQUERY() 581

17.3将XML保存到数据库中 585

范例XML文件 585

创建范例XML模式 586

从范例XML模式检索信息 588

更新范例XML模式中的信息 592

17.4小结 595

附录A Oracle数据类型 597

返回顶部