-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

精通Oracle Database 12c SQL & PL/SQL編程(第3版)

( 簡體 字)
作者:[美]Jason Price 著 盧濤 譯類別:1. -> 資料庫 -> Oracle
譯者:
出版社:清華大學出版社精通Oracle Database 12c SQL & PL/SQL編程(第3版) 3dWoo書號: 38824
詢問書籍請說出此書號!

缺書
NT售價: 400

出版日:6/17/2014
頁數:588
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302365983
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

現在的數據庫管理系統使用一種標準語言——結構化查詢語言(Structured Query Language,SQL)訪問。此外,SQL還可以對數據庫中的信息進行檢索、添加、更新和刪除。本書將介紹如何真正掌握SQL,同時還會給出許多實用的例子。讀者可以通過網絡獲得本書中用到的所有腳本和程序(詳細信息參看后文“本書源代碼下載”部分)。
通過本書讀者可以:
掌握標準的SQL,以及Oracle公司為了使用Oracle數據庫的特性而開發的一些擴展。
理解PL/SQL,它允許用戶編寫包含SQL語句的程序。
使用SQL*Plus執行SQL語句、腳本和報表;SQL*Plus是一個用于與數據庫進行交互的工具。
對數據庫執行查詢、插入、更新和刪除操作。
創建數據庫表、序列、索引、視圖和用戶。
執行包含多條SQL語句的事務。
定義數據庫對象類型,以及創建對象表來處理高級數據。
使用大對象來處理包含圖像、音樂和電影的多媒體文件。
使用分析函數執行復雜計算。
實現高性能的優化技術,使SQL語句可以快速執行。
探討Oracle數據庫的XML功能。
使用最新的Oracle Database 12c SQL功能。
本書共包含17章和一個附錄。
第1章 簡介
本章將介紹有關關系數據庫和SQL的知識,然后給出幾個簡單查詢,并使用SQL*Plus和SQL Developer執行這些查詢,最后簡要介紹PL/SQL。
第2章 從數據庫表中檢索信息
本章將展示如何使用SELECT語句從一個或多個數據庫表中檢索信息,如何使用算術表達式執行計算,如何使用WHERE子句對行進行過濾,以及如何對從表中檢索出的行排序。
第3章 使用SQL*Plus
本章將介紹使用SQL*Plus來查看表的結構,編輯SQL語句,保存并運行腳本,設置列的輸出格式,定義并使用變量,以及創建報表。
第4章 使用簡單函數
本章將介紹有關Oracle數據庫中內置函數的知識。函數可以接受輸入參數,并返回輸出參數1。使用函數可以實現很多功能,例如計算一組數字的平均值和平方根。
第5章 日期和時間的存儲與處理
本章將介紹Oracle數據庫如何處理與存儲日期和時間(二者合稱時間值)。本章還將介紹如何使用時間戳來存儲特定的日期和時間,如何使用時間間隔來存儲一定長度的時間段。
第6章 子查詢
本章將介紹如何在外部的SQL語句中放置SELECT語句。內部的SELECT語句被稱為子查詢。本章還將介紹子查詢的各種類型,以及如何使用子查詢從簡單部件構建復雜語句。
第7章 高級查詢
本章將介紹如何執行包含高級操作符和函數的查詢。例如,集合操作符可以合并由多個查詢返回的行,TRANSLATE()函數可以將一個字符串中的字符轉換為另一個字符串中的字符,DECODE()函數可以在一組值中搜索某個特定的值,CASE表達式可以執行if-then-else邏輯,ROLLUP和CUBE子句可以返回包含小計的行。Oracle Database 12c中新增加了CROSS APPLY和OUTER APPLY來合并兩條SELECT語句返回的行,還增加了LATERAL以返回數據的內聯視圖。
第8章 分析數據
本章將介紹有關分析函數的知識,分析函數可以用來執行復雜計算,例如查找每月銷量最高的產品類型、業績最佳的銷售員等。本章還將介紹如何對層次化組織的數據進行查詢,并將探討如何使用MODEL子句執行行間計算。最后,我們會講解PIVOT和UNPIVOT子句,使用它們可以了解大量數據的整體趨勢。Oracle Database 12c中新增加了 MATCH_RECOGNIZE子句來查找數據中的模式,還增加了 FETCH FIRST 子句來執行top-N查詢。
第9章 修改表的內容
本章將介紹如何使用INSERT、UPDATE和DELETE語句添加、修改和刪除行,如何使用COMMIT語句使事務的處理結果永久生效,或者使用ROLLBACK語句完全取消事務執行的操作。本章還將介紹Oracle數據庫如何同時處理多個事務。
第10章 用戶、特權和角色
本章將介紹有關數據庫用戶的知識以及如何使用特權和角色來控制用戶可以在數據庫中執行的特定任務。
第11章 創建表、序列、索引和視圖
本章將介紹有關表、序列和索引的知識。序列會生成一系列數字,而索引就如同書籍的索引,可以幫助讀者快速訪問表中的行。本章還將介紹有關視圖的知識,視圖是對一個或多個表預定義的查詢。視圖可以對用戶屏蔽復雜性,并通過只允許視圖訪問表中有限的數據集,從另一層面上實現安全特性。本章還將討論閃回數據歸檔,這會將對表所做的改變存儲一段時間。Oracle Database 12c中新增加了在表中定義可見列和不可見列的能力。
第12章 PL/SQL編程簡介
本章將介紹有關PL/SQL的知識,PL/SQL構建在SQL基礎之上,使用PL/SQL可以在數據庫中編寫包含SQL語句的存儲程序。PL/SQL包含標準的編程結構。
第13章 數據庫對象
本章將介紹如何創建數據庫對象類型,數據庫對象類型可以包括屬性和方法;還將介紹如何使用對象類型來定義列對象和對象表,以及如何使用SQL和PL/SQL來操縱對象。
第14章 集合
本章將介紹如何創建集合類型,集合可以包含多個元素;還將介紹如何使用集合類型來定義表中的列,以及如何使用SQL和PL/SQL來操縱集合。
第15章 大對象
本章將介紹有關大對象的知識,大對象可以用來存儲多達128TB的字符和二進制數據(也可以是指向外部文件的指針);此外,還將介紹有關較舊的LONG類型的知識,為了保持向后兼容性,在Oracle Database 12c中依然支持LONG類型。
第16章 SQL優化
本章將介紹SQL優化的一些技巧,這些技巧可以用來縮短查詢執行的時間;本章還將介紹有關Oracle優化器的知識,以及如何向優化器傳遞一些提示。此外還介紹了如何使用高級調優工具。
第17章 XML和Oracle數據庫
可擴展標記語言(XML)是一種通用標記語言,可用來在Internet上共享結構化數據,并可用來編碼數據和其他文檔。本章將介紹如何從關系數據生成XML,以及如何將XML保存到數據庫中。
附錄 Oracle數據類型
本附錄列出了Oracle SQL和PL/SQL中可以使用的數據類型。
本書讀者對象
本書適用于以下讀者:
需要編寫SQL和PL/SQL的開發人員
需要深入了解SQL的數據庫管理員
需要編寫SQL查詢來從自己公司的數據庫中獲得信息的業務用戶
需要簡單了解SQL和PL/SQL的技術主管和技術顧問
讀者閱讀本書,不需要預先了解Oracle數據庫、SQL或PL/SQL的知識;本書為讀者提供了成為這方面專家所需的全部知識。
本書源代碼下載
本書中使用的所有SQL腳本、程序以及其他文件,都可以從Oracle出版社的網站www.OraclePressBooks.com或本書的合作站點www.tupwk.com.cn/downpage下載;這些文件都被打包成一個Zip文件。下載這個Zip文件之后,需要解壓縮。這樣就會創建sql_book目錄,其中包含以下子目錄:
sample_files 包含第15章中使用的示例文件
SQL 包含本書中使用的SQL腳本,包括創建和填充示例數據庫表的腳本
xml_files 包含第17章中使用的XML
盡情享受吧,希望您喜歡本書!


內容簡介:

學習通過編寫SQL語句并構建PL/SQL程序來訪問Oracle數據庫。《精通Oracle Database 12c SQL & PL/SQL編程(第3版)》完全涵蓋了最新版本Oracle數據庫的功能和技術,指導讀者編寫SQL語句以檢索和修改數據庫中的信息、掌握SQL*Plus和SQL Developer、處理數據庫對象、編寫PL/SQL程序、采用性能優化技術、結合XML以及其他技術。這本Oracle指南包含掌握SQL所需的全部知識。

目錄:

第1章 簡介 1
1.1 關系數據庫簡介 1
1.2 SQL簡介 2
1.3 使用SQL*Plus 4
1.3.1 啟動SQL*Plus 4
1.3.2 從命令行啟動SQL*Plus 4
1.3.3 使用SQL*Plus執行SELECT語句 5
1.4 使用SQL Developer 6
1.5 創建store模式 8
1.5.1 檢查腳本 8
1.5.2 運行腳本 10
1.5.3 用來創建store模式的DDL語句 11
1.6 添加、修改和刪除行 17
1.6.1 向表中添加行 17
1.6.2 修改表中的現有行 19
1.6.3 從表中刪除行 20
1.7 連接數據庫和斷開連接 20
1.8 退出SQL*Plus 20
1.9 Oracle PL/SQL簡介 21
1.10 小結 22
第2章 從數據庫表中檢索信息 23
2.1 對單表執行SELECT語句 24
2.2 選擇一個表中的所有列 24
2.3 使用WHERE子句限定行 25
2.4 行標識符 25
2.5 行號 26
2.6 執行算術運算 26
2.6.1 執行日期運算 27
2.6.2 列運算 28
2.6.3 算術運算操作符的優先級 29
2.7 使用列別名 29
2.8 使用連接操作合并列的輸出結果 30
2.9 空值 31
2.10 禁止顯示重復行 32
2.11 比較值 33
2.11.1 使用不等于操作符 33
2.11.2 使用大于操作符 34
2.11.3 使用小于或等于操作符 34
2.11.4 使用ANY操作符 34
2.11.5 使用ALL操作符 35
2.12 使用SQL操作符 35
2.12.1 使用LIKE操作符 36
2.12.2 使用IN操作符 37
2.12.3 使用BETWEEN操作符 38
2.13 使用邏輯操作符 38
2.13.1 使用AND操作符 38
2.13.2 使用OR操作符 39
2.14 邏輯操作符的優先級 39
2.15 使用ORDER BY子句對行進行排序 40
2.16 執行使用兩個表的SELECT語句 41
2.17 使用表別名 43
2.18 笛卡爾積 43
2.19 執行使用多于兩個表的SELECT語句 44
2.20 連接條件和連接類型 45
2.20.1 不等連接 46
2.20.2 外連接 46
2.20.3 自連接 50
2.21 使用SQL/92語法執行連接 51
2.21.1 使用SQL/92標準語法執行兩個表的內連接 51
2.21.2 使用USING關鍵字簡化連接 51
2.21.3 使用SQL/92執行多于兩個表的內連接 52
2.21.4 使用SQL/92執行多列的內連接 53
2.21.5 使用SQL/92執行外連接 53
2.21.6 使用SQL/92執行自連接 55
2.21.7 使用SQL/92執行交叉連接 55
2.22 小結 55
第3章 使用SQL*Plus 57
3.1 查看表的結構 58
3.2 編輯SQL語句 58
3.3 保存、檢索并運行文件 60
3.4 格式化列 63
3.5 設置頁面大小 65
3.6 設置行大小 66
3.7 清除列的格式 67
3.8 使用變量 67
3.8.1 臨時變量 67
3.8.2 已定義變量 70
3.9 創建簡單報表 73
3.9.1 在腳本中使用臨時變量 73
3.9.2 在腳本中使用已定義變量 73
3.9.3 向腳本中的變量傳遞值 74
3.9.4 添加頁眉和頁腳 75
3.9.5 計算小計 76
3.10 從SQL*Plus獲取幫助信息 78
3.11 自動生成SQL語句 79
3.12 斷開數據庫連接并退出SQL*Plus 79
3.13 小結 79
第4章 使用簡單函數 81
4.1 使用單行函數 82
4.1.1 字符函數 82
4.1.2 數值函數 91
4.1.3 轉換函數 96
4.1.4 正則表達式函數 106
4.2 使用聚合函數 112
4.2.1 AVG() 113
4.2.2 COUNT() 114
4.2.3 MAX()和MIN() 114
4.2.4 STDDEV() 115
4.2.5 SUM() 115
4.2.6 VARIANCE() 115
4.3 對行進行分組 116
4.3.1 使用GROUP BY子句對行進行分組 116
4.3.2 調用聚合函數的錯誤用法 119
4.3.3 使用HAVING子句過濾行組 120
4.3.4 組合使用WHERE和GROUP BY子句 120
4.3.5 組合使用WHERE、GROUP BY和HAVING子句 121
4.4 小結 122
第5章 日期和時間的存儲與處理 123
5.1 幾個簡單的存儲和檢索日期的例子 123
5.2 使用TO_CHAR()和TO_DATE()轉換時間值 125
5.2.1 使用TO_CHAR()將時間值轉換為字符串 125
5.2.2 使用TO_DATE()將字符串轉換為時間值 130
5.3 設置默認的日期格式 132
5.4 Oracle對兩位年份的處理 133
5.4.1 使用YY格式 133
5.4.2 使用RR格式 134
5.5 使用時間值函數 135
5.5.1 ADD_MONTHS() 136
5.5.2 LAST_DAY() 137
5.5.3 MONTHS_BETWEEN() 137
5.5.4 NEXT_DAY() 138
5.5.5 ROUND() 138
5.5.6 SYSDATE 139
5.5.7 TRUNC() 139
5.6 使用時區 140
5.6.1 與時區有關的函數 140
5.6.2 數據庫時區和會話時區 141
5.6.3 獲取時區的時差 142
5.6.4 獲取時區名 142
5.6.5 將時間值從一個時區轉換為另一個時區 143
5.7 使用時間戳 143
5.7.1 使用時間戳類型 143
5.7.2 與時間戳有關的函數 147
5.8 使用時間間隔 152
5.8.1 使用INTERVAL YEAR TO MONTH類型 153
5.8.2 使用INTERVAL DAY TO SECOND類型 155
5.8.3 與時間間隔有關的函數 157
5.9 小結 158
第6章 子查詢 159
6.1 子查詢的類型 159
6.2 編寫單行子查詢 160
6.2.1 在WHERE子句中使用子查詢 160
6.2.2 使用其他單行操作符 161
6.2.3 在HAVING子句中使用子查詢 161
6.2.4 在FROM子句中使用子查詢(內聯視圖) 162
6.2.5 可能碰到的錯誤 163
6.3 編寫多行子查詢 164
6.3.1 在多行子查詢中使用IN操作符 165
6.3.2 在多行子查詢中使用ANY操作符 165
6.3.3 在多行子查詢中使用ALL操作符 166
6.4 編寫多列子查詢 166
6.5 編寫關聯子查詢 167
6.5.1 關聯子查詢的例子 167
6.5.2 在關聯子查詢中使用EXISTS和NOT EXISTS 168
6.6 編寫嵌套子查詢 170
6.7 編寫包含子查詢的UPDATE和DELETE語句 172
6.7.1 編寫包含子查詢的UPDATE語句 172
6.7.2 編寫包含子查詢的DELETE語句 172
6.8 使用子查詢因子化 173
6.9 小結 174
第7章 高級查詢 175
7.1 使用集合操作符 176
7.1.1 示例表 176
7.1.2 使用UNION ALL操作符 177
7.1.3 使用UNION操作符 178
7.1.4 使用INTERSECT操作符 179
7.1.5 使用MINUS操作符 179
7.1.6 組合使用集合操作符 180
7.2 使用TRANSLATE()函數 182
7.3 使用DECODE()函數 183
7.4 使用CASE表達式 185
7.4.1 使用簡單CASE表達式 185
7.4.2 使用搜索CASE表達式 186
7.5 層次化查詢 187
7.5.1 示例數據 187
7.5.2 使用CONNECT BY和START WITH子句 189
7.5.3 使用偽列LEVEL 190
7.5.4 格式化層次化查詢的結果 190
7.5.5 從非根節點開始遍歷191
7.5.6 在START WITH子句中使用子查詢 192
7.5.7 從下向上遍歷樹 192
7.5.8 從層次化查詢中刪除節點和分支 193
7.5.9 在層次化查詢中加入其他條件 194
7.5.10 使用遞歸子查詢因子化查詢分層數據 194
7.6 使用ROLLUP和CUBE子句 198
7.6.1 示例表 199
7.6.2 使用ROLLUP子句 200
7.6.3 使用CUBE子句 203
7.6.4 使用GROUPING()函數 204
7.6.5 使用GROUPING SETS子句 207
7.6.6 使用GROUPING_ID()函數 207
7.6.7 在GROUP BY子句中多次使用某個列 209
7.6.8 使用GROUP_ID()函數 210
7.7 使用CROSS APPLY和OUTER APPLY 211
7.7.1 CROSS APPLY 212
7.7.2 OUTER APPLY 212
7.8 使用LATERAL 213
7.9 小結 214
第8章 分析數據 215
8.1 使用分析函數 215
8.1.1 示例表 216
8.1.2 使用評級函數 217
8.1.3 使用反百分位函數 223
8.1.4 使用窗口函數 224
8.1.5 使用報表函數 230
8.1.6 使用LAG()和LEAD()函數 233
8.1.7 使用FIRST和LAST函數 234
8.1.8 使用線性回歸函數 234
8.1.9 使用假想評級與分布函數 235
8.2 使用MODEL子句 236
8.2.1 MODEL子句示例 236
8.2.2 用位置標記和符號標記訪問數據單元 238
8.2.3 用BETWEEN和AND返回特定范圍內的數據單元 239
8.2.4 用ANY和IS ANY訪問所有的數據單元 239
8.2.5 用CURRENTV()函數獲取某個維度的當前值 239
8.2.6 用FOR循環訪問數據單元 240
8.2.7 處理空值和缺失值 242
8.2.8 更新已有的單元 244
8.3 使用PIVOT和UNPIVOT子句 245
8.3.1 PIVOT子句的簡單示例 245
8.3.2 轉換多個列 246
8.3.3 在轉換中使用多個聚合函數 247
8.3.4 使用UNPIVOT子句 248
8.4 執行Top-N查詢 249
8.4.1 使用FETCH FIRST子句 250
8.4.2 使用OFFSET子句 250
8.4.3 使用PERCENT子句 251
8.4.4 使用WITH TIES子句 252
8.5 在數據中發現模式 252
8.5.1 在all_sales2表中發現V形數據模式 253
8.5.2 在all_sales3表中發現W型數據模式 256
8.5.3 在all_sales3表中發現V形數據模式 257
8.6 小結 258
第9章 修改表的內容 259
9.1 使用INSERT語句添加行 260
9.1.1 省略列的列表 261
9.1.2 為列指定空值 261
9.1.3 在列值中使用單引號和雙引號 261
9.1.4 從一個表向另一個表復制行 262
9.2 使用UPDATE語句修改行 262
9.3 使用RETURNING子句返回聚合函數的計算結果 263
9.4 使用DELETE語句刪除行 264
9.5 數據庫的完整性 264
9.5.1 主鍵約束 264
9.5.2 外鍵約束 265
9.6 使用默認值 266
9.7 使用MERGE合并行 267
9.8 數據庫事務 269
9.8.1 事務的提交和回滾 269
9.8.2 事務的開始與結束 270
9.8.3 保存點 271
9.8.4 事務的ACID特性 272
9.8.5 并發事務 273
9.8.6 事務鎖 274
9.8.7 事務隔離級別 274
9.8.8 SERIALIZABLE事務隔離級別的一個例子 275
9.9 查詢閃回 276
9.9.1 授權使用閃回 276
9.9.2 時間查詢閃回 277
9.9.3 SCN查詢閃回 278
9.10 小結 280
第10章 用戶、特權和角色 281
10.1 用戶 282
10.1.1 創建用戶 282
10.1.2 修改用戶密碼 283
10.1.3 刪除用戶 283
10.2 系統特權 284
10.2.1 向用戶授予系統特權 284
10.2.2 檢查授予用戶的系統特權 285
10.2.3 使用系統特權 286
10.2.4 撤消用戶的系統特權 286
10.3 對象特權 287
10.3.1 向用戶授予對象特權 287
10.3.2 檢查已授予的對象特權 288
10.3.3 檢查已接受的對象特權 289
10.3.4 使用對象特權 291
10.3.5 創建同義詞 291
10.3.6 創建公共同義詞 292
10.3.7 撤消用戶的對象特權 293
10.4 角色 293
10.4.1 創建角色 293
10.4.2 為角色授權 294
10.4.3 將角色授予用戶 294
10.4.4 檢查授予用戶的角色 294
10.4.5 檢查授予角色的系統特權 296
10.4.6 檢查授予角色的對象特權 296
10.4.7 使用已授予角色的特權 298
10.4.8 啟用和禁用角色 299
10.4.9 撤消角色 300
10.4.10 從角色中撤消特權 300
10.4.11 刪除角色 300
10.5 審計 300
10.5.1 執行審計需要的特權 300
10.5.2 審計示例 301
10.5.3 審計跟蹤視圖 302
10.6 小結 303
第11章 創建表、序列、索引和視圖 305
11.1 表 305
11.1.1 創建表 306
11.1.2 獲得有關表的信息 307
11.1.3 獲得表中列的信息 308
11.1.4 修改表 308
11.1.5 重命名表 317
11.1.6 向表中添加注釋 317
11.1.7 截斷表 318
11.1.8 刪除表 318
11.1.9 使用BINARY_FLOAT和BINARY_ DOUBLE數據類型 319
11.1.10 使用DEFAULT ON NULL列 320
11.1.11 在表中使用可見及不可見列 321
11.2 序列 323
11.2.1 創建序列 324
11.2.2 獲取有關序列的信息 325
11.2.3 使用序列 326
11.2.4 使用序列填充主鍵 328
11.2.5 使用序列指定默認列值 329
11.2.6 使用標識列 329
11.2.7 修改序列 330
11.2.8 刪除序列 330
11.3 索引 331
11.3.1 創建B-樹索引 331
11.3.2 創建基于函數的索引 332
11.3.3 獲取有關索引的信息 333
11.3.4 獲取列索引的信息 333
11.3.5 修改索引 334
11.3.6 刪除索引 334
11.3.7 創建位圖索引 334
11.4 視圖 335
11.4.1 創建并使用視圖 336
11.4.2 修改視圖 343
11.4.3 刪除視圖 343
11.4.4 在視圖中使用可見列和不可見列 343
11.5 閃回數據歸檔 344
11.6 小結 347
第12章 PL/SQL編程簡介 349
12.1 塊結構 350
12.2 變量和類型 351
12.3 條件邏輯 352
12.4 循環 352
12.4.1 簡單循環 353
12.4.2 WHILE循環 354
12.4.3 FOR循環 354
12.5 游標 355
12.5.1 步驟(1):聲明用于保存列值的變量 355
12.5.2 步驟(2):聲明游標 355
12.5.3 步驟(3):打開游標 356
12.5.4 步驟(4):從游標中取得行 356
12.5.5 步驟(5):關閉游標 357
12.5.6 完整的示例:product_cursor.sql 357
12.5.7 游標與FOR循環 358
12.5.8 OPEN-FOR語句 359
12.5.9 無約束游標 361
12.6 異常 362
12.6.1 ZERO_DIVIDE異常 364
12.6.2 DUP_VAL_ON_INDEX異常 365
12.6.3 INVALID_NUMBER異常 365
12.6.4 OTHERS異常 365
12.7 過程 366
12.7.1 創建過程 366
12.7.2 調用過程 368
12.7.3 獲取有關過程的信息 369
12.7.4 刪除過程 370
12.7.5 查看過程中的錯誤 370
12.8 函數 371
12.8.1 創建函數 371
12.8.2 調用函數 372
12.8.3 獲取有關函數的信息 373
12.8.4 刪除函數 373
12.9 包 373
12.9.1 創建包的規范 373
12.9.2 創建包體 374
12.9.3 調用包中的函數和過程 375
12.9.4 獲取有關包中函數和過程的信息 376
12.9.5 刪除包 376
12.10 觸發器 377
12.10.1 觸發器啟動的時機 377
12.10.2 設置示例觸發器 377
12.10.3 創建觸發器 377
12.10.4 啟動觸發器 379
12.10.5 獲取有關觸發器的信息 380
12.10.6 禁用和啟用觸發器 382
12.10.7 刪除觸發器 382
12.11 其他PL/SQL特性 382
12.11.1 SIMPLE_INTEGER類型 382
12.11.2 在PL/SQL中使用序列 383
12.11.3 PL/SQL本地機器代碼 生成 384
12.11.4 WITH子句 385
12.12 小結 386
第13章 數據庫對象 387
13.1 對象簡介 387
13.2 創建對象類型 388
13.3 使用DESCRIBE獲取有關對象類型的信息 390
13.4 在數據庫表中使用對象類型 391
13.4.1 列對象 391
13.4.2 對象表 394
13.4.3 對象標識符和對象引用 397
13.4.4 比較對象值 399
13.5 在PL/SQL中使用對象 402
13.5.1 get_products()函數 403
13.5.2 display_product()過程 403
13.5.3 insert_product()過程 404
13.5.4 update_product_price()過程 405
13.5.5 get_product()函數 406
13.5.6 update_product()過程 406
13.5.7 get_product_ref()函數 407
13.5.8 delete_product()過程 408
13.5.9 product_lifecycle()過程 408
13.5.10 product_lifecycle2()過程 409
13.6 類型繼承 410
13.6.1 運行腳本以創建第2個對象模式 411
13.6.2 繼承屬性 411
13.7 用子類型對象代替超類型對象 413
13.7.1 SQL例子 413
13.7.2 PL/SQL示例 414
13.7.3 NOT SUBSTITUTABLE對象 415
13.8 其他有用的對象函數 416
13.8.1 IS OF()函數 416
13.8.2 TREAT()函數 419
13.8.3 SYS_TYPEID()函數 423
13.9 NOT INSTANTIABLE對象類型 424
13.10 用戶自定義的構造函數 425
13.11 重載方法 429
13.12 通用調用 430
13.12.1 運行腳本以創建第3個對象模式 431
13.12.2 繼承屬性 431
13.13 小結 432
第14章 集合 435
14.1 集合簡介 435
14.2 創建集合類型 436
14.2.1 創建變長數組類型 436
14.2.2 創建嵌套表類型 437
14.3 使用集合類型定義表列 437
14.3.1 使用變長數組類型定義表列 437
14.3.2 使用嵌套表類型定義表列 438
14.4 獲取集合信息 438
14.4.1 獲取變長數組信息 438
14.4.2 獲得嵌套表信息 439
14.5 填充集合元素 441
14.5.1 填充變長數組元素 441
14.5.2 填充嵌套表元素 441
14.6 檢索集合元素 442
14.6.1 檢索變長數組元素 442
14.6.2 檢索嵌套表元素 443
14.7 使用TABLE()函數將集合視為一系列行 443
14.7.1 將TABLE()函數應用于變長數組 444
14.7.2 將TABLE()函數應用于嵌套表 445
14.8 更改集合元素 445
14.8.1 更改變長數組元素 445
14.8.2 更改嵌套表元素 446
14.9 使用映射方法比較嵌套表的內容 447
14.10 使用CAST()函數將集合從一種類型轉換為另一種類型 449
14.10.1 使用CAST()函數將變長數組轉換為嵌套表 449
14.10.2 使用CAST()函數將嵌套表轉換為變長數組 450
14.11 在PL/SQL中使用集合 451
14.11.1 操作變長數組 451
14.11.2 操作嵌套表 453
14.11.3 PL/SQL集合方法 455
14.12 創建和使用多級集合 464
14.12.1 運行腳本創建第二個集合模式 464
14.12.2 使用多級集合 464
14.13 Oracle Database 10g對集合的增強 467
14.13.1 運行腳本以創建第三個集合模式 467
14.13.2 關聯數組 467
14.13.3 更改元素類型的大小 468
14.13.4 增加變長數組中元素的數目 469
14.13.5 在臨時表中使用變長數組 469
14.13.6 為嵌套表的存儲表使用不同的表空間 469
14.13.7 嵌套表對ANSI的支持 470
14.14 小結 478
第15章 大對象 479
15.1 大對象(LOB)簡介 480
15.2 示例文件 480
15.3 理解大對象類型 480
15.4 創建包含大對象的表 481
15.5 在SQL中使用大對象 483
15.5.1 使用CLOB和BLOB對象 483
15.5.2 使用BFILE對象 485
15.6 在PL/SQL中使用大對象 486
15.6.1 APPEND()方法 489
15.6.2 CLOSE()方法 489
15.6.3 COMPARE()方法 489
15.6.4 COPY()方法 491
15.6.5 CREATETEMPORARY()方法 492
15.6.6 ERASE()方法 492
15.6.7 FILECLOSE()方法 493
15.6.8 FILECLOSEALL()方法 493
15.6.9 FILEEXISTS()方法 494
15.6.10 FILEGETNAME()方法 494
15.6.11 FILEISOPEN()方法 495
15.6.12 FILEOPEN()方法 495
15.6.13 FREETEMPORARY()方法 496
15.6.14 GETCHUNKSIZE()方法 496
15.6.15 GETLENGTH()方法 497
15.6.16 GET_STORAGE_LIMIT()方法 497
15.6.17 INSTR()方法 498
15.6.18 ISOPEN()方法 499
15.6.19 ISTEMPORARY()方法 499
15.6.20 LOADFROMFILE()方法 500
15.6.21 LOADBLOBFROMFILE()方法 501
15.6.22 LOADCLOBFROMFILE()方法 502
15.6.23 OPEN()方法 503
15.6.24 READ()方法 503
15.6.25 SUBSTR()方法 504
15.6.26 TRIM()方法 505
15.6.27 WRITE()方法 506
15.6.28 WRITEAPPEND()方法 507
15.6.29 PL/SQL示例過程 507
15.7 LONG和LONG RAW類型 524
15.7.1 示例表 524
15.7.2 向LONG和LONG RAW列添加數據 525
15.7.3 將LONG和LONG RAW列轉換為LOB 525
15.8 Oracle Database 10g對大對象的增強 526
15.8.1 CLOB和NCLOB對象之間的隱式轉換 527
15.8.2 在觸發器中使用LOB時:new屬性的用法 528
15.9 Oracle Database 11g對大對象的增強 528
15.9.1 加密LOB數據 528
15.9.2 壓縮LOB數據 532
15.9.3 刪除LOB重復數據 533
15.10 Oracle Database 12c對大對象的增強 533
15.11 小結 534
第16章 SQL優化 535
16.1 SQL優化簡介 535
16.2 使用WHERE子句過濾行 536
16.3 使用表連接而不是多個查詢 536
16.4 執行連接時使用完全限定的列引用 537
16.5 使用CASE表達式而不是多個查詢 538
16.6 添加表索引 539
16.6.1 何時創建B-樹索引 539
16.6.2 何時創建位圖索引 540
16.7 使用WHERE而不是HAVING 540
16.8 使用UNION ALL而不是UNION 541
16.9 使用EXISTS而不是IN 542
16.10 使用EXISTS而不是DISTINCT 543
16.11 使用GROUPING SETS而不是CUBE 543
16.12 使用綁定變量 543
16.12.1 不相同的SQL語句 544
16.12.2 使用綁定變量定義相同的SQL語句 544
16.12.3 列出和輸出綁定變量 545
16.12.4 使用綁定變量存儲PL/SQL函數的返回值 545
16.12.5 使用綁定變量存儲來自REFCURSOR的返回值 546
16.13 比較執行查詢的成本 546
16.13.1 檢查執行計劃 547
16.13.2 比較執行計劃 552
16.14 為優化器傳遞提示 553
16.15 其他優化工具 554
16.15.1 Oracle Enterprise Manager 555
16.15.2 Automatic Database Diagnostic Monitor 555
16.16 小結 556
第17章 XML和Oracle數據庫 557
17.1 XML簡介 557
17.2 從關系數據生成XML 558
17.2.1 XMLELEMENT()函數 558
17.2.2 XMLATTRIBUTES()函數 561
17.2.3 XMLFOREST()函數 562
17.2.4 XMLAGG()函數 563
17.2.5 XMLCOLATTVAL()函數 565
17.2.6 XMLCONCAT()函數 566
17.2.7 XMLPARSE()函數 566
17.2.8 XMLPI()函數 567
17.2.9 XMLCOMMENT()函數 567
17.2.10 XMLSEQUENCE()函數 568
17.2.11 XMLSERIALIZE()函數 569
17.2.12 PL/SQL示例:將XML數據寫入文件 569
17.2.13 XMLQUERY()函數 571
17.3 將XML保存到數據庫中 575
17.3.1 示例XML文件 575
17.3.2 創建示例XML模式 576
17.3.3 從示例XML模式檢索信息 577
17.3.4 更新示例XML模式中的信息 582
17.4 小結 585
附錄 Oracle數據類型 587


序: