Oracle Database 11g SQL开发指南
9985871385370820609
¥
9.7
1.2折
¥
78
九五品
仅1件
作者[美]皮拉斯(Price J.) 著;史新元、北英 译
出版社清华大学出版社
出版时间2008-11
版次1
装帧平装
货号9985871385370820609
上书时间2024-12-03
商品详情
- 品相描述:九五品
图书标准信息
-
作者
[美]皮拉斯(Price J.) 著;史新元、北英 译
-
出版社
清华大学出版社
-
出版时间
2008-11
-
版次
1
-
ISBN
9787302185895
-
定价
78.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
600页
-
字数
992千字
-
正文语种
简体中文
- 【内容简介】
-
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*Plus4
1.3.1启动SQL*Plus4
1.3.2从命令行启动SQL*Plus5
1.3.3使用SQL*Plus执行SELECT语句6
1.4SQLDeveloper7
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_DOUBLE21
1.7.3特殊值22
1.8退出SQL*Plus23
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*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.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.6SYSDATE134
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和NOTEXISTS164
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使用伪列LEVEL185
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.sql325
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和BLOB450
14.5.2使用BFILE452
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列转换为LOB493
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程序中运行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.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数据库URL507
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.java522
15.18.1编译BasicExample1527
15.18.2运行BasicExample1527
15.19预备SQL语句529
15.20示例程序:BasicExample2.java531
15.21OracleJDBC扩展534
15.21.1oracle.sql包534
15.21.2oracle.jdbc包537
15.21.3示例程序:
BasicExample3.java540
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而不是HAVING550
16.8使用UNIONALL而不是UNION550
16.9使用EXISTS而不是IN552
16.10使用EXISTS而不是DISTINCT552
16.11使用GROUPINGSETS而不是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.1OracleEnterpriseManager
DiagnosticsPack565
16.15.2AutomaticDatabase
DiagnosticMonitor565
16.16小结566
第17章XML和Oracle数据库567
17.1XML简介567
17.2从关系数据生成XML568
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
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价