內容提要
本書全面、系統、深入地講解了Oracle 資料庫的各項相關技術。在講解過程中,通過大量取自實際操作的實例,將Oracle 知識全面、系統、深入地展現給讀者。另外,作者專門為本書錄製了大量的配套教學視頻,讓讀者更好地分析實例,在學習的過程中遇到問題時,可參考。本書共分4 篇。第1 篇(第1~6 章)介紹Oracle 安裝和配置、Oracle 常用工具、SQL Plus 和SQLDeveloper、Oralce 資料庫、Oracel 數據類型與表的管理、表的約束;第2 篇(第7~11 章)介紹數據查詢、高級查詢、常用函式、索引、視圖等技術;第3 篇(第12~18 章)介紹Oracle 編程基礎、游標、存儲過程、函式、觸發器、序列、事務和鎖等資料庫技術;第4 篇(第19~22 章)介紹表空間管理、資料庫安全管理、備份與恢復、控制檔案和日誌檔案等技術。
本書內容涉及面廣,從基本操作到高級技術和核心原理,幾乎涉及Oracle 11g R2 資料庫的各個概念和特性。全書結構安排合理,實例豐富且淺顯易懂,尤其適合廣大程式設計師自學,也適合各種使用Oracle資料庫進行開發的工程技術人員使用。
書本目錄
第1篇 Oracle基礎篇
第1章 Oracle的安裝11.1Oracle資料庫簡介 1
1.1.1資料庫術語 1
1.1.2主流資料庫簡介 2
1.1.3Oracle資料庫的特點 2
1.2安裝Oracle資料庫 3
1.2.1Oracle資料庫的版本變遷及安裝環境 3
1.2.2下載Oracle安裝檔案 4
1.2.3安裝過程 6
1.2.4安裝中需要注意的問題 11
1.3小結 11
第2章Oracle常用工具 12
2.1Oracle企業管理器 12
2.1.1Oracle企業管理器概述 12
2.1.2使用Oracle企業管理器 13
2.2網路配置助手(Net Configuration Assistant)14
2.2.1Net ConfigurationAssistant概述 14
2.2.2配置監聽程式 14
2.2.3配置本地網路伺服器名 16
2.3網路管理器(Oracle Net Manager)19
2.3.1Oracle Net Manager概述19
2.3.2監聽器配置(LISTENER) 20
2.3.3本地服務名配置 21
2.4小結 23
第3章SQL Plus和SQL Developer 24
3.1使用SQL Plus24
3.1.1登錄SQL Plus 24
3.1.2利用SQL Plus執行資料庫操作25
3.1.3利用SQL Plus解決資料庫管理員密碼丟失問題 25
3.2使用SQL Developer 26
3.2.1登錄SQL Developer 26
3.2.2SQL Developer操作簡介 27
3.3小結 27
第4章Oracle資料庫28
4.1創建Oracle資料庫 28
4.2刪除Oracle資料庫 34
4.2.1刪除資料庫 34
4.2.2修改註冊表 36
4.3安裝示例資料庫 37
4.4小結 40
第5章Oracle數據類型與表的管理41
5.1Oracle常用的數據類型 41
5.2創建Oracle數據表 42
5.2.1設計數據表 42
5.2.2利用OEM創建數據表 43
5.2.3利用工具創建數據表 48
5.2.4利用命令創建數據表 49
5.3修改數據表結構 50
5.3.1利用OEM修改數據表結構 51
5.3.2利用工具修改數據表結構 53
5.3.3利用命令查看、修改數據表結構 53
5.4刪除數據表 55
5.4.1利用OEM刪除數據表 55
5.4.2利用工具刪除數據表 56
5.4.3利用drop命令刪除數據表 56
5.5對數據表中數據的操作 57
5.5.1添加數據 57
5.5.2查看數據 58
5.5.3修改數據 60
5.5.4刪除數據 61
5.6特殊的數據表dual 61
5.7小結 62
第6章表的約束 63
6.1約束簡介 63
6.2主鍵約束 63
6.2.1主鍵簡介 64
6.2.2利用命令添加主鍵約束 64
6.2.3主鍵使用場景 66
6.2.4修改主鍵約束 67
6.2.5刪除主鍵約束 70
6.2.6主鍵與索引 71
6.3外鍵約束 73
6.3.1外鍵簡介 73
6.3.2 添加外鍵約束 74
6.3.3驗證外鍵約束 76
6.3.4修改外鍵約束 78
6.3.5使用SQL Developer添加、刪除外鍵約束 80
6.3.6外鍵使用場景 80
6.4唯一性約束 81
6.4.1唯一性約束簡介 81
6.4.2添加唯一性約束 82
6.4.3驗證唯一性約束 83
6.4.4修改唯一性約束 83
6.4.5使用SQL Developer添加、刪除唯一性約束 85
6.4.6唯一性約束使用場景 86
6.5檢查約束 86
6.5.1檢查約束簡介 86
6.5.2添加檢查約束 87
6.5.3驗證檢查約束 88
6.5.4修改檢查約束 89
6.5.5使用SQL Developer添加、刪除檢查約束 91
6.5.6檢查約束使用場景 91
6.6非空約束 91
6.6.1為列添加非空約束 91
6.6.2撤銷非空約束 93
6.7默認約束 94
6.7.1為列添加默認(default)約束 94
6.7.2刪除默認(default)約束 96
6.8小結 97
第2篇 Oracle查詢篇
第7章 數據查詢 987.1基本查詢 98
7.1.1select語句查詢執行步驟98
7.1.2為列設定別名 99
7.1.3利用distinct獲得唯一性記錄100
7.1.4返回查詢的部分結果 101
7.2簡單條件查詢 101
7.2.1where子句102
7.2.2在查詢中使用比較表達式 103
7.2.3使用簡單邏輯表達式 104
7.2.4指定數據範圍 105
7.2.5有關null值判斷 107
7.2.6like進行模糊查詢 107
7.2.7order by子句 109
7.2.8group by子句 111
7.2.9having子句 112
7.3小結 114
第8章高級查詢 115
8.1連線簡介 115
8.1.1連線的定義 115
8.1.2連線的類型 115
8.1.3簡單的多表查詢 116
8.2表的連線查詢 118
8.2.1自然連線 118
8.2.2內連線 120
8.2.3外連線 122
8.3單表中的聯合語句 125
8.3.1union查詢125
8.3.2union all查詢 126
8.3.3intersect查詢 127
8.3.4minus查詢128
8.4子查詢 128
8.4.1理解子查詢 128
8.4.2子查詢的使用 129
8.4.3子查詢的使用方式及限制 130
8.5查詢語句最佳化 135
8.5.1在查詢中儘量不使用“*” 136
8.5.2多表查詢中儘量使用表別名 136
8.5.3條件查詢多使用where 136
8.5.4指定查詢範圍多使用in 136
8.5.5子查詢中多使用exists語句判斷條件 136
8.6小結 137
第9章常用函式 138
9.1聚合函式 138
9.1.1計數函式count() 138
9.1.2求和函式sum()140
9.1.3均值函式avg() 141
9.1.4最大值max()和最小值min() 142
9.2數學函式 143
9.2.1Oracle中的數值型 143
9.2.2絕對值、取余、判斷數值正負 144
9.2.3近似值函式、截取、取整函式 145
9.2.4平方根、乘方運算函式 149
9.2.5格式化數值——to_char()函式150
9.3字元串函式 153
9.3.1字元型簡介 154
9.3.2刪除空格 154
9.3.3求字元串長度函式 155
9.3.4字元轉換函式 156
9.3.5連線字元串 159
9.3.6檢索字元串、取子串函式 161
9.4日期函式 166
9.4.1獲取日期和時間的函式 166
9.4.2日期和時間差的函式 170
9.5轉換函式 172
9.5.1類型轉換——cast()函式 173
9.5.2將數值或日期轉換為字元串——to_char()函式 173
9.5.3字元轉數值——to_number()函式 175
9.5.4字元轉日期——to_date()函式176
9.6null函式 177
9.7小結 177
第10章索引 178
10.1索引簡介 178
10.2索引的創建178
10.2.1何時創建索引178
10.2.2使用工具創建索引179
10.2.3使用OEM創建索引 180
10.2.4使用語句創建索引182
10.2.5創建索引的注意事項 184
10.3索引的管理184
10.3.1修改索引184
10.3.2刪除索引189
10.4小結 192
第11章視圖 193
11.1Oracle視圖193
11.1.1視圖的概念 193
11.1.2視圖的作用 193
11.1.3視圖的分類 194
11.2關係視圖的創建和使用 194
11.2.1使用語句創建視圖194
11.2.2使用SQL Developer創建視圖202
11.2.3使用OEM創建視圖 204
11.2.4查看及操作訪問視圖 206
11.2.5使用SQL Developer工具訪問視圖212
11.3內嵌視圖的創建和使用 215
11.4視圖的修改216
11.4.1使用語句修改視圖216
11.4.2使用SQL Developer工具修改視圖217
11.4.3使用OEM修改視圖 218
11.5視圖的刪除220
11.5.1使用語句刪除視圖220
11.5.2使用SQL Developer 工具刪除視圖 221
11.5.3使用OEM刪除視圖 221
11.6小結 222
第3篇 PL/SQL編程篇
第12章 Oracle編程基礎 22312.1PL/SQL簡介223
12.1.1PL/SQL基本結構 223
12.1.2PL/SQL注釋 225
12.1.3PL/SQL基本規則 225
12.1.4PL/SQL數據類型 226
12.1.5PL/SQL運算符227
12.1.6PL/SQL表達式229
12.1.7PL/SQL中變數、常量的定義與使用 230
12.2PL/SQL中定義類型 233
12.2.1記錄類型233
12.2.2集合類型235
12.3Oracle中的條件控制語句238
12.3.1流程控制——if else判斷 238
12.3.2流程控制——case when分支 241
12.4Oracle中的循環語句245
12.4.1無條件循環 245
12.4.2while循環 247
12.4.3for循環 248
12.5小結 250
第13章游標 251
13.1什麼是游標251
13.1.1游標概念251
13.1.2游標種類252
13.2顯式游標 252
13.2.1創建顯式游標步驟252
13.2.2游標中的loop語句256
13.2.3使用bulk collect和for語句的游標 258
13.2.4使用for loop語句 260
13.2.5為游標傳遞參數 262
13.2.6顯式游標的屬性 263
13.3隱式游標 266
13.3.1隱式游標的特點 266
13.3.2隱式游標的屬性 267
13.3.3使用SQL隱式游標268
13.3.4使用cursor for隱式游標 268
13.4動態(REF)游標 269
13.4.1強類型動態游標 270
13.4.2弱類型動態游標 272
13.5小結 273
第14章存儲過程 274
14.1存儲過程簡介 274
14.1.1認識存儲過程274
14.1.2存儲過程的作用 274
14.2創建和執行存儲過程275
14.2.1創建存儲過程275
14.2.2有參數的存儲過程279
14.2.3in參數 280
14.2.4out參數 284
14.2.5in out參數 286
14.3SQL Developer工具創建存儲過程 287
14.3.1創建存儲過程287
14.3.2調試存儲過程288
14.4管理存儲過程 290
14.4.1修改存儲過程290
14.4.2重新編譯存儲過程291
14.4.3刪除存儲過程292
14.5小結 293
第15章函式和程式包 294
15.1自定義函式294
15.1.1創建自定義函式 294
15.1.2帶參數的函式297
15.1.3行轉列函式 301
15.1.4使用SQL Developer創建函式303
15.1.5管理函式305
15.2程式包306
15.2.1程式包說明 306
15.2.2程式包主體 308
15.2.3調用程式包中的函式/存儲過程 309
15.2.4刪除程式包 309
15.3小結 309
第16章觸發器 310
16.1觸發器簡介310
16.1.1認識觸發器 310
16.1.2觸發器類型 310
16.1.3觸發器的作用311
16.2DML觸發器 311
16.3語句級觸發器 313
16.3.1創建語句級觸發器314
16.3.2觸發器的作用對象與類型 316
16.3.3多個激活動作317
16.3.4觸發器謂詞 318
16.4行觸發器 322
16.4.1創建和使用行觸發器 323
16.4.2行觸發器的變數引用 326
16.4.3變數引用與referencing 330
16.4.4觸發器的執行順序331
16.4.5觸發器的條件限制331
16.5instead of觸發器 333
16.5.1instead of觸發器簡介 333
16.5.2創建和使用instead of觸發器 334
16.6DDL觸發器338
16.7系統事件與用戶事件觸發器 339
16.7.1系統事件觸發器 339
16.7.2用戶事件觸發器 341
16.8使用SQL Developer工具操作觸發器 344
16.9管理觸發器346
16.9.1查看觸發器 346
16.9.2設定觸發器是否可用 347
16.10小結 349
第17章序列 350
17.1自動生成序號 350
17.2創建和使用序列350
17.2.1創建序列350
17.2.2使用序列352
17.3序列屬性 357
17.3.1創建序列的注意事項 358
17.3.2指定序列初始值 358
17.3.3序列的最大值和最小值359
17.3.4序列的增長步長 360
17.3.5序列循環取值363
17.3.6序列快取大小364
17.4小結 367
第18章事務和鎖 368
18.1什麼是事務368
18.1.1事務概述368
18.1.2事務的ACID特性 369
18.1.3事務類型369
18.1.4事務的狀態 370
18.1.5提交事務371
18.1.6事務的保存點373
18.2鎖376
18.2.1並發訪問的常見問題 376
18.2.2鎖概述 377
18.2.3鎖分類 377
18.2.4鎖等待和死鎖377
18.2.5預防死鎖382
18.3小結 382
第4篇 Oracle維護篇
第19章表空間管理 38319.1Oracle 11g的基礎結構 383
19.1.1模式383
19.1.2存儲結構384
19.1.3表空間相關概念 384
19.2表空間管理385
19.2.1查看錶空間 385
19.2.2創建表空間 389
19.2.3重命名表空間392
19.2.4設定表空間的狀態393
19.3合理利用表空間394
19.3.1處理空間不足的情況 394
19.3.2正確的數據類型 398
19.3.3回收利用表空間 398
19.4小結 400
第20章資料庫安全管理 401
20.1Oracle資料庫安全性概述401
20.2用戶 401
20.2.1用戶簡介401
20.2.2創建用戶402
20.2.3用戶管理406
20.3許可權 408
20.3.1許可權簡介408
20.3.2授予系統許可權411
20.3.3授予對象許可權414
20.3.4許可權的傳遞 418
20.3.5收回對象的許可權 420
20.3.6用戶和許可權 423
20.4角色 423
20.4.1角色簡介424
20.4.2創建角色424
20.4.3為角色授權 426
20.4.4將一個角色授予另一個角色428
20.4.5為用戶授予角色 429
20.4.6禁用和啟用角色 430
20.4.7撤銷角色許可權432
20.4.8刪除角色432
20.5概要檔案 433
20.5.1創建概要檔案433
20.5.2概要檔案管理436
20.6小結 437
第21章備份與恢復 438
21.1備份與恢復簡介438
21.1.1備份438
21.1.2恢復438
21.2邏輯備份與恢復438
21.2.1使用expdp和impdp工具進行邏輯備份恢復 438
21.2.2使用OEM進行邏輯備份恢復 441
21.3脫機備份 449
21.3.1脫機備份449
21.3.2脫機恢復450
21.4在線上備份恢復 450
21.4.1使用RAMN 450
21.4.2備份恢復453
21.5小結 455
第22章控制檔案和日誌檔案 456
22.1控制檔案 456
22.1.1控制檔案概述456
22.1.2查詢控制檔案456
22.1.3創建控制檔案457
22.2日誌檔案 459
22.2.1日誌檔案概述459
22.2.2創建日誌組和日誌檔案460
22.2.3查詢日誌檔案組和日誌檔案461
22.3小結 462
作者簡介
劉麗霞畢業於西安電子科技大學,獲博士學位,現就職於武警工程大學。長期從事計算機信息工程專業的教學與科研工作,對SQL Server、Oracle等資料庫有深入研究。主持並完成13項科研項目,在國內外期刊上發表大量的相關論文和著作。
書本前言
Oracle資料庫是美國的甲骨文公司開發的一款重量級資料庫系統。從發布至今,經歷了一個從不穩定到穩定,從功能簡單到強大的過程,已經發展到11g R2。它以高級結構化查詢語言(SQL)為基礎,成為目前最流行、套用最廣泛的客戶端/伺服器(Client/Server)體系結構的資料庫。Oracle資料庫不僅性能優越,還可以良好地支持大數據存儲格式,如圖形、音頻、視頻、動畫等媒體格式。筆者結合自己多年的Oracle資料庫開發經驗和心得體會,花費了一年多的時間寫作本書。希望各位讀者能在本書的引領下進入Oracle資料庫開發大門,對並Oracle資料庫有更深入的理解。本書結合大量實例和多媒體教學視頻,對Oracle知識點相關的原理進行了深入淺出的講解。更主要的是,本書結合實際套用環境,提供了一系列解決問題的思路和方法,包括詳細的操作步驟,具有很強的實戰性和可操作性。學習完本書後,讀者應該可以具備獨立進行項目開發的能力。
本書特色
1.內容全面、系統、深入本書介紹了Oracle資料庫開發的基礎知識、開發工具、數據查詢、Oracle資料庫維護等內容。
2.講解由淺入深,循序漸進
本書從Oracle資料庫的基礎開始講解,逐步深入到Oracle資料庫的高級開發技術,內容梯度從易到難,講解由淺入深,循序漸進,適合各層次的讀者閱讀。
3.貫穿大量的開發實例和技巧,迅速提升開發水平
本書在講解知識點時貫穿了大量短小精悍的典型實例,並給出了大量的開發技巧,以便讓讀者分步實踐練習各個實例,更好地理解各種概念和開發技術。
4.配大量多媒體語音教學視頻,學習效果好
作者專門錄製了大量的配套多媒體語音教學視頻,以便讓讀者直觀地學習本書內容,提高學習效率。這些視頻與本書原始碼一起收錄於本書配套光碟中。
本書內容及體系結構
第1篇Oracle基礎篇(第1~6章)本篇主要內容包括:Oracle的安裝、Oracle常用工具、SQL Plus和SQL Developer、Oralce資料庫、Oracel數據類型與表的管理、表的約束等。通過本篇的學習,讀者可以掌握Oralce資料庫開發環境、Oralce資料庫開發工具以及數據表的創建和管理。
第2篇Oracle查詢篇(第7~11章)
本篇主要內容包括:數據查詢、高級查詢、常用函式、索引、視圖等內容。通過本篇的學習,讀者可以學到Oralce資料庫最基本的數據表的查詢,並掌握最佳化查詢的各種方式。
第3篇PL/SQL編程篇(第12~18章)
本篇主要內容包括:Oracle編程基礎、游標、存儲過程、函式、觸發器、序列、事務和鎖等技術。通過本篇的學習,讀者可以掌握Oracle資料庫中各種常見的資料庫高級編程技術。
第4篇Oracle維護篇(第19~22章)
本篇主要內容包括:表空間管理、資料庫安全管理、備份與恢復、控制檔案和日誌檔案等。通過本篇的學習,讀者可以掌握有關Oracle資料庫表空間管理以及資料庫的備份和恢復等有關資料庫維護的核心技術及套用。
本書讀者對象
? Oracle資料庫初學者;
? 想全面學習Oracle資料庫開發技術的人員;
? Oracle資料庫專業開發人員;
? 利用Oracle資料庫開發的工程技術人員;
? 使用各種語言的軟體程式設計師;
? 社會培訓班學員;
致謝
本書主要由劉麗霞(武警工程學院)編寫。由於時間匆忙,編寫過程中難免有疏漏和不妥之處,盡請批評、指正。
編 者