第1篇 PL/SQL簡介
第1章 走進Oracle 2
1.1 數據庫係統與數據模型 2
1.1.1 基本術語 2
1.1.2 數據庫技術的發展 3
1.1.3 數據模型 5
1.2 數據庫係統的體係結構 6
1.2.1 數據庫係統的三級模式 6
1.2.2 數據庫管理係統 7
1.2.3 數據庫係統的工作流程 8
1.3 關係數據庫的簡單介紹 9
1.3.1 關係數據庫的基本特性 10
1.3.2 關係數據庫的設計規範 10
1.4 認識Oracle 11g R2 11
1.4.1 什麼是Oracle 11g R2 11
1.4.2 Oracle的發展曆程 12
1.4.3 Oracle 11g R2的新特性 13
1.5 小結 13
第2章 認識PL/SQL 14
2.1 SQL語言概述 14
2.2 什麼是PL/SQL 19
2.3 PL/SQL在SQL*Plus中的使用 26
2.3.5 SQL*Plus刪除命令 31
2.3.6 SQL*Plus清除緩衝區命令 32
2.3.7 SQL*Plus顯示緩衝區內容命令 33
2.3.8 SQL*Plus保存命令 34
2.3.9 查詢結果的格式化 36
2.3.10 注釋的使用 43
2.3.11 在SQL*Plus中編輯語句 44
2.4 PL/SQL在SQL Developer中的使用 45
2.5 小結 47
第2篇 PL/SQL基礎
第3章 數據錶的基本操作 50
3.1 創建錶 50
3.1.3 創建錶實例 52
3.2 約束 54
3.2.1 約束的類型 55
3.2.2 創建一個帶檢查約束的錶 55
3.2.3 創建一個帶非空約束的錶 56
3.2.4 創建一個帶唯一約束的錶 57
3.2.5 創建一個帶外鍵約束的錶 58
3.2.6 創建一個含多個約束的錶 61
3.3 修改錶 62
3.3.2 給錶添加約束 65
3.3.3 刪除錶中的約束 66
3.4 刪除錶 67
3.5 重命名錶 67
3.6 使用企業管理器操作錶 67
3.6.1 啓用企業管理器 68
3.6.2 使用企業管理器創建錶 69
3.6.4 使用企業管理器刪除錶 74
3.7 小結 75
第4章 錶中數據的基本操作 76
4.1 查詢數據錶 76
4.1.1 查詢錶中的數據 76
4.1.2 使用SQL Developer工具查詢錶中的數據 77
4.2 添加數據 79
4.2.1 添加操作的基本語法 79
4.2.2 直接嚮錶中添加數據 80
4.2.3 數據中NULL值的處理 82
4.2.4 插入值是默認值的處理 84
4.2.5 插入值是唯一值的處理 85
4.2.6 使用INSERT...SELECT插入數據 86
4.2.7 使用SQL Developer工具添加數據 87
4.3 修改數據 88
4.3.1 修改操作的基本語法 88
4.3.2 使用UPDATE語句更新數據行 89
4.3.3 根據條件修改錶中的數據 91
4.3.4 使用SQL Developer工具修改數據 91
4.4 刪除數據 91
4.4.1 刪除操作的基本語法 91
4.4.2 刪除錶中的數據 92
4.4.3 有關TRUNCATE的使用 92
4.4.4 使用SQL Developer工具刪除數據 94
4.5 小結 94
第5章 數據的基本查詢 95
5.1 查詢語句的基礎 95
5.1.1 查詢語句語法 95
5.1.2 查詢各關鍵詞的順序及功能 96
5.1.3 查詢語句執行順序 96
5.2 最容易理解的查詢 97
5.2.1 增加實驗數據 97
5.2.2 查詢錶中列的數據 99
5.2.3 查詢所有列 101
5.2.4 去除查詢結果中的重復記錄 102
5.2.5 返迴查詢的部分數據 104
5.3 帶條件的查詢 104
5.3.1 單一的條件查詢 105
5.3.2 查詢中使用比較錶達式 106
5.3.3 使用簡單邏輯錶達式 108
5.3.4 有關NULL值的判斷 114
5.3.5 有關模糊查詢 115
5.3.6 指定數據範圍 120
5.3.7 如何限製檢索數據範圍 122
5.3.8 定義轉義符 123
5.4 排序查詢結果 125
5.4.1 基本排序 125
5.4.2 多列排序 129
5.5 PL/SQL中的運算符 131
5.5.1 算術運算符 132
5.5.2 比較運算符 132
5.5.3 邏輯運算符 132
5.5.4 字符串連接符 133
5.5.5 賦值運算符 133
5.5.6 運算符的優先級 133
5.6 查詢中錶達式的使用 134
5.6.1 使用連接符連接列 134
5.6.2 算術錶達式的使用 136
5.7 小結 137
第6章 查詢中函數的使用 138
6.1 常用的單行函數 138
6.1.1 字符處理函數 138
6.1.2 數值處理函數 143
6.1.3 日期處理函數 146
6.1.4 轉換函數 149
6.1.5 替換NULL值函數 151
6.1.6 排除指定條件函數 152
6.2 聚閤函數 152
6.2.1 聚閤函數的種類 152
6.2.2 計數函數 153
6.2.3 求和函數 155
6.2.4 均值函數 156
6.2.5 最大值/最小值函數 158
6.2.6 統計函數 160
6.2.7 聚閤函數的重值處理 161
6.3 分組查詢 162
6.3.1 簡單分組 162
6.3.2 多列分組 163
6.3.3 分組查詢中NULL值的處理 164
6.3.4 匯總數據運算符 165
6.3.5 篩選分組結果 168
6.4 其他函數 170
6.4.1 返迴登錄名函數 170
6.4.2 返迴SESSIONID和
LANGUAGE函數 170
6.4.3 數據匹配函數 171
6.5 小結 172
第7章 查詢中特殊的轉換函數 173
7.1 基本的轉換函數 173
7.1.1 數據類型的自動轉換 173
7.1.2 關於自動轉換的注意事項 176
7.2 特殊的轉換函數 177
7.3 變換函數 178
7.3.1 TRANSLATE函數 178
7.3.2 DECODE函數 180
7.4 小結 182
第8章 數據錶的高級查詢 183
8.1 理解什麼是多錶連接 183
8.1.1 什麼是連接 183
8.1.2 連接的類型與實現 184
8.2 簡單的多錶查詢 184
8.2.1 創建實例錶 185
8.2.2 如何實現多錶查詢 186
8.2.3 指定連接條件 187
8.2.4 使用彆名作為錶名的簡寫 188
8.2.5 自連接錶進行查詢 189
8.3 錶的連接查詢 192
8.3.1 基本連接語法 193
8.3.2 內部連接 193
8.3.3 自然連接 196
8.3.4 外部連接 198
8.3.5 交叉連接 203
8.3.6 連接中空值問題 204
8.3.7 錶的連接與聚閤分析 206
8.4 集閤運算 208
8.4.1 集閤運算的種類 208
8.4.2 UNION的使用 208
8.4.3 有關多錶的UNION操作 211
8.4.4 UNION與JOIN的區彆 212
8.4.5 MINUS與INTERSECT的使用 213
8.5 子查詢的使用 217
8.5.1 認識子查詢 217
8.5.2 非相關子查詢與相關子查詢 217
8.5.3 子查詢的組成 219
8.5.4 子查詢的使用方式及限製 220
8.6 在子查詢中使用各種限製條件 220
8.6.1 比較運算符引入子查詢 221
8.6.2 子查詢中的聚閤函數 223
8.6.3 在子查詢中使用IN 224
8.7 在子查詢中使用EXISTS 227
8.7.1 使用EXISTS的子查詢 228
8.7.2 EXISTS子查詢的使用 229
8.7.3 使用EXISTS子查詢檢查錶中的重復行 230
8.8 子查詢的其他應用 231
8.8.1 在子查詢中使用ROWNUM關鍵詞 231
8.8.2 在SELECT子句中使用子查詢 234
8.8.3 在HAVING子句中使用子查詢 235
8.8.4 在數據操縱語言(DML)中使用子查詢 236
8.9 小結 238
第3篇 PL/SQL高級技術
第9章 索引和視圖的使用 240
9.1 索引及其操作 240
9.1.1 什麼是索引 240
9.1.2 索引的種類及語法 240
9.1.3 索引的創建 241
9.1.4 創建索引的注意事項 246
9.1.5 索引的管理 246
9.2 視圖及其應用 250
9.2.1 什麼是視圖 250
9.2.2 視圖的作用 251
9.3 創建視圖 251
9.3.1 視圖的語法 251
9.3.2 創建單錶視圖 252
9.3.3 創建多錶視圖 253
9.3.4 視圖的視圖 254
9.3.5 無源錶視圖 255
9.3.6 設置視圖隻讀 255
9.3.7 設置視圖的檢查約束 257
9.3.8 內嵌視圖的使用 259
9.3.9 查詢視圖的定義和相關信息 259
9.4 修改、刪除視圖 260
9.4.1 修改視圖內容 260
9.4.2 刪除視圖 261
9.5 小結 262
第10章 序列 263
10.1 創建序列 263
10.2 使用序列 265
10.3 序列屬性 269
10.3.1 創建序列的注意事項 269
10.3.2 指定序列的初始值 269
10.3.3 序列的最大值和最小值 270
10.3.4 序列的步長 271
10.3.5 序列的循環取值 272
10.3.6 序列的緩存大小 273
10.4 小結 274
第11章 數據類型、流程控製和遊標 275
11.1 PL/SQL數據類型 275
11.1.1 標量類型 275
11.1.2 復閤類型 276
11.2 變量和常量 284
11.2.1 變量的聲明語法 284
11.2.2 常量的聲明語法 285
11.3 程序流控製語句 285
11.3.1 IF...ELSE條件選擇結構 286
11.3.2 CASE條件控製語句 291
11.3.3 LOOP循環控製語句 295
11.4 遊標 300
11.4.1 遊標的概念 301
11.4.2 顯式遊標的定義和操作 302
11.4.3 顯式遊標的屬性 306
11.4.4 隱式遊標 308
11.5 小結 311
第12章 存儲過程、函數 312
12.1 理解存儲過程 312
12.1.1 認識存儲過程 312
12.1.2 存儲過程的優點 312
12.1.3 存儲過程的語法 313
12.2 存儲過程的創建和執行 313
12.2.1 存儲過程的執行 313
12.2.2 創建無參數的存儲過程 314
12.2.3 帶有輸入參數的存儲過程 318
12.2.4 帶有輸齣參數的存儲過程 321
12.3 存儲過程的管理 323
12.3.1 查看存儲過程 323
12.3.2 查看存儲過程的錯誤 324
12.3.3 修改存儲過程 326
12.3.4 存儲過程的重新編譯 326
12.3.5 刪除存儲過程 327
12.4 函數 327
12.4.1 函數的組成和語法 327
12.4.2 創建無參數函數 328
12.4.3 創建有參數函數 330
12.4.4 查看函數 335
12.4.5 修改函數 336
12.4.6 重新編譯函數 337
12.4.7 刪除函數 338
12.5 小結 338
第13章 程序包 339
13.1 程序包簡介 339
13.2 構建程序包的規則 339
13.2.1 程序包規範 339
13.2.2 程序包主體 341
13.3 調用程序包中的函數/存儲過程 343
13.4 刪除程序包 343
13.5 小結 344
第14章 觸發器 345
14.1 觸發器的基本概念 345
14.1.1 觸發器簡介 345
14.1.2 觸發器的類型 345
14.1.3 觸發器的作用及使用 346
14.1.4 觸發器的執行環境 346
14.2 觸發器的創建和使用 347
14.2.1 觸發器的語法和組成 347
14.2.2 創建DML觸發器 349
14.2.3 替代類型觸發器 360
14.2.4 復閤類型觸發器 362
14.2.5 DDL類型觸發器 364
14.3 觸發器管理 366
14.3.1 查看觸發器 366
14.3.2 修改觸發器 367
14.3.3 刪除觸發器 369
14.4 小結 370
第15章 異常處理 371
15.1 理解異常 371
15.1.1 異常的分類 371
15.1.2 異常的結構 372
15.2 異常的應用 372
15.2.1 預定義異常 373
15.2.2 非預定義異常 377
15.2.3 自定義異常 379
15.3 小結 380
第16章 事務和鎖 381
16.1 事務控製的基本概念 381
16.1.1 事務控製的必要性 381
16.1.2 事務的ACID特性及實現 382
16.1.3 事務的狀態 382
16.1.4 PL/SQL中事務的執行 383
16.2 PL/SQL中事務的實現 384
16.2.1 事務的類型 384
16.2.2 提交事務 385
16.2.3 設置事務的保存點 387
16.3 並發控製及其實現 388
16.3.1 並發訪問的常見問題 389
16.3.2 什麼是鎖 390
16.3.3 鎖的分類 390
16.3.4 事務隔離級彆 392
16.3.5 事務阻塞及其解決方法 394
16.3.6 死鎖 396
16.4 小結 398
第17章 安全管理 399
17.1 用戶管理 399
17.1.1 什麼是用戶 399
17.1.2 創建用戶 399
17.1.3 修改用戶 405
17.1.4 刪除用戶 407
17.2 權限管理 409
17.2.1 授予權限 409
17.2.2 權限迴收 413
17.2.3 查看權限 415
17.3 角色管理 416
17.3.1 理解角色 416
17.3.2 創建角色 417
17.3.3 角色的管理設置 419
17.3.4 修改、刪除角色 420
17.4 概要文件(PROFILE) 421
17.4.1 理解概要文件 421
17.4.2 創建概要文件 421
17.4.3 修改、刪除概要文件 424
17.4.4 查詢概要文件 425
17.5 小結 426
第18章 動態SQL和動態PL/SQL 427
18.1 動態SQL 427
18.1.1 EXECUTE IMMEDIATE語句 427
18.1.2 OPEN FOR語句 428
18.1.3 4種動態SQL方法 429
18.2 動態PL/SQL 431
18.3 小結 431
第19章 管理PL/SQL代碼 432
19.1 管理數據庫中的代碼 432
19.1.1 數據字典視圖概述 432
19.1.2 顯示存儲對象的信息 433
19.1.3 源代碼的顯示和搜索 434
19.1.4 通過數據字典視圖查看編譯器屬性 434
19.1.5 通過視圖分析和更改觸發器的狀態 436
19.1.6 分析參數信息 437
19.2 依賴關係的管理和代碼的重編譯 437
19.2.1 通過數據字典視圖查看依賴關係 437
19.2.2 失效的程序單元的重編譯 438
19.3 編譯時警告 439
19.4 PL/SQL程序的執行和調試 441
19.4.1 PL/SQL程序的執行 441
19.4.2 PL/SQL程序的調試 442
19.4.3 調試技巧和策略 442
19.5 I/O操作與PL/SQL 446
19.5.1 顯示信息 446
19.5.2 啓用DBMS_OUTPUT 446
19.6 應用安全與PL/SQL 448
19.7 小結 449
第20章 PL/SQL語句優化 450
20.1 一般的SQL技巧 450
20.1.1 在查詢中盡量不使用“*” 450
20.1.2 多錶查詢時多使用彆名 450
20.1.3 條件查詢多使用WHERE 451
20.1.4 計算時不用索引列 451
20.1.5 指定查詢範圍時多使用IN 452
20.1.6 使用TRUNCATE清空錶中記錄 453
20.1.7 及時提交事務 453
20.1.8 DECODE函數的使用 454
20.1.9 多使用EXISTS語句判斷條件 455
20.1.10 其他技巧 455
20.2 Oracle優化器 456
20.2.1 Oracle優化器的分類 456
20.2.2 Oracle優化器的模式 457
20.2.3 查看Oracle執行計劃 457
20.3 SQL性能指導 458
20.3.1 ADDM 458
20.3.2 SQL訪問指導 458
20.3.3 SQL優化指導 462
20.4 小結 462
第21章 備份與恢復 463
21.1 備份與恢復簡介 463
21.1.1 備份 463
21.1.2 恢復 463
21.2 邏輯備份與恢復 463
21.2.1 使用expdp和impdp工具進行邏輯備份與恢復 463
21.2.2 使用OEM進行邏輯備份與恢復 466
21.3 脫機備份與恢復 475
21.3.1 脫機備份 475
21.3.2 脫機恢復 476
21.4 聯機備份與恢復 476
21.4.1 使用RMAN管理備份與恢復 477
21.4.2 恢復 479
21.5 小結 482
第4篇 Oracle應用開發
第22章 在.NET中連接Oracle數據庫 484
22.1 ADO.NET概述 484
22.1.1 什麼是ADO.NET 484
22.1.2 ADO.NET中的對象 484
22.2 使用綁定的方式連接Oracle數據庫 485
22.2.1 數據控件概述 485
22.2.2 使用DataGridView控件綁定Oracle數據庫 486
22.3 使用代碼的方式連接Oracle數據庫 492
22.3.1 使用Command對象操作Oracle數據庫 492
22.3.2 使用DataSet對象存儲查詢結果 494
22.3.3 商品信息存儲實例 495
22.4 小結 499
第23章 在Java中連接Oracle數據庫 500
23.1 JDBC與ODBC簡介 500
23.1.1 什麼是JDBC 500
23.1.2 什麼是ODBC 501
23.2 使用Thin方式連接Oracle數據庫 502
23.3 使用JDBC-ODBC橋連接Oracle數據庫 510
23.3.1 配置ODBC數據源 510
23.3.2 連接Oracle數據庫 513
23.4 小結 513
· · · · · · (
收起)