Oracle Database 11g SQL开发指南

Oracle Database 11g SQL开发指南
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (Price J.) , ,
2008-11
版次: 1
ISBN: 9787302185895
定价: 78.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 600页
字数: 992千字
正文语种: 简体中文
71人买过
  • Oracle专家JasonPrice带您一起学习如何通过SQL语句和PL/SQL程序访问Oracle数据库。本书是OraclePress重磅推出的一本关于OracleDatabase11gSQL的专著,是掌握SQL的必读之作。
    本书深入浅出、全面细致地讲解了如何读取和修改数据库信息,如何使用SQLPlus和SQLDeveloper,如何使用数据库对象,如何编写PL/SQL程序等内容。随着对本书学习的深入,读者将循序渐进地掌握最新的SQL特性和工具、性能优化技术、高级查询、Java支持以及XML应用。 JasonPrice是一位职业咨询专家,0racle公司前产品经理。他对Oracle的众多产品都做出了卓越的贡献,包括数据库、应用服务器和若干CRM应用程序。Jason是一位经Oracle认证的数据库管理员和应用程序开发人员,在软件行业具有15年以上的从业经验,并执笔撰写了多本关于Oracle、Java和NET的优秀图书。Jason获得了英国布里斯托尔大学的物理学荣誉科学学士学位。
    技术编辑简介
    ScottMikolaitis是Oracle公司的应用程序设计师,在Oracle公司工作10余年。他参与完成了OracleFusion的SOA技术原型和标准的开发Scott致力于用Java开发Web服务的工作,并参与人与系统交互模式的.Jabber。业余时间,他喜欢自己动手改进家居用品和天燃汽RC汽车。 第1章简介 1
    1.1关系数据库简介 2
    1.2结构化查询语言(SQL)简介 2
    1.3使用SQL*Plus 4
    1.3.1启动SQL*Plus 4
    1.3.2从命令行启动SQL*Plus 5
    1.3.3使用SQL*Plus执行SELECT语句 6
    1.4SQLDeveloper 7
    1.5创建store模式 9
    1.5.1运行SQL*Plus脚本创建store模式 9
    1.5.2用来创建store模式的DDL语句 10
    1.6添加、修改、删除行 18
    1.6.1向表中添加行 18
    1.6.2修改表中的现有行 19
    1.6.3从表中删除行 20
    1.7BINARY_FLOAT和BINARY_DOUBLE数据类型 21
    1.7.1BINARY_FLOAT和BINARY_DOUBLE的优点 21
    1.7.2在表中使用BINARY_FLOAT和BINARY_DOUBLE 21
    1.7.3特殊值 22
    1.8退出SQL*Plus 23
    1.9OraclePL/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
    2.6.1日期运算 29
    2.6.2列运算 30
    2.7使用列别名 31
    2.8使用连接操作合并列的输出结果 32
    2.9理解空值 33
    2.10禁止显示重复行 34
    2.11比较值 35
    2.12使用SQL操作符 37
    2.12.1使用LIKE操作符 37
    2.12.2使用IN操作符 38
    2.12.3使用BETWEEN操作符 39
    2.13使用逻辑操作符 40
    2.14理解操作符的优先级 41
    2.15使用ORDERBY子句对行进行排序 41
    2.16执行使用两个表的SELECT语句 42
    2.17使用表别名 44
    2.18笛卡尔积 45
    2.19执行使用多于两个表的SELECT语句 46
    2.20连接条件和连接类型 47
    2.20.1不等连接 47
    2.20.2外连接 48
    2.20.3自连接 51
    2.21使用SQL/92语法执行连接 52
    2.21.1使用SQL/92标准语法执行两个表的内连接 53
    2.21.2使用USING关键字简化连接 53
    2.21.3使用SQL/92执行多于两个表的内连接 54
    2.21.4使用SQL/92执行多列的内连接 55
    2.21.5使用SQL/92执行外连接 55
    2.21.6使用SQL/92执行自连接 56
    2.21.7使用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
    3.8.1临时变量 69
    3.8.2已定义变量 72
    3.9创建简单报表 74
    3.9.1在脚本中使用临时变量 74
    3.9.2在脚本中使用已定义变量 75
    3.9.3向脚本中的变量传递值 75
    3.9.4添加页眉和页脚 76
    3.9.5计算小计 78
    3.10从SQL*Plus获取帮助信息 79
    3.11自动生成SQL语句 80
    3.12断开数据库连接并退出SQL*Plus 81
    3.13小结 81

    第4章使用简单函数 83
    4.1使用单行函数 84
    4.1.1字符函数 84
    4.1.2数字函数 92
    4.1.3转换函数 96
    4.1.4正则表达式函数 102
    4.2使用聚合函数 108
    4.2.1AVG函数 109
    4.2.2COUNT函数 110
    4.2.3MAX和MIN函数 110
    4.2.4STDDEV函数 111
    4.2.5SUM函数 111
    4.2.6VARIANCE函数 112
    4.3对行进行分组 112
    4.3.1使用GROUPBY子句对行进行分组 112
    4.3.2调用聚合函数的错误用法 115
    4.3.3使用HAVING子句过滤行组 116
    4.3.4组合使用WHERE和GROUPBY子句 117
    4.3.5组合使用WHERE、GROUP
    BY和HAVING子句 117
    4.4小结 118

    第5章日期和时间的存储与处理 119
    5.1几个简单的存储和检索日期的例子 120
    5.2使用TO_CHAR()和
    TO_DATE()转换时间值 121
    5.2.1使用TO_CHAR()将时间值转换为字符串 121
    5.2.2使用TO_DATE()将字符串转换为时间值 125
    5.3设置默认的日期格式 128
    5.4Oracle对2位年份的处理 129
    5.4.1使用YY格式 129
    5.4.2使用RR格式 130
    5.5使用时间值函数 131
    5.5.1ADD_MONTHS函数 131
    5.5.2LAST_DAY函数 132
    5.5.3MONTHS_BETWEEN函数 133
    5.5.4NEXT_DAY函数 133
    5.5.5ROUND函数 133
    5.5.6SYSDATE 134
    5.5.7TRUNC函数 134
    5.6理解时区 135
    5.6.1与时区有关的函数 136
    5.6.2数据库时区和会话时区 136
    5.6.3获取时区的时差 137
    5.6.4获取时区名 138
    5.6.5将时间值从一个时区转换为另一个时区 138
    5.7使用时间戳 139
    5.7.1使用时间戳类型 139
    5.7.2与时间戳有关的函数 143
    5.8使用时间间隔 148
    5.8.1使用INTERVALYEARTOMONTH类型 149
    5.8.2使用INTERVALDAYTO
    SECOND类型 150
    5.8.3与时间间隔有关的函数 152
    5.9小结 153

    第6章子查询 155
    6.1子查询的类型 155
    6.2编写单行子查询 156
    6.2.1在WHERE子句中使用子查询 156
    6.2.2使用其他单行操作符 157
    6.2.3在HAVING子句中使用子查询 157
    6.2.4在FROM子句中使用子查询(内联视图) 159
    6.2.5可能碰到的错误 159
    6.3编写多行子查询 160
    6.3.1在多行子查询中使用IN操作符 161
    6.3.2在多行子查询中使用ANY操作符 162
    6.3.3在多行子查询中使用ALL操作符 162
    6.4编写多列子查询 162
    6.5编写关联子查询 163
    6.5.1关联子查询的例子 163
    6.5.2在关联子查询中使用EXISTS和NOTEXISTS 164
    6.6编写嵌套子查询 166
    6.7编写包含子查询的UPDATE和DELETE语句 168
    6.7.1编写包含子查询的UPDATE语句 168
    6.7.2编写包含子查询的DELETE语句 168
    6.8小结 169

    第7章高级查询 171
    7.1使用集合操作符 172
    7.1.1示例表 172
    7.1.2使用UNIONALL操作符 173
    7.1.3使用UNION操作符 174
    7.1.4使用INTERSECT操作符 175
    7.1.5使用MINUS操作符 175
    7.1.6组合使用集合操作符 176
    7.2使用TRANSLATE函数 178
    7.3使用DECODE()函数 179
    7.4使用CASE表达式 181
    7.4.1使用简单CASE表达式 181
    7.4.2使用搜索CASE表达式 182
    7.5层次化查询 183
    7.5.1示例数据 183
    7.5.2使用CONNECTBY和
    STARTWITH子句 185
    7.5.3使用伪列LEVEL 185
    7.5.4格式化层次化查询的结果 186
    7.5.5从非根节点开始遍历 187
    7.5.6在STARTWITH子句中使用子查询 187
    7.5.7从下向上遍历树 188
    7.5.8从层次查询中删除节点和分支 188
    7.5.9在层次化查询中加入其他条件 189
    7.6使用扩展的GROUPBY子句 190
    7.7使用ROLLUP子句 192
    7.7.1使用CUBE子句 194
    7.7.2使用GROUPING函数 195
    7.7.3使用GROUPINGSETS子句 198
    7.7.4使用GROUPING_ID函数 199
    7.7.5在GROUPBY子句中多次使用一个列 201
    7.7.6使用GROUP_ID函数 201
    7.8使用分析函数 203
    7.8.1示例表 203
    7.8.2使用评级函数 204
    7.8.3使用反百分点函数 211
    7.8.4使用窗口函数 211
    7.8.5使用报表函数 216
    7.8.6使用LAG和LEAD函数 218
    7.8.7使用FIRST和LAST函数 219
    7.8.8使用线性回归函数 219
    7.8.9使用假想评级与分布函数 221
    7.9使用MODEL子句 221
    7.9.1MODEL子句示例 222
    7.9.2用位置标记和符号标记访问数据单元 223
    7.9.3用BETWEEN和AND返回特定范围内的数据单元 224
    7.9.4用ANY和ISANY访问所有的数据单元 224
    7.9.5用CURRENTV()获取某个维度的当前值 225
    7.9.6用FOR循环访问数据单元 226
    7.9.7处理空值和缺失值 227
    7.9.8更新已有的单元 229
    7.10使用PIVOT和UNPIVOT子句 230
    7.10.1PIVOT子句示例 230
    7.10.2转换多个列 231
    7.10.3在转换中使用多个聚合函数 232
    7.10.4使用UNPIVOT子句 233
    7.11小结 234

    第8章修改表的内容 237
    8.1使用INSERT语句添加行 237
    8.1.1省略列的列表 239
    8.1.2为列指定空值 239
    8.1.3在列值中使用单引号和双引号 239
    8.1.4从一个表向另外一个表复制行 239
    8.2使用UPDATE语句修改行 240
    8.3RETURNING子句 241
    8.4使用DELETE语句删除行 242
    8.5数据库的完整性 242
    8.5.1主键约束 242
    8.5.2外键约束 243
    8.6使用默认值 244
    8.7使用MERGE合并行 245
    8.8数据库事务 247
    8.8.1事务的提交和回滚 247
    8.8.2事务的开始与结束 248
    8.8.3保存点 249
    8.8.4事务的ACID特性 251
    8.8.5并发事务 251
    8.8.6事务锁 252
    8.8.7事务隔离级别 253
    8.8.8SERIALIZABLE事务的一个例子 254
    8.9查询闪回 254
    8.9.1使用闪回的授权 254
    8.9.2时间查询闪回 255
    8.9.3系统变更号查询闪回 256
    8.10小结 258

    第9章用户、特权和角色 259
    9.1用户 260
    9.1.1创建用户 260
    9.1.2修改用户密码 261
    9.1.3删除用户 261
    9.2系统特权 262
    9.2.1向用户授予系统特权 263
    9.2.2检查授予用户的系统特权 263
    9.2.3使用系统特权 264
    9.2.4撤消用户的系统特权 264
    9.3对象特权 265
    9.3.1向用户授予对象特权 265
    9.3.2检查已授予的对象特权 266
    9.3.3检查已接受的对象特权 267
    9.3.4使用对象特权 269
    9.3.5同名对象 269
    9.3.6公共同名对象 270
    9.3.7撤消用户的对象特权 271
    9.4角色 271
    9.4.1创建角色 271
    9.4.2为角色授权 272
    9.4.3将角色授予用户 272
    9.4.4检查授予用户的角色 273
    9.4.5检查授予角色的系统特权 274
    9.4.6检查授予角色的对象特权 274
    9.4.7使用授予角色的特权 276
    9.4.8默认角色 276
    9.4.9撤消角色 277
    9.4.10从角色中撤消特权 277
    9.4.11删除角色 277
    9.5审计 277
    9.5.1执行审计需要的特权 277
    9.5.2审计示例 278
    9.5.3审计跟踪视图 279
    9.6小结 280

    第10章创建表、序列、索引和视图 281
    10.1表 282
    10.1.1创建表 282
    10.1.2获得有关表的信息 283
    10.1.3获得表中列的信息 284
    10.1.4修改表 285
    10.1.5重命名表 294
    10.1.6向表中添加注释 294
    10.1.7截断表 295
    10.1.8删除表 295
    10.2序列 295
    10.2.1创建序列 295
    10.2.2获取有关序列的信息 297
    10.2.3使用序列 298
    10.2.4使用序列填充主键 299
    10.2.5修改序列 300
    10.2.6删除序列 301
    10.3索引 301
    10.3.1创建B-树索引 302
    10.3.2创建基于函数的索引 303
    10.3.3获取有关索引的信息 303
    10.3.4获取列索引的信息 304
    10.3.5修改索引 304
    10.3.6删除索引 305
    10.3.7创建位图索引 305
    10.4视图 305
    10.4.1创建并使用视图 306
    10.4.2修改视图 313
    10.4.3删除视图 314
    10.5闪回数据归档 314
    10.6小结 316

    第11章PL/SQL编程简介 317
    11.1块结构 318
    11.2变量和类型 319
    11.3条件逻辑 320
    11.4循环 320
    11.4.1简单循环 321
    11.4.2WHILE循环 322
    11.4.3FOR循环 322
    11.5游标 323
    11.5.1步骤1:声明用于保存列值的变量 323
    11.5.2步骤2:声明游标 323
    11.5.3步骤3:打开游标 324
    11.5.4步骤4:从游标中取得记录 324
    11.5.5步骤5:关闭游标 325
    11.5.6完整的示例:product_cursor.sql 325
    11.5.7游标与FOR循环 326
    11.5.8OPEN-FOR语句 327
    11.5.9无约束游标 329
    11.6异常 330
    11.6.1ZERO_DIVIDE异常 332
    11.6.2DUP_VAL_ON_INDEX异常 333
    11.6.3INVALID_NUMBER异常 333
    11.6.4OTHERS异常 333
    11.7过程 334
    11.7.1创建过程 334
    11.7.2调用过程 337
    11.7.3获取有关过程的信息 338
    11.7.4删除过程 338
    11.7.5查看过程中的错误 338
    11.8函数 339
    11.8.1创建函数 339
    11.8.2调用函数 340
    11.8.3获取有关函数的信息 341
    11.8.4删除函数 341
    11.9包 341
    11.9.1创建包规范 342
    11.9.2创建包体 342
    11.9.3调用包中的函数和过程 344
    11.9.4获取有关包中函数和过程的信息 344
    11.9.5删除包 345
    11.10触发器 345
    11.10.1触发器运行的时机 345
    11.10.2设置示例触发器 345
    11.10.3创建触发器 346
    11.10.4激活触发器 347
    11.10.5获取有关触发器的信息 348
    11.10.6禁用和启用触发器 350
    11.10.7删除触发器 350
    11.11OracleDatabase11g新增加的PL/SQL特性 350
    11.11.1SIMPLE_INTEGER类型 350
    11.11.2在PL/SQL中使用序列 351
    11.11.3PL/SQL本地机器代码生成 352
    11.12小结 353

    第12章数据库对象 355
    12.1对象简介 356
    12.2创建对象类型 356
    12.3使用DESCRIBE获取有关对象类型的信息 358
    12.4在数据库表中使用对象类型 359
    12.4.1列对象 359
    12.4.2对象表 361
    12.4.3对象标识符和对象引用 365
    12.4.4比较对象值 367
    12.5在PL/SQL中使用对象 369
    12.5.1get_products()函数 370
    12.5.2display_product()过程 371
    12.5.3insert_product()过程 372
    12.5.4update_product_price()过程 373
    12.5.5get_product()函数 373
    12.5.6update_product()过程 374
    12.5.7get_product_ref()函数 375
    12.5.8delete_product()过程 375
    12.5.9product_lifecycle()过程 376
    12.5.10product_lifecycle2()过程 377
    12.6类型继承 378
    12.7用子类型对象代替超类型对象 380
    12.7.1SQL例子 380
    12.7.2PL/SQL例子 381
    12.7.3NOTSUBSTITUTABLE对象 382
    12.8其他有用的对象函数 383
    12.8.1ISOF() 383
    12.8.2TREAT() 387
    12.8.3SYS_TYPEID() 391
    12.9NOTINSTANTIABLE对象类型 391
    12.10用户自定义的构造函数 393
    12.11重载方法 396
    12.12通用调用 398
    12.13小结 400

    第13章集合 401
    13.1集合简介 401
    13.2创建集合类型 402
    13.2.1创建变长数组类型 402
    13.2.2创建嵌套表类型 403
    13.3使用集合类型定义表列 403
    13.3.1使用变长数组类型定义表列 403
    13.3.2使用嵌套表类型定义表列 404
    13.4获取集合信息 404
    13.4.1获取变长数组信息 404
    13.4.2获得嵌套表信息 405
    13.5填充集合元素 407
    13.5.1填充变长数组元素 407
    13.5.2填充嵌套表元素 407
    13.6检索集合元素 408
    13.6.1检索变长数组元素 408
    13.6.2检索嵌套表元素 409
    13.7使用TABLE()将集合视为一系列行 409
    13.7.1将TABLE()用于变长数组 410
    13.7.2将TABLE()用于嵌套表 411
    13.8更改集合元素 411
    13.8.1更改变长数组元素 411
    13.8.2更改嵌套表元素 412
    13.9使用映射方法比较嵌套表的内容 413
    13.10使用CAST()将集合从一种类型转换为另一种类型 415
    13.10.1使用CAST()将变长数组转换为嵌套表 416
    13.10.2使用CAST()将嵌套表转换为变长数组 416
    13.11在PL/SQL中使用集合 417
    13.11.1操作变长数组 417
    13.11.2操作嵌套表 419
    13.11.3PL/SQL集合方法 421
    13.12多级集合类型 431
    13.13OracleDatabase10g对集合的增强 433
    13.13.1关联数组 434
    13.13.2更改元素类型的大小 435
    13.13.3增加变长数组的元素数目 435
    13.13.4在临时表中使用变长数组 435
    13.13.5为嵌套表的存储表使用不同的表空间 435
    13.13.6嵌套表对ANSI的支持 436
    13.14小结 444

    第14章大对象 447
    14.1大对象(LOB)简介 448
    14.2示例文件 448
    14.3理解大对象类型 449
    14.4创建包含大对象的表 449
    14.5在SQL中使用大对象 450
    14.5.1使用CLOB和BLOB 450
    14.5.2使用BFILE 452
    14.6在PL/SQL中使用大对象 454
    14.6.1APPEND() 456
    14.6.2CLOSE() 457
    14.6.3COMPARE() 457
    14.6.4COPY() 458
    14.6.5CREATETEMPORARY() 459
    14.6.6ERASE() 460
    14.6.7FILECLOSE() 460
    14.6.8FILECLOSEALL() 461
    14.6.9FILEEXISTS() 461
    14.6.10FILEGETNAME() 462
    14.6.11FILEISOPEN() 462
    14.6.12FILEOPEN() 463
    14.6.13FREETEMPORARY() 463
    14.6.14GETCHUNKSIZE() 464
    14.6.15GET_STORAGE_LIMIT() 464
    14.6.16GETLENGTH() 464
    14.6.17INSTR() 465
    14.6.18ISOPEN() 466
    14.6.19ISTEMPORARY() 467
    14.6.20LOADFROMFILE() 467
    14.6.21LOADBLOBFROMFILE() 468
    14.6.22LOADCLOBFROMFILE() 469
    14.6.23OPEN() 470
    14.6.24READ() 471
    14.6.25SUBSTR() 471
    14.6.26TRIM() 473
    14.6.27WRITE() 473
    14.6.28WRITEAPPEND() 474
    14.6.29PL/SQL示例过程 475
    14.7理解LONG和LONGRAW类型 492
    14.7.1示例表 492
    14.7.2向LONG和LONGRAW列添加数据 492
    14.7.3将LONG和LONGRAW列转换为LOB 493
    14.8OracleDatabase10g对大对象的增强 494
    14.8.1CLOB和NCLOB对象之间的隐式转换 494
    14.8.2在触发器中使用LOB时:new属性的用法 495
    14.9OracleDatabase11g对大对象的增强 495
    14.9.1加密LOB数据 496
    14.9.2压缩LOB数据 499
    14.9.3删除LOB重复数据 499
    14.10小结 500

    第15章在Java程序中运行SQL 501
    15.1准备工作 502
    15.2配置计算机 502
    15.2.1设置ORACLE_HOME环境变量 502
    15.2.2设置JAVA_HOME环境变量 503
    15.2.3设置PATH环境变量 503
    15.2.4设置CLASSPATH环境变量 504
    15.2.5设置LD_LIBRARY_PATH环境变量 504
    15.3OracleJDBC驱动程序 505
    15.3.1Thin驱动程序 505
    15.3.2OCI驱动程序 505
    15.3.3服务器端内部驱动程序 505
    15.3.4服务器端Thin驱动程序 505
    15.4导入JDBC包 506
    15.5注册OracleJDBC驱动程序 506
    15.6打开数据库连接 506
    15.6.1使用getConnection()方法连接数据库 507
    15.6.2数据库URL 507
    15.6.3使用Oracle数据源连接数据库 508
    15.7创建JDBCStatement对象 511
    15.8从数据库中检索行 511
    15.8.1步骤1:创建和填充ResultSet对象 511
    15.8.2步骤2:从ResultSet对象中读取列值 512
    15.8.3步骤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示例程序:BasicExample1.java 522
    15.18.1编译BasicExample1 527
    15.18.2运行BasicExample1 527
    15.19预备SQL语句 529
    15.20示例程序:BasicExample2.java 531
    15.21OracleJDBC扩展 534
    15.21.1oracle.sql包 534
    15.21.2oracle.jdbc包 537
    15.21.3示例程序:
    BasicExample3.java 540
    15.22小结 543

    第16章SQL优化 545
    16.1SQL优化简介 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使用UNIONALL而不是UNION 550
    16.9使用EXISTS而不是IN 552
    16.10使用EXISTS而不是DISTINCT 552
    16.11使用GROUPINGSETS而不是CUBE 553
    16.12使用绑定变量 553
    16.12.1不相同的SQL语句 554
    16.12.2使用绑定变量定义相同SQL语句 554
    16.12.3列出和输出绑定变量 555
    16.12.4使用绑定变量存储PL/SQL函数的返回值 555
    16.12.5使用绑定变量存储REFCURSOR的行 556
    16.13比较执行查询的成本 556
    16.13.1检查执行计划 557
    16.13.2比较执行计划 562
    16.14为优化器传递提示 563
    16.15其他优化工具 564
    16.15.1OracleEnterpriseManager
    DiagnosticsPack 565
    16.15.2AutomaticDatabase
    DiagnosticMonitor 565
    16.16小结 566

    第17章XML和Oracle数据库 567
    17.1XML简介 567
    17.2从关系数据生成XML 568
    17.2.1XMLELEMENT() 568
    17.2.2XMLATTRIBUTES() 571
    17.2.3XMLFOREST() 571
    17.2.4XMLAGG() 573
    17.2.5XMLCOLATTVAL() 575
    17.2.6XMLCONCAT() 576
    17.2.7XMLPARSE() 576
    17.2.8XMLPI() 577
    17.2.9XMLCOMMENT() 577
    17.2.10XMLSEQUENCE() 578
    17.2.11XMLSERIALIZE() 579
    17.2.12PL/SQL范例:将XML数据写入文件 579
    17.2.13XMLQUERY() 581
    17.3将XML保存到数据库中 585
    17.3.1范例XML文件 585
    17.3.2创建范例XML模式 586
    17.3.3从范例XML模式检索信息 588
    17.3.4更新范例XML模式中的信息 592
    17.4小结 595
    附录AOracle数据类型 597
  • 内容简介:
    Oracle专家JasonPrice带您一起学习如何通过SQL语句和PL/SQL程序访问Oracle数据库。本书是OraclePress重磅推出的一本关于OracleDatabase11gSQL的专著,是掌握SQL的必读之作。
    本书深入浅出、全面细致地讲解了如何读取和修改数据库信息,如何使用SQLPlus和SQLDeveloper,如何使用数据库对象,如何编写PL/SQL程序等内容。随着对本书学习的深入,读者将循序渐进地掌握最新的SQL特性和工具、性能优化技术、高级查询、Java支持以及XML应用。
  • 作者简介:
    JasonPrice是一位职业咨询专家,0racle公司前产品经理。他对Oracle的众多产品都做出了卓越的贡献,包括数据库、应用服务器和若干CRM应用程序。Jason是一位经Oracle认证的数据库管理员和应用程序开发人员,在软件行业具有15年以上的从业经验,并执笔撰写了多本关于Oracle、Java和NET的优秀图书。Jason获得了英国布里斯托尔大学的物理学荣誉科学学士学位。
    技术编辑简介
    ScottMikolaitis是Oracle公司的应用程序设计师,在Oracle公司工作10余年。他参与完成了OracleFusion的SOA技术原型和标准的开发Scott致力于用Java开发Web服务的工作,并参与人与系统交互模式的.Jabber。业余时间,他喜欢自己动手改进家居用品和天燃汽RC汽车。
  • 目录:
    第1章简介 1
    1.1关系数据库简介 2
    1.2结构化查询语言(SQL)简介 2
    1.3使用SQL*Plus 4
    1.3.1启动SQL*Plus 4
    1.3.2从命令行启动SQL*Plus 5
    1.3.3使用SQL*Plus执行SELECT语句 6
    1.4SQLDeveloper 7
    1.5创建store模式 9
    1.5.1运行SQL*Plus脚本创建store模式 9
    1.5.2用来创建store模式的DDL语句 10
    1.6添加、修改、删除行 18
    1.6.1向表中添加行 18
    1.6.2修改表中的现有行 19
    1.6.3从表中删除行 20
    1.7BINARY_FLOAT和BINARY_DOUBLE数据类型 21
    1.7.1BINARY_FLOAT和BINARY_DOUBLE的优点 21
    1.7.2在表中使用BINARY_FLOAT和BINARY_DOUBLE 21
    1.7.3特殊值 22
    1.8退出SQL*Plus 23
    1.9OraclePL/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
    2.6.1日期运算 29
    2.6.2列运算 30
    2.7使用列别名 31
    2.8使用连接操作合并列的输出结果 32
    2.9理解空值 33
    2.10禁止显示重复行 34
    2.11比较值 35
    2.12使用SQL操作符 37
    2.12.1使用LIKE操作符 37
    2.12.2使用IN操作符 38
    2.12.3使用BETWEEN操作符 39
    2.13使用逻辑操作符 40
    2.14理解操作符的优先级 41
    2.15使用ORDERBY子句对行进行排序 41
    2.16执行使用两个表的SELECT语句 42
    2.17使用表别名 44
    2.18笛卡尔积 45
    2.19执行使用多于两个表的SELECT语句 46
    2.20连接条件和连接类型 47
    2.20.1不等连接 47
    2.20.2外连接 48
    2.20.3自连接 51
    2.21使用SQL/92语法执行连接 52
    2.21.1使用SQL/92标准语法执行两个表的内连接 53
    2.21.2使用USING关键字简化连接 53
    2.21.3使用SQL/92执行多于两个表的内连接 54
    2.21.4使用SQL/92执行多列的内连接 55
    2.21.5使用SQL/92执行外连接 55
    2.21.6使用SQL/92执行自连接 56
    2.21.7使用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
    3.8.1临时变量 69
    3.8.2已定义变量 72
    3.9创建简单报表 74
    3.9.1在脚本中使用临时变量 74
    3.9.2在脚本中使用已定义变量 75
    3.9.3向脚本中的变量传递值 75
    3.9.4添加页眉和页脚 76
    3.9.5计算小计 78
    3.10从SQL*Plus获取帮助信息 79
    3.11自动生成SQL语句 80
    3.12断开数据库连接并退出SQL*Plus 81
    3.13小结 81

    第4章使用简单函数 83
    4.1使用单行函数 84
    4.1.1字符函数 84
    4.1.2数字函数 92
    4.1.3转换函数 96
    4.1.4正则表达式函数 102
    4.2使用聚合函数 108
    4.2.1AVG函数 109
    4.2.2COUNT函数 110
    4.2.3MAX和MIN函数 110
    4.2.4STDDEV函数 111
    4.2.5SUM函数 111
    4.2.6VARIANCE函数 112
    4.3对行进行分组 112
    4.3.1使用GROUPBY子句对行进行分组 112
    4.3.2调用聚合函数的错误用法 115
    4.3.3使用HAVING子句过滤行组 116
    4.3.4组合使用WHERE和GROUPBY子句 117
    4.3.5组合使用WHERE、GROUP
    BY和HAVING子句 117
    4.4小结 118

    第5章日期和时间的存储与处理 119
    5.1几个简单的存储和检索日期的例子 120
    5.2使用TO_CHAR()和
    TO_DATE()转换时间值 121
    5.2.1使用TO_CHAR()将时间值转换为字符串 121
    5.2.2使用TO_DATE()将字符串转换为时间值 125
    5.3设置默认的日期格式 128
    5.4Oracle对2位年份的处理 129
    5.4.1使用YY格式 129
    5.4.2使用RR格式 130
    5.5使用时间值函数 131
    5.5.1ADD_MONTHS函数 131
    5.5.2LAST_DAY函数 132
    5.5.3MONTHS_BETWEEN函数 133
    5.5.4NEXT_DAY函数 133
    5.5.5ROUND函数 133
    5.5.6SYSDATE 134
    5.5.7TRUNC函数 134
    5.6理解时区 135
    5.6.1与时区有关的函数 136
    5.6.2数据库时区和会话时区 136
    5.6.3获取时区的时差 137
    5.6.4获取时区名 138
    5.6.5将时间值从一个时区转换为另一个时区 138
    5.7使用时间戳 139
    5.7.1使用时间戳类型 139
    5.7.2与时间戳有关的函数 143
    5.8使用时间间隔 148
    5.8.1使用INTERVALYEARTOMONTH类型 149
    5.8.2使用INTERVALDAYTO
    SECOND类型 150
    5.8.3与时间间隔有关的函数 152
    5.9小结 153

    第6章子查询 155
    6.1子查询的类型 155
    6.2编写单行子查询 156
    6.2.1在WHERE子句中使用子查询 156
    6.2.2使用其他单行操作符 157
    6.2.3在HAVING子句中使用子查询 157
    6.2.4在FROM子句中使用子查询(内联视图) 159
    6.2.5可能碰到的错误 159
    6.3编写多行子查询 160
    6.3.1在多行子查询中使用IN操作符 161
    6.3.2在多行子查询中使用ANY操作符 162
    6.3.3在多行子查询中使用ALL操作符 162
    6.4编写多列子查询 162
    6.5编写关联子查询 163
    6.5.1关联子查询的例子 163
    6.5.2在关联子查询中使用EXISTS和NOTEXISTS 164
    6.6编写嵌套子查询 166
    6.7编写包含子查询的UPDATE和DELETE语句 168
    6.7.1编写包含子查询的UPDATE语句 168
    6.7.2编写包含子查询的DELETE语句 168
    6.8小结 169

    第7章高级查询 171
    7.1使用集合操作符 172
    7.1.1示例表 172
    7.1.2使用UNIONALL操作符 173
    7.1.3使用UNION操作符 174
    7.1.4使用INTERSECT操作符 175
    7.1.5使用MINUS操作符 175
    7.1.6组合使用集合操作符 176
    7.2使用TRANSLATE函数 178
    7.3使用DECODE()函数 179
    7.4使用CASE表达式 181
    7.4.1使用简单CASE表达式 181
    7.4.2使用搜索CASE表达式 182
    7.5层次化查询 183
    7.5.1示例数据 183
    7.5.2使用CONNECTBY和
    STARTWITH子句 185
    7.5.3使用伪列LEVEL 185
    7.5.4格式化层次化查询的结果 186
    7.5.5从非根节点开始遍历 187
    7.5.6在STARTWITH子句中使用子查询 187
    7.5.7从下向上遍历树 188
    7.5.8从层次查询中删除节点和分支 188
    7.5.9在层次化查询中加入其他条件 189
    7.6使用扩展的GROUPBY子句 190
    7.7使用ROLLUP子句 192
    7.7.1使用CUBE子句 194
    7.7.2使用GROUPING函数 195
    7.7.3使用GROUPINGSETS子句 198
    7.7.4使用GROUPING_ID函数 199
    7.7.5在GROUPBY子句中多次使用一个列 201
    7.7.6使用GROUP_ID函数 201
    7.8使用分析函数 203
    7.8.1示例表 203
    7.8.2使用评级函数 204
    7.8.3使用反百分点函数 211
    7.8.4使用窗口函数 211
    7.8.5使用报表函数 216
    7.8.6使用LAG和LEAD函数 218
    7.8.7使用FIRST和LAST函数 219
    7.8.8使用线性回归函数 219
    7.8.9使用假想评级与分布函数 221
    7.9使用MODEL子句 221
    7.9.1MODEL子句示例 222
    7.9.2用位置标记和符号标记访问数据单元 223
    7.9.3用BETWEEN和AND返回特定范围内的数据单元 224
    7.9.4用ANY和ISANY访问所有的数据单元 224
    7.9.5用CURRENTV()获取某个维度的当前值 225
    7.9.6用FOR循环访问数据单元 226
    7.9.7处理空值和缺失值 227
    7.9.8更新已有的单元 229
    7.10使用PIVOT和UNPIVOT子句 230
    7.10.1PIVOT子句示例 230
    7.10.2转换多个列 231
    7.10.3在转换中使用多个聚合函数 232
    7.10.4使用UNPIVOT子句 233
    7.11小结 234

    第8章修改表的内容 237
    8.1使用INSERT语句添加行 237
    8.1.1省略列的列表 239
    8.1.2为列指定空值 239
    8.1.3在列值中使用单引号和双引号 239
    8.1.4从一个表向另外一个表复制行 239
    8.2使用UPDATE语句修改行 240
    8.3RETURNING子句 241
    8.4使用DELETE语句删除行 242
    8.5数据库的完整性 242
    8.5.1主键约束 242
    8.5.2外键约束 243
    8.6使用默认值 244
    8.7使用MERGE合并行 245
    8.8数据库事务 247
    8.8.1事务的提交和回滚 247
    8.8.2事务的开始与结束 248
    8.8.3保存点 249
    8.8.4事务的ACID特性 251
    8.8.5并发事务 251
    8.8.6事务锁 252
    8.8.7事务隔离级别 253
    8.8.8SERIALIZABLE事务的一个例子 254
    8.9查询闪回 254
    8.9.1使用闪回的授权 254
    8.9.2时间查询闪回 255
    8.9.3系统变更号查询闪回 256
    8.10小结 258

    第9章用户、特权和角色 259
    9.1用户 260
    9.1.1创建用户 260
    9.1.2修改用户密码 261
    9.1.3删除用户 261
    9.2系统特权 262
    9.2.1向用户授予系统特权 263
    9.2.2检查授予用户的系统特权 263
    9.2.3使用系统特权 264
    9.2.4撤消用户的系统特权 264
    9.3对象特权 265
    9.3.1向用户授予对象特权 265
    9.3.2检查已授予的对象特权 266
    9.3.3检查已接受的对象特权 267
    9.3.4使用对象特权 269
    9.3.5同名对象 269
    9.3.6公共同名对象 270
    9.3.7撤消用户的对象特权 271
    9.4角色 271
    9.4.1创建角色 271
    9.4.2为角色授权 272
    9.4.3将角色授予用户 272
    9.4.4检查授予用户的角色 273
    9.4.5检查授予角色的系统特权 274
    9.4.6检查授予角色的对象特权 274
    9.4.7使用授予角色的特权 276
    9.4.8默认角色 276
    9.4.9撤消角色 277
    9.4.10从角色中撤消特权 277
    9.4.11删除角色 277
    9.5审计 277
    9.5.1执行审计需要的特权 277
    9.5.2审计示例 278
    9.5.3审计跟踪视图 279
    9.6小结 280

    第10章创建表、序列、索引和视图 281
    10.1表 282
    10.1.1创建表 282
    10.1.2获得有关表的信息 283
    10.1.3获得表中列的信息 284
    10.1.4修改表 285
    10.1.5重命名表 294
    10.1.6向表中添加注释 294
    10.1.7截断表 295
    10.1.8删除表 295
    10.2序列 295
    10.2.1创建序列 295
    10.2.2获取有关序列的信息 297
    10.2.3使用序列 298
    10.2.4使用序列填充主键 299
    10.2.5修改序列 300
    10.2.6删除序列 301
    10.3索引 301
    10.3.1创建B-树索引 302
    10.3.2创建基于函数的索引 303
    10.3.3获取有关索引的信息 303
    10.3.4获取列索引的信息 304
    10.3.5修改索引 304
    10.3.6删除索引 305
    10.3.7创建位图索引 305
    10.4视图 305
    10.4.1创建并使用视图 306
    10.4.2修改视图 313
    10.4.3删除视图 314
    10.5闪回数据归档 314
    10.6小结 316

    第11章PL/SQL编程简介 317
    11.1块结构 318
    11.2变量和类型 319
    11.3条件逻辑 320
    11.4循环 320
    11.4.1简单循环 321
    11.4.2WHILE循环 322
    11.4.3FOR循环 322
    11.5游标 323
    11.5.1步骤1:声明用于保存列值的变量 323
    11.5.2步骤2:声明游标 323
    11.5.3步骤3:打开游标 324
    11.5.4步骤4:从游标中取得记录 324
    11.5.5步骤5:关闭游标 325
    11.5.6完整的示例:product_cursor.sql 325
    11.5.7游标与FOR循环 326
    11.5.8OPEN-FOR语句 327
    11.5.9无约束游标 329
    11.6异常 330
    11.6.1ZERO_DIVIDE异常 332
    11.6.2DUP_VAL_ON_INDEX异常 333
    11.6.3INVALID_NUMBER异常 333
    11.6.4OTHERS异常 333
    11.7过程 334
    11.7.1创建过程 334
    11.7.2调用过程 337
    11.7.3获取有关过程的信息 338
    11.7.4删除过程 338
    11.7.5查看过程中的错误 338
    11.8函数 339
    11.8.1创建函数 339
    11.8.2调用函数 340
    11.8.3获取有关函数的信息 341
    11.8.4删除函数 341
    11.9包 341
    11.9.1创建包规范 342
    11.9.2创建包体 342
    11.9.3调用包中的函数和过程 344
    11.9.4获取有关包中函数和过程的信息 344
    11.9.5删除包 345
    11.10触发器 345
    11.10.1触发器运行的时机 345
    11.10.2设置示例触发器 345
    11.10.3创建触发器 346
    11.10.4激活触发器 347
    11.10.5获取有关触发器的信息 348
    11.10.6禁用和启用触发器 350
    11.10.7删除触发器 350
    11.11OracleDatabase11g新增加的PL/SQL特性 350
    11.11.1SIMPLE_INTEGER类型 350
    11.11.2在PL/SQL中使用序列 351
    11.11.3PL/SQL本地机器代码生成 352
    11.12小结 353

    第12章数据库对象 355
    12.1对象简介 356
    12.2创建对象类型 356
    12.3使用DESCRIBE获取有关对象类型的信息 358
    12.4在数据库表中使用对象类型 359
    12.4.1列对象 359
    12.4.2对象表 361
    12.4.3对象标识符和对象引用 365
    12.4.4比较对象值 367
    12.5在PL/SQL中使用对象 369
    12.5.1get_products()函数 370
    12.5.2display_product()过程 371
    12.5.3insert_product()过程 372
    12.5.4update_product_price()过程 373
    12.5.5get_product()函数 373
    12.5.6update_product()过程 374
    12.5.7get_product_ref()函数 375
    12.5.8delete_product()过程 375
    12.5.9product_lifecycle()过程 376
    12.5.10product_lifecycle2()过程 377
    12.6类型继承 378
    12.7用子类型对象代替超类型对象 380
    12.7.1SQL例子 380
    12.7.2PL/SQL例子 381
    12.7.3NOTSUBSTITUTABLE对象 382
    12.8其他有用的对象函数 383
    12.8.1ISOF() 383
    12.8.2TREAT() 387
    12.8.3SYS_TYPEID() 391
    12.9NOTINSTANTIABLE对象类型 391
    12.10用户自定义的构造函数 393
    12.11重载方法 396
    12.12通用调用 398
    12.13小结 400

    第13章集合 401
    13.1集合简介 401
    13.2创建集合类型 402
    13.2.1创建变长数组类型 402
    13.2.2创建嵌套表类型 403
    13.3使用集合类型定义表列 403
    13.3.1使用变长数组类型定义表列 403
    13.3.2使用嵌套表类型定义表列 404
    13.4获取集合信息 404
    13.4.1获取变长数组信息 404
    13.4.2获得嵌套表信息 405
    13.5填充集合元素 407
    13.5.1填充变长数组元素 407
    13.5.2填充嵌套表元素 407
    13.6检索集合元素 408
    13.6.1检索变长数组元素 408
    13.6.2检索嵌套表元素 409
    13.7使用TABLE()将集合视为一系列行 409
    13.7.1将TABLE()用于变长数组 410
    13.7.2将TABLE()用于嵌套表 411
    13.8更改集合元素 411
    13.8.1更改变长数组元素 411
    13.8.2更改嵌套表元素 412
    13.9使用映射方法比较嵌套表的内容 413
    13.10使用CAST()将集合从一种类型转换为另一种类型 415
    13.10.1使用CAST()将变长数组转换为嵌套表 416
    13.10.2使用CAST()将嵌套表转换为变长数组 416
    13.11在PL/SQL中使用集合 417
    13.11.1操作变长数组 417
    13.11.2操作嵌套表 419
    13.11.3PL/SQL集合方法 421
    13.12多级集合类型 431
    13.13OracleDatabase10g对集合的增强 433
    13.13.1关联数组 434
    13.13.2更改元素类型的大小 435
    13.13.3增加变长数组的元素数目 435
    13.13.4在临时表中使用变长数组 435
    13.13.5为嵌套表的存储表使用不同的表空间 435
    13.13.6嵌套表对ANSI的支持 436
    13.14小结 444

    第14章大对象 447
    14.1大对象(LOB)简介 448
    14.2示例文件 448
    14.3理解大对象类型 449
    14.4创建包含大对象的表 449
    14.5在SQL中使用大对象 450
    14.5.1使用CLOB和BLOB 450
    14.5.2使用BFILE 452
    14.6在PL/SQL中使用大对象 454
    14.6.1APPEND() 456
    14.6.2CLOSE() 457
    14.6.3COMPARE() 457
    14.6.4COPY() 458
    14.6.5CREATETEMPORARY() 459
    14.6.6ERASE() 460
    14.6.7FILECLOSE() 460
    14.6.8FILECLOSEALL() 461
    14.6.9FILEEXISTS() 461
    14.6.10FILEGETNAME() 462
    14.6.11FILEISOPEN() 462
    14.6.12FILEOPEN() 463
    14.6.13FREETEMPORARY() 463
    14.6.14GETCHUNKSIZE() 464
    14.6.15GET_STORAGE_LIMIT() 464
    14.6.16GETLENGTH() 464
    14.6.17INSTR() 465
    14.6.18ISOPEN() 466
    14.6.19ISTEMPORARY() 467
    14.6.20LOADFROMFILE() 467
    14.6.21LOADBLOBFROMFILE() 468
    14.6.22LOADCLOBFROMFILE() 469
    14.6.23OPEN() 470
    14.6.24READ() 471
    14.6.25SUBSTR() 471
    14.6.26TRIM() 473
    14.6.27WRITE() 473
    14.6.28WRITEAPPEND() 474
    14.6.29PL/SQL示例过程 475
    14.7理解LONG和LONGRAW类型 492
    14.7.1示例表 492
    14.7.2向LONG和LONGRAW列添加数据 492
    14.7.3将LONG和LONGRAW列转换为LOB 493
    14.8OracleDatabase10g对大对象的增强 494
    14.8.1CLOB和NCLOB对象之间的隐式转换 494
    14.8.2在触发器中使用LOB时:new属性的用法 495
    14.9OracleDatabase11g对大对象的增强 495
    14.9.1加密LOB数据 496
    14.9.2压缩LOB数据 499
    14.9.3删除LOB重复数据 499
    14.10小结 500

    第15章在Java程序中运行SQL 501
    15.1准备工作 502
    15.2配置计算机 502
    15.2.1设置ORACLE_HOME环境变量 502
    15.2.2设置JAVA_HOME环境变量 503
    15.2.3设置PATH环境变量 503
    15.2.4设置CLASSPATH环境变量 504
    15.2.5设置LD_LIBRARY_PATH环境变量 504
    15.3OracleJDBC驱动程序 505
    15.3.1Thin驱动程序 505
    15.3.2OCI驱动程序 505
    15.3.3服务器端内部驱动程序 505
    15.3.4服务器端Thin驱动程序 505
    15.4导入JDBC包 506
    15.5注册OracleJDBC驱动程序 506
    15.6打开数据库连接 506
    15.6.1使用getConnection()方法连接数据库 507
    15.6.2数据库URL 507
    15.6.3使用Oracle数据源连接数据库 508
    15.7创建JDBCStatement对象 511
    15.8从数据库中检索行 511
    15.8.1步骤1:创建和填充ResultSet对象 511
    15.8.2步骤2:从ResultSet对象中读取列值 512
    15.8.3步骤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示例程序:BasicExample1.java 522
    15.18.1编译BasicExample1 527
    15.18.2运行BasicExample1 527
    15.19预备SQL语句 529
    15.20示例程序:BasicExample2.java 531
    15.21OracleJDBC扩展 534
    15.21.1oracle.sql包 534
    15.21.2oracle.jdbc包 537
    15.21.3示例程序:
    BasicExample3.java 540
    15.22小结 543

    第16章SQL优化 545
    16.1SQL优化简介 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使用UNIONALL而不是UNION 550
    16.9使用EXISTS而不是IN 552
    16.10使用EXISTS而不是DISTINCT 552
    16.11使用GROUPINGSETS而不是CUBE 553
    16.12使用绑定变量 553
    16.12.1不相同的SQL语句 554
    16.12.2使用绑定变量定义相同SQL语句 554
    16.12.3列出和输出绑定变量 555
    16.12.4使用绑定变量存储PL/SQL函数的返回值 555
    16.12.5使用绑定变量存储REFCURSOR的行 556
    16.13比较执行查询的成本 556
    16.13.1检查执行计划 557
    16.13.2比较执行计划 562
    16.14为优化器传递提示 563
    16.15其他优化工具 564
    16.15.1OracleEnterpriseManager
    DiagnosticsPack 565
    16.15.2AutomaticDatabase
    DiagnosticMonitor 565
    16.16小结 566

    第17章XML和Oracle数据库 567
    17.1XML简介 567
    17.2从关系数据生成XML 568
    17.2.1XMLELEMENT() 568
    17.2.2XMLATTRIBUTES() 571
    17.2.3XMLFOREST() 571
    17.2.4XMLAGG() 573
    17.2.5XMLCOLATTVAL() 575
    17.2.6XMLCONCAT() 576
    17.2.7XMLPARSE() 576
    17.2.8XMLPI() 577
    17.2.9XMLCOMMENT() 577
    17.2.10XMLSEQUENCE() 578
    17.2.11XMLSERIALIZE() 579
    17.2.12PL/SQL范例:将XML数据写入文件 579
    17.2.13XMLQUERY() 581
    17.3将XML保存到数据库中 585
    17.3.1范例XML文件 585
    17.3.2创建范例XML模式 586
    17.3.3从范例XML模式检索信息 588
    17.3.4更新范例XML模式中的信息 592
    17.4小结 595
    附录AOracle数据类型 597
查看详情
您可能感兴趣 / 更多
Oracle Database 11g SQL开发指南
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
Oracle Database 11g SQL开发指南
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
Oracle Database 11g SQL开发指南
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
Oracle Database 11g SQL开发指南
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
Oracle Database 11g SQL开发指南
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
Oracle Database 11g SQL开发指南
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
Oracle Database 11g SQL开发指南
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
Oracle Database 11g SQL开发指南
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
Oracle Database 11g SQL开发指南
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
Oracle Database 11g SQL开发指南
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
Oracle Database 11g SQL开发指南
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
Oracle Database 11g SQL开发指南
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译