精通Oracle SQL

《精通Oracle SQL(第2版)》語言精煉、風趣,所涵蓋的內容涉及SQL核心、SQL執行、分析函式、聯結、測試與質量保證等,並提供大量實用性建議,且總結出方方面面的“技巧”,幫助讀者在閱讀過程中快速消化所看內容。新版針對Oracle 12c進行了大幅修訂,以反映技術的最新發展動態。 《精通Oracle SQL(第2版)》旨在為Oracle資料庫開發人員、DBA和架構師提供參考。

基本介紹

內容簡介

《精通Oracle SQL(第2版)》由Oracle 資料庫領域頂尖技術組織OakTable成員傾力打造,第1版熱賣,讀者好評如潮。書中主要介紹了如何掌握在Oracle資料庫中實現的強大SQL特性,所涵蓋的內容涉及SQL核心、SQL執行、分析函式、聯結、測試與質量保證等,並提供了大量實用的建議,總結出方方面面的“技巧”,幫助讀者快速消化重要知識點。新版將資料庫版本升級到12c,對舊版進行了大幅修訂,並闡述了很多新特性。
作為Oracle SQL經典著作,《精通Oracle SQL(第2版)》為SQL開發人員指明了前行方向,賦予了他們不斷開拓的動力。

作者簡介

Karen Morton,研究人員、教育家及顧問,Fidelity信息服務公司資深資料庫管理員和性能調優專家。她從20世紀90年代初就開始使用Oracle,從事Oracle教學工作也已經超過10年的時間。她是Oracle ACE和OakTable的成員,經常在技術會議上演講。她的著作還包括Expert Oracle Practices和Beginning Oracle SQL。
Kerry Osborne,Enkitec公司(提供Oracle諮詢服務)聯合創始人。從1982年開始使用Oracle(第2版)。他當過開發人員,也做過DBA,目前是Oracle ACE總監和OakTable成員。最近幾年,他專注於研究Oracle內部原理以及解決性能問題。
Robyn Sands,思科公司軟體工程師,為思科客戶設計開發嵌入式Oracle資料庫產品。從1996年開始使用Oracle,在套用開發、大型系統實現以及性能評估方面具有豐富的經驗。她是OakTable的成員,同時是Expert Oracle Practices 一書的合著者。
Riyaj Shamsudeen,OraInternals(專注於性能/數據恢復/電子商務的諮詢公司)董事長、首席資料庫管理員。有近20年使用Oracle技術產品以及Oracle資料庫管理員/Oracle資料庫套用管理員的經驗,是真正套用集群、性能調優以及資料庫內部屬性方面的專家。同時是一位演講家及Oracle ACE。
Jared Still,從1994年就開始使用Oracle。他認為對於SQL的學習是永無止境的,相信只有精通SQL語言才能寫出查詢Oracle資料庫的高效語句。他參與本書的編寫就是為了幫助別人實現這一目標。

媒體推薦

“本書講述清晰,可操作性強,是一本難得的Oracle SQL教程。”
——NoCOUG(北加州Oracle用戶組)雜誌
“本書作者全部是OakTable的成員,Oracle開發經驗豐富。在研究一些被其他專門討論Oracle SQL語言的參考書直接忽略的問題時,這種對Oracle資料庫的長期鑽研無疑是一個巨大的優勢。”
——亞馬遜讀者評論

圖書目錄

第1章SQL核心
1.1SQL語言
l,2資料庫的接口
1.3SQL*Plus回顧
1.3.1連線到資料庫
1.3.2配置SQL*Plus環境
1.3.3執行命令
1.45個核心的SQL語句
1.5SELECT語句
1.5.1FROM子句
1.5.2WHERE子句
1.5.3GROUPBY子句
1.5.4HAVING子句
1.5.5SELECT列表
1.5.6ORDERBY子句
1.6INSERT語句
1.6.1單表插入
1.6.2多袁插入
1.7UPDATE語句
1.8DELETE語句
1.9MERGE語句
1.10小結
第2章SQL執行
2.10racle架構基礎
2.2SGA共享池
2.3庫高速快取
2.4完全相同的語句
2.5SGA緩衝區快取
2.6查詢轉換
2.6.1查詢塊
2.6.2視圖合併
2.6.3子查詢解嵌套
2.6.4聯結消除
2.6.5排序消除
2.6.6謂詞推進
2.6.7使用物化視圖進行查詢重寫
2.7確定執行計畫
2.8執行計畫並取得數據行
2.9SQL執行——總覽
2.10小結
第3章訪問和聯結方法
3.1全掃描訪問方法
3.1.1如何選擇全掃描操作
3.1.2全掃描與捨棄
3.1.3全掃描與多塊讀取
3.1.4全掃描與高水位線
3.2索引掃描訪問方法
3.2.1索引結構
3.2.2索引掃描類型
3.2.3索引唯一掃描
3.2.4索引範圍掃描
3.2.5索引全掃描
3.2.6索引跳躍掃描
3.2.7索引快速全掃描
3.3聯結方法
3.3.1嵌套循環聯結
3.3.2排序一合併聯結
3.3.3散列聯結
3.3.4笛卡兒聯結
3.3.5外聯結
3.4小結
第4章SQL是關於集合的
4.1以面向集合的思維方式來思考
4.1.1從面向過程轉變為基於集合的思維方式
4.1.2面向過程與基於集合的思維方式:例子
4.2集合運算
4.2.1UNION和UNIONALL
4.2.2MINUS
4.2.3INTERSECT
4.3集合與空值
4.3.1空值與非直觀結果
4.3.2空值與集合運算
4.3.3空值與GROUPBY和ORDERBY
4.3.4空值與聚合函式
4.4小結
第5章提出問題
5.1問出好的問題
5.2提問的目的
5.3問題的種類
5.4問題的問題
5.5數據的問題
5.6建立邏輯表達式
5.7小結
第6章SQL執行計畫
6.1解釋計畫
6.1.1使用解釋計畫
6.1.2PLAN_TABLE
6.1.3分解計畫
6.1.4導致解釋計畫未達目的的原因
6.1.5閱讀計畫
6.1.6訪問和篩選謂語
6.1.7使計畫便於閱讀
6.2執行計畫
6.2.1查看最近生成的SQL語句
6.2.2查看相關執行計畫
6.2.3收集執行計畫統計信息
6.2.4標識SQL語句以便以後取回計畫
6.2.5深入理解DBMSXPLAN
6.2.6使用SQL監控報告
6.2.7使用計畫信息解決問題
6.3小結
第7章高級分組
7.1基本的GROUPBY用法
7.2HAVING子句
7.3GROUPBY的“新”功能
7.4GROUPBY的CUBE擴展
7.5CUBE的實際套用
7.6用GROUPING()函式排除空值
7.7用GROUPING()擴展報告
7.8用GROUPING_ID()擴展報告
7.9GROUPINGSETS與ROLLUP()
7.10GROUPBY局限性
7.11小結
第8章分析函式
8.1概覽
8.2示例數據
8.3分析函式剖析
8.4函式列表
8.5聚合函式
8.5.1跨越整個分區的聚合函式
8.5.2細粒度視窗聲明
8.5.3默認視窗聲明
8.6lead和lag
8.6.1語法和排序
8.6.2例1:從前一行中返回一個值
8.6.3理解數據行的位移
8.6.4例2:從下一行中返回一個值
8.7first_value和last_value
8.7.1例子:使用first_value計算最大值
8.7.2例子:使用last_value計算最小值
8.8其他分析函式
8.8.1nth_ValUe
8.8.2rank
8.8.3dense_rank
8.8.4row—number
8.8.5ratio_to_repOrt
8.8.6percent_rank
8.8.7percentile_cont
8.8.8percentile_disc
8.8.9NTILE
8.8.10stddev
8.8.11listagg
8.9性能調優
8.9.1執行計畫
8.9.2謂詞
8.9.3索引
8.10高級話題
8.10.1動態SQL
8.10.2嵌套分析函式
8.10.3並行
8.10.4PGA大小
8.11組織行為
8.12小結
第9章MODEL子句
9.1電子表格
9.2使用MODEL子句實現跨行引用
9.2.1示例數據
9.2.2剖析MODEL子句
9.2.3規則
9.3位置和符號引用
9.3.1位置標記
9.3.2符號標記
9.3.3FOR循環
9.4返回更新後的行
9.5求解順序
9.5.1行求解順序
9.5.2規則求解順序
9.6聚合
9.7疊代
9.7.1示例
9.7.2PRESENTV與空值
9.8查找表
9.9空值
9.10使用MODEL子句進行性能調優
9.10.1執行計畫
9.10.2謂詞推進
9.10.3物化視圖
9.10.4並行
9.10.5MODEL子句執行中的分區
9.10.6索引
9.11子查詢因子化
9.12小結
第10章子查詢因子化
10.1標準用法
10.2用WITH定義PL/SQL函式
10.3SQL最佳化
10.3.1測試執行計畫
10.3.2測試查詢改變的影響
10.3.3尋找其他最佳化機會
10.3.4將子查詢因子化套用到
PL/SQL中
10.4遞歸子查詢
10.4.1CONNECTBY示例
10.4.2RSF示例
10.4.3RSF的限制條件
10.4.4與CONNECTBY的不同點
10.5複製CONNECTBY的功能
10.5.1LEVEL偽列
10.5.2SYS_CONNECT_BY_PATH函式
10.5.3CONNECT_BY_ROOT運算符
10.5.4CONNECT_BY_ISCYCLE偽列和
NOCYCLE參數
10.5.5CONNECTBYISLEAF偽列
10.6小結
第11章半聯結和反聯結
11.1半聯結
11.2半聯結執行計畫
11.3控制半聯結執行計畫
11.3.1使用提示控制半聯結執行計畫
11.3.2在實例級控制半聯結執行計畫
11.4半聯結限制條件
11.5半聯結必要條件
11.6反聯結
11.7反聯結執行計畫
11.8控制反聯結執行計畫
11.8.1使用提示控制反聯結執行計畫
11.8.2在實例級控制反聯結執行計畫
11.9反聯結限制條件
11.10反聯結必要條件
11.11小結
第12章索引
12.1理解索引
12.1.1什麼時候使用索引
12.1.2列的選擇
12.1.3空值問題
12.2索引結構類型
12.2.1B—樹索引
12.2.2點陣圖索引
12.2.3索引組織表
12.3分區索引
12.3.1局部索引
12.3.2全局索引
12.3.3散列分區與範圍分區
12.4與套用特點相匹配的解決方案
12.4.1壓縮索引
12.4.2基於函式的索引
12.4.3反轉鍵索引
12.4.4降序索引
12.5管理問題的解決方案
12.5.1不可見索引
12.5.2虛擬索引
12.5.3點陣圖聯結索引
12.6小結
第13章SELECT以外的內容
13.1INSERT
13.1.1直接路徑插入
13.1.2多表插入
13.1.3條件插入
13.1.4DML錯誤日誌
13.2UPDATE
13.2.1CTAS與UPDATE的差別
13.2.2INSERTAPPEND與UPDATE的差別
13.3DELETE
13.4HERGE
13.4.1語法和用法
13.4.2性能比較
13.5小結
第14章事務處理
14.1什麼是事務
14.2事務的ACID屬性
14.3事務隔離級別
14.4多版本讀一致性
14.5事務控制語句
14.5.1Commit(提交)
14.5.2Savepoint(保存點)
14.5.3Rollback(回滾)
14.5.4SetTransaction(設定事務)
14.5.5SetConstraints(設定約束)
14.6將運算分組為事務
14.7訂單錄入模式
14.8活動事務
14.9使用保存點
14.10序列化事務
14.11隔離事務
14.12自治事務
14.13小結
第15章測試與質量保證
15.1測試用例
15.2測試方法
15.2.1單元測試
15.2.2回歸測試
15.2.3模式修改
15.2.4重複單元測試
15.3執行計畫比較
15.4性能測量
15.4.1在代碼中加入性能測量
15.4.2性能測試
15.5破壞性測試
15.6使用性能測量進行系統檢修
15.7小結
第16章計畫穩定性
16.1計畫不穩定性:理解這個問題
16.1.1統計信息的變化
16.1.2運行環境的改變
16.1.3SQL語句的改變
16.1.4綁定變數窺視
16.1.5自適應游標共享
16.2統計信息反饋
16.3識別執行計畫的不穩定性
16.3.1抓取當前運行查詢的數據
16.3.2查看語句的性能歷史
16.3.3按照執行計畫聚合統計信息
16.3.4尋找執行計畫的統計方差
16.3.5在一個時間點附近檢查偏差
16.4小結
第17章計畫控制
17.1執劃控制:解決問題
17.1.1調整查詢結構
17.1.2適當使用常量
17.1.3給最佳化器一些提示
17.2執行計畫控制:不能直接訪問代碼
17.2.1選項1:改變統計信息
17.2.2選項2:改變資料庫參數
17.2.3選項3:增加或移除訪問路徑
17.2.4選項4:套用基於提示的執行計畫控制機制
17.2.5大綱
17.2.6SQL概要檔案
17.2.7SQL執行計畫基線
17.2.8SQL補丁
17.2.9基於提示的計畫控制機理小結
17.3小結
第18章其他SQL結構
18.1條件邏輯結構
18.1.1DECODE
18.1.2CASE
18.1.3NVL、NVL2和COALESCE
18.1.4NULLIF
18.2PIVOT/UNPIVOT查詢
18.2.1PIVOT
18.2.2UNPIVOT
18.3生成測試數據的SQL
18.3.1想要得到什麼樣的數據
18.3.2CONNECTBY
18.3.3MODEL子句
18.3.4遞歸WITH子句
18.3.5數據生成小結
18.4小結

相關詞條

相關搜尋

熱門詞條

聯絡我們