《精通Oracle SQL(第2版) 》sql
基本信息數據庫
做者: (美)Karen Morton Kerry Osborne Robyn Sands Riyaj ShamsudeenJared Still 緩存
譯者: 朱浩波架構
叢書名: 圖靈程序設計叢書oracle
出版社:人民郵電出版社app
ISBN:9787115351661函數
上架時間:2014-5-5性能
出版日期:2014 年5月單元測試
開本:16開測試
頁碼:1
版次:1-1
所屬分類:計算機 > 數據庫 > Oracle
更多關於》》》《精通Oracle SQL(第2版) 》
編輯推薦
《精通Oracle SQL(第2版)》由Oracle 數據庫領域頂尖技術組織OakTable成員傾力打造,第1版熱賣,讀者好評如潮。書中主要介紹瞭如何掌握在Oracle數據庫中實現的強大SQL特性,所涵蓋的內容涉及SQL核心、SQL執行、分析函數、聯結、測試與質量保證等,並提供了大量實用的建議,總結出方方面面的「技巧」,幫助讀者快速消化重要知識點。新版將數據庫版本升級到12c,對舊版進行了大幅修訂,並闡述了不少新特性。
做爲Oracle SQL經典著做,《精通Oracle SQL(第2版)》爲SQL開發人員指明瞭前行方向,賦予了他們不斷開拓的動力。
內容簡介
書籍
計算機書籍
《精通oracle sql(第2版)》語言精煉、風趣,所涵蓋的內容涉及sql 核心、sql 執行、分析函數、聯結、測試與質量保證等,並提供大量實用性建議,且總結出方方面面的「技巧」,幫助讀者在閱讀過程當中快速消化所看內容。新版針對oracle 12c 進行了大幅修訂,以反映技術的最新發展動態。
《精通oracle sql(第2版)》旨在爲oracle 數據庫開發人員、dba 和架構師提供參考。
媒體評論
「本書講述清晰,可操做性強,是一本可貴的Oracle SQL教程。」
——NoCOUG(北加州Oracle用戶組)雜誌
「本書做者所有是OakTable的成員,Oracle開發經驗豐富。書中研究了一些被其餘Oracle SQL參考書直接忽略的問題,理解這些將極其有助深刻鑽研Oracle數據庫。」
——亞馬遜讀者評論
目錄
《精通oracle sql(第2版)》
第1章 sql核心 1
1.1 sql語言 1
1.2 數據庫的接口 2
1.3 sql*plus回顧 3
1.3.1 鏈接到數據庫 3
1.3.2 配置sql*plus環境 4
1.3.3 執行命令 6
1.4 5個核心的sql語句 8
1.5 select語句 8
1.5.1 from子句 10
1.5.2 where子句 11
1.5.3 group by子句 11
1.5.4 having子句 12
1.5.5 select列表 13
1.5.6 order by子句 13
1.6 insert語句 14
1.6.1 單表插入 14
1.6.2 多表插入 15
1.7 update語句 17
1.8 delete語句 20
1.9 merge語句 22
1.10 小結 24
第2章 sql執行 25
2.1 oracle架構基礎 25
2.2 sga共享池 26
2.3 庫高速緩存 27
2.4 徹底相同的語句 28
2.5 sga緩衝區緩存 31
2.6 查詢轉換 34
2.6.1 查詢塊 35
2.6.2 視圖合併 37
2.6.3 子查詢解嵌套 41
2.6.4 聯結消除 43
2.6.5 排序消除 45
2.6.6 謂詞推動 46
2.6.7 使用物化視圖進行查詢重寫 48
2.7 肯定執行計劃 50
2.8 執行計劃並取得數據行 54
2.9 sql執行——總覽 56
2.10 小結 57
第3章 訪問和聯結方法 58
3.1 全掃描訪問方法 58
3.1.1 如何選擇全掃描操做 59
3.1.2 全掃描與捨棄 62
3.1.3 全掃描與多塊讀取 63
3.1.4 全掃描與高水位線 63
3.2 索引掃描訪問方法 68
3.2.1 索引結構 69
3.2.2 索引掃描類型 71
3.2.3 索引惟一掃描 75
3.2.4 索引範圍掃描 76
3.2.5 索引全掃描 77
3.2.6 索引跳躍掃描 80
3.2.7 索引快速全掃描 81
3.3 聯結方法 82
3.3.1 嵌套循環聯結 83
3.3.2 排序—合併聯結 85
3.3.3 散列聯結 86
3.3.4 笛卡兒聯結 89
3.3.5 外聯結 90
3.4 小結 95
第4章 sql是關於集合的 96
4.1 以面向集合的思惟方式來思考 96
4.1.1 從面向過程轉變爲基於集合的思惟方式 97
4.1.2 面向過程與基於集合的思惟方式:例子 100
4.2 集合運算 102
4.2.1 union和union all 103
4.2.2 minus 106
4.2.3 intersect 107
4.3 集合與空值 108
4.3.1 空值與非直觀結果 108
4.3.2 空值與集合運算 111
4.3.3 空值與group by和order by 112
4.3.4 空值與聚合函數 114
4.4 小結 114
第5章 提出問題 115
5.1 問出好的問題 115
5.2 提問的目的 116
5.3 問題的種類 116
5.4 問題的問題 118
5.5 數據的問題 120
5.6 創建邏輯表達式 125
5.7 小結 130
第6章 sql執行計劃 131
6.1 解釋計劃 131
6.1.1 使用解釋計劃 131
6.1.2 plan_table 133
6.1.3 分解計劃 135
6.1.4 致使解釋計劃未達目的的緣由 136
6.1.5 閱讀計劃 139
6.1.6 訪問和篩選謂語 140
6.1.7 使計劃便於閱讀 141
6.2 執行計劃 142
6.2.1 查看最近生成的sql語句 142
6.2.2 查看相關執行計劃 142
6.2.3 收集執行計劃統計信息 144
6.2.4 標識sql語句以便之後取回計劃 146
6.2.5 深刻理解dbms_xplan 149
6.2.6 使用sql監控報告 154
6.2.7 使用計劃信息解決問題 157
6.3 小結 166
第7章 高級分組 167
7.1 基本的group by用法 167
7.2 having子句 170
7.3 group by的「新」功能 172
7.4 group by的cube擴展 172
7.5 cube的實際應用 178
7.6 用grouping()函數排除空值 184
7.7 用grouping()擴展報告 185
7.8 用grouping_id()擴展報告 186
7.9 grouping sets與rollup() 190
7.10 group by侷限性 192
7.11 小結 195
第8章 分析函數 196
8.1 概覽 196
8.2 示例數據 197
8.3 分析函數剖析 197
8.4 函數列表 198
8.5 聚合函數 199
8.5.1 跨越整個分區的聚合函數 200
8.5.2 細粒度窗口聲明 201
8.5.3 默認窗口聲明 201
8.6 lead和lag 201
8.6.1 語法和排序 202
8.6.2 例1:從前一行中返回一個值 202
8.6.3 理解數據行的位移 203
8.6.4 例2:從下一行中返回一個值 203
8.7 first_value和last_value 204
8.7.1 例子:使用first_value計算最大值 205
8.7.2 例子:使用last_value計算最小值 206
8.8 其餘分析函數 206
8.8.1 nth_value 206
8.8.2 rank 208
8.8.3 dense_rank 209
8.8.4 row_number 210
8.8.5 ratio_to_report 211
8.8.6 percent_rank 212
8.8.7 percentile_cont 213
8.8.8 percentile_disc 215
8.8.9 ntile 216
8.8.10 stddev 217
8.8.11 listagg 218
8.9 性能調優 219
8.9.1 執行計劃 220
8.9.2 謂詞 220
8.9.3 索引 221
8.10 高級話題 222
8.10.1 動態sql 222
8.10.2 嵌套分析函數 224
8.10.3 並行 224
8.10.4 pga大小 225
8.11 組織行爲 225
8.12 小結 226
第9章 model子句 227
9.1 電子表格 228
9.2 使用model子句實現跨行引用 228
9.2.1 示例數據 228
9.2.2 剖析model子句 229
9.2.3 規則 230
9.3 位置和符號引用 231
9.3.1 位置標記 231
9.3.2 符號標記 232
9.3.3 for循環 233
9.4 返回更新後的行 234
9.5 求解順序 235
9.5.1 行求解順序 235
9.5.2 規則求解順序 237
9.6 聚合 239
9.7 迭代 240
9.7.1 示例 240
9.7.2 presentv與空值 241
9.8 查找表 242
9.9 空值 244
9.10 使用model子句進行性能調優 245
9.10.1 執行計劃 245
9.10.2 謂詞推動 248
9.10.3 物化視圖 250
9.10.4 並行 251
9.10.5 model子句執行中的分區 252
9.10.6 索引 253
9.11 子查詢因子化 254
9.12 小結 255
第10章 子查詢因子化 256
10.1 標準用法 256
10.2 用with定義pl/sql函數 259
10.3 sql優化 261
10.3.1 測試執行計劃 261
10.3.2 測試查詢改變的影響 265
10.3.3 尋找其餘優化機會 268
10.3.4 將子查詢因子化應用到pl/sql中 272
10.4 遞歸子查詢 275
10.4.1 connect by示例 275
10.4.2 rsf示例 277
10.4.3 rsf的限制條件 278
10.4.4 與connect by的不一樣點 278
10.5 複製connect by的功能 279
10.5.1 level僞列 280
10.5.2 sys_connect_by_path函數 281
10.5.3 connect_by_root運算符 283
10.5.4 connect_by_iscycle僞列和nocycle參數 285
10.5.5 connect_by_isleaf僞列 288
10.6 小結 292
第11章 半聯結和反聯結 294
11.1 半聯結 294
11.2 半聯結執行計劃 302
11.3 控制半聯結執行計劃 307
11.3.1 使用提示控制半聯結執行計劃 307
11.3.2 在實例級控制半聯結執行計劃 309
11.4 半聯結限制條件 311
11.5 半聯結必要條件 313
11.6 反聯結 314
11.7 反聯結執行計劃 318
11.8 控制反聯結執行計劃 327
11.8.1 使用提示控制反聯結執行計劃 327
11.8.2 在實例級控制反聯結執行計劃 328
11.9 反聯結限制條件 331
11.10 反聯結必要條件 334
11.11 小結 334
第12章 索引 335
12.1 理解索引 336
12.1.1 何時使用索引 336
12.1.2 列的選擇 338
12.1.3 空值問題 339
12.2 索引結構類型 340
12.2.1 b-樹索引 340
12.2.2 位圖索引 341
12.2.3 索引組織表 342
12.3 分區索引 344
12.3.1 局部索引 344
12.3.2 全局索引 346
12.3.3 散列分區與範圍分區 347
12.4 與應用特色相匹配的解決方案 350
12.4.1 壓縮索引 350
12.4.2 基於函數的索引 352
12.4.3 反轉鍵索引 354
12.4.4 降序索引 355
12.5 管理問題的解決方案 356
12.5.1 不可見索引 356
12.5.2 虛擬索引 358
12.5.3 位圖聯結索引 358
12.6 小結 360
第13章 select之外的內容 361
13.1 insert 361
13.1.1 直接路徑插入 361
13.1.2 多表插入 363
13.1.3 條件插入 365
13.1.4 dml錯誤日誌 365
13.2 update 371
13.2.1 ctas與update的差異 371
13.2.2 insert append與update的差異 374
13.3 delete 377
13.4 merge 380
13.4.1 語法和用法 380
13.4.2 性能比較 384
13.5 小結 385
第14章 事務處理 387
14.1 什麼是事務 387
14.2 事務的acid屬性 388
14.3 事務隔離級別 389
14.4 多版本讀一致性 391
14.5 事務控制語句 392
14.5.1 commit(提交) 392
14.5.2 savepoint(保存點) 392
14.5.3 rollback(回滾) 392
14.5.4 set transaction(設置事務) 392
14.5.5 set constraints(設置約束) 393
14.6 將運算分組爲事務 393
14.7 訂單錄入模式 394
14.8 活動事務 400
14.9 使用保存點 401
14.10 序列化事務 404
14.11 隔離事務 407
14.12 自治事務 410
14.13 小結 414
第15章 測試與質量保證 415
15.1 測試用例 416
15.2 測試方法 417
15.2.1 單元測試 418
15.2.2 迴歸測試 421
15.2.3 模式修改 422
15.2.4 重複單元測試 425
15.3 執行計劃比較 426
15.4 性能測量 431
15.4.1 在代碼中加入性能測量 432
15.4.2 性能測試 436
15.5 破壞性測試 437
15.6 使用性能測量進行系統檢修 439
15.7 小結 441
第16章 計劃穩定性 443
16.1 計劃不穩定性:理解這個問題 443
16.1.1 統計信息的變化 444
16.1.2 運行環境的改變 446
16.1.3 sql語句的改變 448
16.1.4 綁定變量窺視 448
16.1.5 自適應遊標共享 451
16.2 統計信息反饋 455
16.3 識別執行計劃的不穩定性 459
16.3.1 抓取當前運行查詢的數據 460
16.3.2 查看語句的性能歷史 461
16.3.3 按照執行計劃聚合統計信息 462
16.3.4 尋找執行計劃的統計方差 463
16.3.5 在一個時間點附近檢查誤差 464
16.4 小結 465
第17章 計劃控制 466
17.1 執行計劃控制:解決問題 466
17.1.1 調整查詢結構 467
17.1.2 適當使用常量 467
17.1.3 給優化器一些提示 467
17.2 執行計劃控制:不能直接訪問代碼 475
17.2.1 選項1:改變統計信息 475
17.2.2 選項2:改變數據庫參數 477
17.2.3 選項3:增長或移除訪問路徑 478
17.2.4 選項4:應用基於提示的執行計劃控制機制 478
17.2.5 大綱 479
17.2.6 sql概要文件 482
17.2.7 sql執行計劃基線 498
17.2.8 sql補丁 507
17.2.9 基於提示的計劃控制機理小結 509
17.3 小結 509
第18章 其餘sql結構 510
18.1 條件邏輯結構 510
18.1.1 decode 510
18.1.2 case 511
18.1.3 nvl、nvl2和coalesce 515
18.1.4 nullif 517
18.2 pivot/unpivot查詢 518
18.2.1 pivot 518
18.2.2 unpivot 523
18.3 生成測試數據的sql 526
18.3.1 想要獲得什麼樣的數據 526
18.3.2 connect by 527
18.3.3 model子句 529
18.3.4 遞歸with子句 529
18.3.5 數據生成小結 530
18.4 小結 530