內容簡介
《Oracle從入門到精通(第4版)》從初學者角度出發,通過通俗易懂的語言和豐富多彩的實例,詳細介紹了使用Oracle 19c進行數據管理的各方面技術。全書分為4篇,共19章,內容包括Oracle 19c概述,Oracle體系結構,SQL*Plus命令,SQL語言基礎,PL/SQL編程,過程、函式、觸發器和包,管理控制檔案和日誌檔案,管理表空間和數據檔案,數據表對象,其他數據對象,表分區與索引分區,用戶管理與許可權分配,資料庫控制,Oracle系統調優,最佳化SQL語句,Oracle數據備份與恢復,數據導出和導入,Oracle的閃回技術以及企業人事管理系統項目實戰。所有知識都結合具體實例進行介紹,涉及的程式代碼均給出了詳細的注釋,讀者可以輕鬆領會Oracle 19c管理資料庫的精髓,快速提高資料庫管理技能。
目錄
第1篇 基礎知識
第1章 Oracle 19c概述 2
視頻講解:72分鐘
1.1 Oracle的發展史 2
1.2 關係型資料庫的基本理論 4
1.2.1 關係型資料庫與資料庫管理系統 4
1.2.2 關係型資料庫的E-R模型 5
1.2.3 關係型資料庫的設計範式 6
1.3 Oracle 19c的安裝與卸載 8
1.3.1 Oracle 19c的安裝 8
1.3.2 Oracle 19c的卸載 11
1.4 Oracle 19c的管理工具 12
1.4.1 SQL*Plus工具 12
1.4.2 Oracle企業管理器 16
1.4.3 資料庫配置助手 17
1.5 啟動與關閉資料庫實例 17
1.5.1 啟動資料庫實例 17
1.5.2 關閉資料庫實例 20
1.6 實踐與練習 21
第2章 Oracle體系結構 23
視頻講解:134分鐘
2.1 Oracle體系結構概述 22
2.2 邏輯存儲結構 23
2.2.1 數據塊 23
2.2.2 數據區 24
2.2.3 段 25
2.2.4 表空間 25
2.3 物理存儲結構 26
2.3.1 數據檔案 27
2.3.2 控制檔案 28
2.3.3 日誌檔案 29
2.3.4 伺服器參數檔案 30
2.3.5 密碼檔案、警告檔案和跟蹤檔案 32
2.4 Oracle伺服器結構 33
2.4.1 系統全局區 34
2.4.2 程式全局區 36
2.4.3 前台進程 37
2.4.4 後台進程 37
2.5 數據字典 41
2.5.1 Oracle數據字典簡介 41
2.5.2 Oracle常用數據字典 41
2.6 實踐與練習 42
第3章 SQL*Plus命令 46
視頻講解:81分鐘
3.1 SQL*Plus與資料庫的互動 43
3.2 設定SQL*Plus的運行環境 44
3.2.1 SET命令簡介 44
3.2.2 使用SET命令設定運行環境 46
3.3 常用SQL*Plus命令 49
3.3.1 HELP命令 49
3.3.2 DESCRIBE命令 50
3.3.3 SPOOL命令 51
3.3.4 其他常用命令 52
3.4 格式化查詢結果 55
3.4.1 COLUMN命令 55
3.4.2 TTITLE和BTITLE命令 57
3.5 實踐與練習 59
第4章 SQL語言基礎 63
視頻講解:162分鐘
4.1 SQL語言簡介 60
4.1.1 SQL語言的特點 61
4.1.2 SQL語言的分類 62
4.1.3 SQL語言的編寫規則 62
4.2 用戶模式 63
4.2.1 模式與模式對象 63
4.2.2 示例模式scott 64
4.3 檢索數據 65
4.3.1 簡單查詢 65
4.3.2 篩選查詢 71
4.3.3 分組查詢 77
4.3.4 排序查詢 84
4.3.5 多表關聯查詢 86
4.4 Oracle常用系統函式 91
4.4.1 字元類函式 91
4.4.2 數字類函式 94
4.4.3 日期和時間類函式 95
4.4.4 轉換類函式 96
4.4.5 聚集函式 97
4.5 子查詢的用法 97
4.5.1 什麼是子查詢 98
4.5.2 單行子查詢 99
4.5.3 多行子查詢 99
4.5.4 關聯子查詢 100
4.6 運算元據庫 101
4.6.1 插入數據(INSERT語句) 101
4.6.2 更新數據(UPDATE語句) 104
4.6.3 刪除數據(DELETE語句和TRUNCATE語句) 106
4.7 實踐與練習 108
第5章 PL/SQL編程 115
視頻講解:120分鐘
5.1 PL/SQL簡介 109
5.1.1 PL/SQL塊結構 109
5.1.2 代碼注釋和標識符 111
5.1.3 文本 113
5.2 數據類型、變數和常量 114
5.2.1 基本數據類型 114
5.2.2 特殊數據類型 116
5.2.3 定義變數和常量 119
5.2.4 PL/SQL表達式 120
5.3 流程控制語句 121
5.3.1 選擇語句 121
5.3.2 循環語句 125
5.4 PL/SQL游標 128
5.4.1 基本原理 129
5.4.2 顯式游標 129
5.4.3 隱式游標 132
5.4.4 游標的屬性 133
5.4.5 游標變數 136
5.4.6 通過FOR語句循環遊標 138
5.5 PL/SQL異常處理 139
5.5.1 異常處理方法 139
5.5.2 異常處理語法 140
5.5.3 預定義異常 141
5.5.4 自定義異常 143
5.6 實踐與練習 145
第6章 過程、函式、觸發器和包 154
視頻講解:82分鐘
6.1 存儲過程 146
6.1.1 創建存儲過程 146
6.1.2 存儲過程的參數 149
6.1.3 IN參數的默認值 154
6.1.4 刪除存儲過程 155
6.2 函式 155
6.2.1 創建函式 155
6.2.2 調用函式 156
6.2.3 刪除函式 157
6.3 觸發器 157
6.3.1 觸發器簡介 157
6.3.2 語句級觸發器 159
6.3.3 行級觸發器 161
6.3.4 替換觸發器 163
6.3.5 用戶事件觸發器 165
6.3.6 刪除觸發器 166
6.4 程式包 167
6.4.1 程式包規範 167
6.4.2 程式包主體 168
6.4.3 刪除程式包 170
6.5 實踐與練習 171
第2篇 核心技術
第7章 管理控制檔案和日誌檔案 182
視頻講解:40分鐘
7.1 管理控制檔案 174
7.1.1 控制檔案簡介 175
7.1.2 控制檔案的多路復用 176
7.1.3 創建控制檔案 177
7.1.4 備份和恢復控制檔案 180
7.1.5 刪除控制檔案 182
7.1.6 查詢控制檔案的信息 182
7.2 管理重做日誌檔案 183
7.2.1 重做日誌檔案概述 183
7.2.2 增加日誌組及其成員 185
7.2.3 刪除重做日誌檔案 186
7.2.4 更改重做日誌檔案的位置或名稱 188
7.2.5 查看重做日誌信息 188
7.3 管理歸檔日誌檔案 189
7.3.1 日誌模式分類 189
7.3.2 管理歸檔操作 191
7.3.3 設定歸檔檔案位置 192
7.3.4 查看歸檔日誌信息 194
7.4 實踐與練習 195
第8章 管理表空間和數據檔案 204
視頻講解:107分鐘
8.1 表空間與數據檔案的關係 196
8.2 Oracle的默認表空間 197
8.2.1 SYSTEM表空間 197
8.2.2 SYSAUX表空間 198
8.3 創建表空間 199
8.3.1 創建表空間的語法 199
8.3.2 通過本地化管理方式創建表空間 200
8.3.3 通過段空間管理方式創建表空間 201
8.3.4 創建非標準塊表空間 202
8.3.5 建立大檔案表空間 203
8.4 維護表空間與數據檔案 204
8.4.1 設定默認表空間 204
8.4.2 更改表空間的狀態 204
8.4.3 重命名表空間 205
8.4.4 刪除表空間 205
8.4.5 維護表空間中的數據檔案 206
8.5 管理撤銷表空間 207
8.5.1 撤銷表空間的作用 207
8.5.2 撤銷表空間的初始化參數 208
8.5.3 撤銷表空間的基本操作 209
8.6 管理臨時表空間 212
8.6.1 臨時表空間簡介 212
8.6.2 創建臨時表空間 213
8.6.3 查詢臨時表空間的信息 213
8.6.4 管理臨時表空間組 214
8.7 實踐與練習 215
第9章 數據表對象 225
視頻講解:123分鐘
9.1 數據表概述 216
9.2 創建數據表 217
9.2.1 數據表的邏輯結構 217
9.2.2 創建數據表 219
9.2.3 數據表的特性 220
9.3 維護數據表 224
9.3.1 增加和刪除欄位 225
9.3.2 修改欄位 226
9.3.3 重命名表 226
9.3.4 改變表空間和存儲參數 227
9.3.5 刪除表 228
9.3.6 修改表的狀態 229
9.4 數據完整性和約束性 230
9.4.1 非空約束 230
9.4.2 主鍵約束 231
9.4.3 唯一性約束 233
9.4.4 外鍵約束 235
9.4.5 禁用和激活約束 237
9.4.6 刪除約束 239
9.5 實踐與練習 239
第10章 其他數據對象 250
視頻講解:68分鐘
10.1 索引對象 240
10.1.1 索引概述 240
10.1.2 創建索引 241
10.1.3 修改索引 246
10.1.4 刪除索引 247
10.1.5 顯示索引信息 247
10.2 視圖對象 249
10.2.1 創建視圖 249
10.2.2 管理視圖 252
10.3 同義詞對象 254
10.4 序列對象 255
10.4.1 創建序列 256
10.4.2 管理序列 257
10.5 實踐與練習 258
第11章 表分區與索引分區 269
視頻講解:66分鐘
11.1 分區技術簡介 259
11.2 創建表分區 260
11.2.1 範圍分區 260
11.2.2 散列分區 261
11.2.3 列表分區 263
11.2.4 組合分區 264
11.2.5 Interval分區 265
11.3 表分區策略 265
11.4 管理表分區 266
11.4.1 添加表分區 266
11.4.2 合併表分區 266
11.4.3 刪除表分區 267
11.4.4 併入範圍分區 268
11.5 創建索引分區 269
11.5.1 索引分區概述 270
11.5.2 本地索引分區 270
11.5.3 全局索引分區 271
11.6 管理索引分區 272
11.6.1 管理操作列表 272
11.6.2 刪除和重命名索引分區 272
11.7 實踐與練習 273
第12章 用戶管理與許可權分配 285
視頻講解:49分鐘
12.1 用戶與模式的關係 274
12.2 創建與管理用戶 275
12.2.1 身份驗證 275
12.2.2 創建用戶 276
12.2.3 修改用戶 278
12.2.4 刪除用戶 279
12.3 用戶許可權管理 279
12.3.1 許可權簡介 279
12.3.2 授權操作 279
12.3.3 撤銷系統許可權 281
12.3.4 對象授權 281
12.3.5 撤銷對象許可權 282
12.3.6 查詢用戶與許可權 282
12.4 角色管理 283
12.4.1 角色簡介 283
12.4.2 預定義角色 284
12.4.3 創建角色與授權 285
12.4.4 管理角色 286
12.4.5 角色與許可權的查詢 287
12.5 資源配置PROFILE 288
12.5.1 PROFILE簡介 288
12.5.2 使用PROFILE管理密碼 288
12.5.3 使用PROFILE管理資源 290
12.5.4 維護PROFILE檔案 292
12.5.5 顯示PROFILE信息 292
12.6 實踐與練習 293
第3篇 高級套用
第13章 資料庫控制 296
視頻講解:19分鐘
13.1 用事務控制操作 296
13.1.1 事務概述 296
13.1.2 操作事務 298
13.2 用鎖控制並發存取 303
13.2.1 並發控制 304
13.2.2 為何加鎖 305
13.2.3 加鎖的方法 307
13.3 死鎖 309
13.3.1 死鎖的產生 309
13.3.2 死鎖的預防 310
13.4 實踐與練習 310
第14章 Oracle系統調優 324
視頻講解:28分鐘
14.1 調整初始化參數 311
14.1.1 Oracle初始化參數分類 311
14.1.2 主要系統調優參數介紹 312
14.2 系統全局區(SGA)最佳化 313
14.2.1 理解記憶體分配 313
14.2.2 調整日誌緩衝區 314
14.2.3 調整共享池 316
14.2.4 調整資料庫緩衝區 318
14.2.5 SGA調優建議 318
14.3 排序區最佳化 318
14.3.1 排序區與其他記憶體區的關係 319
14.3.2 理解排序活動 319
14.3.3 專用模式下排序區的調整 320
14.3.4 共享模式下排序區的調整 322
14.4 實踐與練習 322
第15章 最佳化SQL語句 337
視頻講解:21分鐘
15.1 常規SQL語句最佳化 323
15.1.1 建議不用“*”來代替所有列名 323
15.1.2 用TRUNCATE代替DELETE 323
15.1.3 在確保完整性的情況下多用COMMIT語句 324
15.1.4 儘量減少表的查詢次數 324
15.1.5 用[NOT] EXISTS代替[NOT] IN 325
15.2 表連線最佳化 325
15.2.1 驅動表的選擇 325
15.2.2 WHERE子句的連線順序 326
15.3 合理使用索引 326
15.3.1 何時使用索引 326
15.3.2 索引列和表達式的選擇 326
15.3.3 選擇複合索引主列 327
15.3.4 避免對大表進行全表掃描 327
15.3.5 監視索引是否被使用 327
15.4 最佳化器的使用 328
15.4.1 最佳化器的概念 328
15.4.2 運行EXPLAIN PLAN 329
15.4.3 Oracle中SQL執行計畫的管理 329
15.5 資料庫和SQL重演 330
15.5.1 資料庫重演 330
15.5.2 SQL重演 330
15.6 Oracle的性能顧問 331
15.6.1 SQL調優顧問 331
15.6.2 SQL訪問顧問 331
15.7 實踐與練習 331
第16章 Oracle數據備份與恢復 347
視頻講解:28分鐘
16.1 備份與恢復概述 332
16.2 RMAN工具簡介 333
16.2.1 RMAN的優點 333
16.2.2 RMAN組件 334
16.2.3 RMAN通道 336
16.2.4 RMAN命令 338
16.3 使用RMAN工具備份 340
16.3.1 RMAN備份策略 340
16.3.2 使用RMAN備份資料庫檔案和歸檔日誌 341
16.3.3 增量備份 344
16.4 使用RMAN工具完全恢復 344
16.4.1 恢復處於NOARCHIVELOG模式的資料庫 345
16.4.2 恢復處於ARCHIVELOG模式的資料庫 346
16.5 使用RMAN工具部分恢復 347
16.5.1 基於時間的不完全恢復 347
16.5.2 基於更改的不完全恢復 349
16.6 實踐與練習 350
第17章 數據導出和導入 367
視頻講解:18分鐘
17.1 EXPDP和IMPDP概述 351
17.2 EXPDP導出數據 352
17.2.1 執行EXPDP命令 352
17.2.2 EXPDP命令參數 355
17.3 IMPDP導入數據 356
17.3.1 執行IMPDP命令 357
17.3.2 IMPDP命令參數 358
17.4 SQL* Loader工具 359
17.4.1 SQL* Loader概述 359
17.4.2 載入數據 360
17.5 實踐與練習 362
第18章 Oracle的閃回技術 378
視頻講解:16分鐘
18.1 閃回技術概述 363
18.2 閃回資料庫 364
18.2.1 閃回恢復區 364
18.2.2 閃回資料庫配置 368
18.2.3 閃回資料庫技術套用 370
18.3 閃回表 371
18.3.1 閃回表命令的語法 371
18.3.2 閃回表的套用 371
18.4 閃回丟棄 372
18.4.1 資源回收筒簡介 372
18.4.2 資源回收筒的套用 373
18.5 其他閃回技術 374
18.5.1 閃回版本查詢 374
18.5.2 閃回事務查詢 374
18.5.3 閃回數據歸檔 375
18.6 實踐與練習 375
第4篇 項目實戰
第19章 企業人事管理系統 394
視頻講解:177分鐘
19.1 開發背景 378
19.2 系統分析 379
19.3 系統設計 379
19.3.1 系統目標 379
19.3.2 系統功能結構 379
19.3.3 系統預覽 380
19.3.4 業務流程圖 382
19.3.5 資料夾結構設計 383
19.4 資料庫設計 383
19.4.1 資料庫分析 383
19.4.2 資料庫概念設計 383
19.4.3 資料庫邏輯結構設計 384
19.5 主窗體設計 385
19.5.1 導航欄設計 385
19.5.2 工具列設計 387
19.6 公共模組設計 389
19.6.1 編寫Hibernate配置檔案 389
19.6.2 編寫Hibernate持久化類和映射檔案 390
19.6.3 編寫通過Hibernate操作持久化對象的常用方法 391
19.6.4 創建用於特殊效果的部門樹對話框 392
19.6.5 創建通過部門樹選取員工的面板和對話框 393
19.7 人事管理模組設計 395
19.7.1 人事管理模組功能概述 395
19.7.2 人事管理模組技術分析 396
19.7.3 人事管理模組實現過程 396
19.8 待遇管理模組設計 400
19.8.1 待遇管理模組功能概述 401
19.8.2 待遇管理模組技術分析 401
19.8.3 待遇管理模組實現過程 402
19.9 系統維護模組設計 406
19.9.1 系統維護模組功能概述 406
19.9.2 系統維護模組技術分析 407
19.9.3 系統維護模組實現過程 407
19.10 Hibernate關聯關係的建立方法 411
19.10.1 建立一對一關聯 411
19.10.2 建立一對多關聯 412
19.11 小結 414