商家名称 | 信用等级 | 购买信息 | 订购本书 |
Oracle Database 11g SQL开发指南 [平装] | |||
Oracle Database 11g SQL开发指南 [平装] |
《Oracle Database 11g SQL开发指南》Oracle专家Jason Price带您一起学习如何通过SQL语句和PL/SQL程序访问Oracle数据库。《Oracle Database 11g SQL开发指南》是Oracle Press重磅推出的一本关于Oracle Database 11g SQL的专著,是掌握SQL的必读之作。
作者:(美国)皮拉斯 (Price.J.) 译者:史新元 北英
Jason Price是一位职业咨询专家,0racle公司前产品经理。他对Oracle的众多产品都做出了卓越的贡献,包括数据库、应用服务器和若干CRM应用程序。Jason是一位经Oracle认证的数据库管理员和应用程序开发人员,在软件行业具有15年以上的从业经验,并执笔撰写了多本关于Oracle、Java和NET的优秀图书。Jason获得了英国布里斯托尔大学的物理学荣誉科学学士学位。
技术编辑简介
Scott Mikolaitis是Oracle公司的应用程序设计师,在Oracle公司工作10余年。他参与完成了Oracle Fusion的SOA技术原型和标准的开发Scott致力于用Java开发Web服务的工作,并参与人与系统交互模式的.Jabber。业余时间,他喜欢自己动手改进家居用品和天燃汽RC汽车。
第1章 简介1
1.1 关系数据库简介2
1.2 结构化查询语言(SQL)简介2
1.3 使用SQL*Plus4
1.3.1 启动SQL*Plus4
1.3.2 从命令行启动SQL*Plus5
1.3.3 使用SQL*Plus执行SELECT语句6
1.4 SQL Developer7
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.7 BINARY_FLOAT和BINARY_ DOUBLE数据类型21
1.7.1 BINARY_FLOAT和BINARY_DOUBLE的优点21
1.7.2 在表中使用BINARY_FLOAT和BINARY_DOUBLE21
1.7.3 特殊值22
1.8 退出SQL*Plus23
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
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 使用ORDER BY子句对行进行排序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*Plus59
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*Plus81
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.1 AVG函数109
4.2.2 COUNT函数110
4.2.3 MAX和MIN函数110
4.2.4 STDDEV函数111
4.2.5 SUM函数111
4.2.6 VARIANCE函数112
4.3 对行进行分组112
4.3.1 使用GROUP BY子句对行进行分组112
4.3.2 调用聚合函数的错误用法115
4.3.3 使用HAVING子句过滤行组116
4.3.4 组合使用WHERE和GROUP BY子句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.4 Oracle对2位年份的处理129
5.4.1 使用YY格式129
5.4.2 使用RR格式130
5.5 使用时间值函数131
5.5.1 ADD_MONTHS函数131
5.5.2 LAST_DAY函数132
5.5.3 MONTHS_BETWEEN函数133
5.5.4 NEXT_DAY函数133
5.5.5 ROUND函数133
5.5.6 SYSDATE134
5.5.7 TRUNC函数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 使用INTERVAL YEAR TO MONTH类型149
5.8.2 使用INTERVAL DAY TO
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和NOT EXISTS164
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 使用UNION ALL操作符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 使用CONNECT BY和
START WITH子句185
7.5.3 使用伪列LEVEL185
7.5.4 格式化层次化查询的结果186
7.5.5 从非根节点开始遍历187
7.5.6 在START WITH子句中使用子查询187
7.5.7 从下向上遍历树188
7.5.8 从层次查询中删除节点和分支188
7.5.9 在层次化查询中加入其他条件189
7.6 使用扩展的GROUP BY子句190
7.7 使用ROLLUP子句192
7.7.1 使用CUBE子句194
7.7.2 使用GROUPING函数195
7.7.3 使用GROUPING SETS子句198
7.7.4 使用GROUPING_ID函数199
7.7.5 在GROUP BY子句中多次使用一个列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.1 MODEL子句示例222
7.9.2 用位置标记和符号标记访问数据单元223
7.9.3 用BETWEEN和AND返回特定范围内的数据单元224
7.9.4 用ANY和IS ANY访问所有的数据单元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.1 PIVOT子句示例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.3 RETURNING子句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.8 SERIALIZABLE事务的一个例子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.2 WHILE循环322
11.4.3 FOR循环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.sql325
11.5.7 游标与FOR循环326
11.5.8 OPEN-FOR语句327
11.5.9 无约束游标329
11.6 异常330
11.6.1 ZERO_DIVIDE异常332
11.6.2 DUP_VAL_ON_INDEX异常333
11.6.3 INVALID_NUMBER异常333
11.6.4 OTHERS异常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.11 Oracle Database 11g新增加的PL/SQL特性350
11.11.1 SIMPLE_INTEGER类型350
11.11.2 在PL/SQL中使用序列351
11.11.3 PL/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.1 get_products()函数370
12.5.2 display_product()过程371
12.5.3 insert_product()过程372
12.5.4 update_product_price()过程373
12.5.5 get_product()函数373
12.5.6 update_product()过程374
12.5.7 get_product_ref()函数375
12.5.8 delete_product()过程375
12.5.9 product_lifecycle()过程376
12.5.10 product_lifecycle2()过程377
12.6 类型继承378
12.7 用子类型对象代替超类型对象380
12.7.1 SQL例子380
12.7.2 PL/SQL例子381
12.7.3 NOT SUBSTITUTABLE对象382
12.8 其他有用的对象函数383
12.8.1 IS OF()383
12.8.2 TREAT()387
12.8.3 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
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.3 PL/SQL集合方法421
13.12 多级集合类型431
13.13 Oracle Database 10g对集合的增强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和BLOB450
14.5.2 使用BFILE452
14.6 在PL/SQL中使用大对象454
14.6.1 APPEND()456
14.6.2 CLOSE()457
14.6.3 COMPARE()457
14.6.4 COPY()458
14.6.5 CREATETEMPORARY()459
14.6.6 ERASE()460
14.6.7 FILECLOSE()460
14.6.8 FILECLOSEALL()461
14.6.9 FILEEXISTS()461
14.6.10 FILEGETNAME()462
14.6.11 FILEISOPEN()462
14.6.12 FILEOPEN()463
14.6.13 FREETEMPORARY()463
14.6.14 GETCHUNKSIZE()464
14.6.15 GET_STORAGE_LIMIT()464
14.6.16 GETLENGTH()464
14.6.17 INSTR()465
14.6.18 ISOPEN()466
14.6.19 ISTEMPORARY()467
14.6.20 LOADFROMFILE()467
14.6.21 LOADBLOBFROMFILE()468
14.6.22 LOADCLOBFROMFILE()469
14.6.23 OPEN()470
14.6.24 READ()471
14.6.25 SUBSTR()471
14.6.26 TRIM()473
14.6.27 WRITE()473
14.6.28 WRITEAPPEND()474
14.6.29 PL/SQL示例过程475
14.7 理解LONG和LONG RAW类型492
14.7.1 示例表492
14.7.2 向LONG和LONG RAW列添加数据492
14.7.3 将LONG和LONG RAW列转换为LOB493
14.8 Oracle Database 10g对大对象的增强494
14.8.1 CLOB和NCLOB对象之间的隐式转换494
14.8.2 在触发器中使用LOB时:new属性的用法495
14.9 Oracle Database 11g对大对象的增强495
14.9.1 加密LOB数据496
14.9.2 压缩LOB数据499
14.9.3 删除LOB重复数据499
14.10 小结500
第15章 在Java程序中运行SQL501
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.3 Oracle JDBC驱动程序505
15.3.1 Thin驱动程序505
15.3.2 OCI驱动程序505
15.3.3 服务器端内部驱动程序505
15.3.4 服务器端Thin驱动程序505
15.4 导入JDBC包506
15.5 注册Oracle JDBC驱动程序506
15.6 打开数据库连接506
15.6.1 使用getConnection()方法连接数据库507
15.6.2 数据库URL507
15.6.3 使用Oracle数据源连接数据库508
15.7 创建JDBC Statement对象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.java522
15.18.1 编译BasicExample1527
15.18.2 运行BasicExample1527
15.19 预备SQL语句529
15.20 示例程序:BasicExample2.java531
15.21 Oracle JDBC扩展534
15.21.1 oracle.sql包534
15.21.2 oracle.jdbc包537
15.21.3 示例程序:
BasicExample3.java540
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而不是HAVING550
16.8 使用UNION ALL而不是UNION550
16.9 使用EXISTS而不是IN552
16.10 使用EXISTS而不是DISTINCT552
16.11 使用GROUPING SETS而不是CUBE553
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.1 Oracle Enterprise Manager
Diagnostics Pack565
16.15.2 Automatic Database
Diagnostic Monitor565
16.16 小结566
第17章 XML和Oracle数据库567
17.1 XML简介567
17.2 从关系数据生成XML568
17.2.1 XMLELEMENT()568
17.2.2 XMLATTRIBUTES()571
17.2.3 XMLFOREST()571
17.2.4 XMLAGG()573
17.2.5 XMLCOLATTVAL()575
17.2.6 XMLCONCAT()576
17.2.7 XMLPARSE()576
17.2.8 XMLPI()577
17.2.9 XMLCOMMENT()577
17.2.10 XMLSEQUENCE()578
17.2.11 XMLSERIALIZE()579
17.2.12 PL/SQL范例:将XML数据写入文件579
17.2.13 XMLQUERY()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
附录A Oracle数据类型597
现在的数据库管理系统实现了一种标准语言——结构化查询语言(Structured Query Language,SQL)。除了具有其他语言的特点之外,SQL还可以对数据库中的信息进行检索、添加、修改和删除。本书将介绍如何真正掌握SQL,同时还会给出许多实用的例子。读者可以通过Internet获得本书中用到的所有脚本和程序(详细信息参看后文“本书源代码下载”部分)。
通过本书读者可以:
● 掌握标准的SQL,以及Oracle公司为了使用Oracle数据库的特性而开发的一些扩展。
● 理解PL/SQL(过程化语言/SQL),它构建在SQL基础之上,允许用户编写包含SQL语句的程序。
● 使用SQL*Plus执行SQL语句、脚本和报表;SQL*Plus就是一个与数据库进行交互的工具。
● 对数据库执行查询、插入、更新和删除操作。
● 创建数据库表、序列、索引、视图和用户。
● 执行包含多条SQL语句的事务。
● 定义数据库对象类型,以及创建对象表来处理高级数据。
● 使用大对象来处理包含图像、音乐和电影的多媒体文件。
● 使用分析函数执行复杂计算。
● 使用所有最新的Oracle Database 11g特性,例如PIVOT和UNPIVOT、闪回归档以及更多新特性。
● 实现高性能的优化技术,使SQL语句可以快速执行。
● 编写使用JDBC来访问Oracle数据库的Java程序。
● 掌握Oracle数据库的XML功能。
插图:
第1章 简介
1.1 关系数据库简介
关系数据库的概念是由E.F.Codd博士于1970年首次提出的。E.F.Codd博士在
Communications of the ACM(Association for Computing Machinery,美国计算机学会)1970年6月第13卷第6期上发表了一篇题为A Relational Model ofData for Large Shared Data Banks(大型共享数据库的关系数据模型)的重要论文,奠定了关系数据库的理论基础。
关系数据库(relational database)的基本概念非常简单易懂。关系数据库是一组已经被组织为表(table)结构的相关信息的集合。每个表都包含很多行(row),这些行又被进一步组织为列(column)。这些表在数据库中都被存储在称为模式(schema)的结构中,所谓模式就是数据库用户可以存储表的地方。每个用户都可以为其他用户授权访问自己的表。
喜欢Oracle Database 11g SQL开发指南 [平装]请与您的朋友分享,由于版权原因,读书人网不提供图书下载服务