商品簡介
名人/編輯推薦
目次
書摘/試閱
商品簡介
《21天學通Oracle(第2版)》內容簡介:Oracle是目前全球應用最廣泛、功能最強大的關系型數據庫。《21天學通Oracle(第2版)》結合大量實例,詳細地講述了Oracle數據庫各方面的知識。全書內容包括Oracle安裝配置、Oracle常用開發工具、SQL Plus、數據表、視圖、約束、函數與存儲過程、觸發器、序列、索引、用戶與角色、內置函數、控制語句、SQL查詢及更新語句、并發與鎖定、正則表達式、與編程語言結合使用。為了便于讀者學習與把握,在每章都使用了單獨的小節來展示實例,并給出習題和答案。
《21天學通Oracle(第2版)》光盤附帶書中所涉及的源文件和數據庫腳本。同時,光盤還附帶配套全程視頻,以便于讀者更好地掌握《21天學通Oracle(第2版)》內容。
《21天學通Oracle(第2版)》光盤附帶書中所涉及的源文件和數據庫腳本。同時,光盤還附帶配套全程視頻,以便于讀者更好地掌握《21天學通Oracle(第2版)》內容。
名人/編輯推薦
《21天學通Oracle(第2版)》以任務驅動方式講解,用實例引導讀者學習、只需21天,便可輕松掌握Oracle數據庫、基礎知識-核心技術-典型實例-綜合練習-項目案例、313個典型實例、2個項目案例、70個練習題、一線開發人員全程貼心講解,上手毫不費力、1 4小時多媒體語音視頻教學、《21天學通Oracle(第2版)》源代碼+《21天學通Oracle(第2版)》電子教案( PPT)。
目次
第一篇 Oracle管理配置
第1章 Oracle安裝配置(教學視頻:10分鐘)23
1.1 Oracle簡介23
1.1.1 數據庫術語23
1.1.2 主流數據庫簡介24
1.1.3 Oracle數據庫的特點24
1.2 安裝Oracle數據庫25
1.2.1 Oracle數據庫的版本變遷及安裝環境25
1.2.2 安裝過程26
1.2.3 安裝中需要注意的問題27
1.3 本章小結28
1.4 常見面試題28
1.5 習題28
第2章 Oracle常用工具(教學視頻:7分鐘)29
2.1 Net Configuration Assistant(網絡配置助手)29
2.1.1 監聽程序配置29
2.1.2 命名方法配置31
2.1.3 本地Net服務名配置32
2.2 Net Manager(網絡管理員)34
2.3 本章實例36
2.4 本章小結38
2.5 常見面試題38
2.6 習題38
第3章 SQL Plus和PL/SQL(教學視頻:11分鐘)39
3.1 SQL Plus與PL/SQL簡介39
3.2 使用SQL Plus40
3.2.1 登錄SQL Plus40
3.2.2 SQL Plus輸出結果的格式化41
3.2.3 SQL Plus小結46
3.3 PL/SQL46
3.3.1 PL/SQL常用開發工具46
3.3.2 開發一個簡單的PL/SQL程序48
3.4 本章實例49
3.5 本章小結50
3.6 常見面試題50
3.7 習題50
第二篇 Oracle數據庫對象
第4章 Oracle數據庫(教學視頻:15分鐘)51
4.1 創建Oracle數據庫51
4.2 Oracle數據庫的相關術語52
4.2.1 數據庫53
4.2.2 數據庫實例和SID53
4.2.3 ORACLE_SID54
4.3 Oracle數據庫的備份與恢復55
4.3.1 邏輯備份/恢復(導出/導入)55
4.3.2 物理備份/恢復56
4.3.3 利用PL/SQL Developer備份數據庫60
4.4 本章實例61
4.5 本章小結61
4.6 常見面試題62
4.7 習題62
第5章 Oracle數據表對象(教學視頻:42分鐘)63
5.1 Oracle表空間63
5.1.1 Oracle表空間簡介63
5.1.2 創建Oracle表空間64
5.1.3 查看表空間66
5.1.4 修改數據庫默認表空間67
5.1.5 修改表空間名稱68
5.1.6 刪除表空間69
5.2 創建Oracle數據表70
5.2.1 利用工具創建數據表70
5.2.2 利用工具查看數據表71
5.2.3 利用命令創建數據表72
5.2.4 利用命令查看表結構72
5.3 修改Oracle數據表結構73
5.3.1 利用工具修改數據表結構73
5.3.2 利用命令修改數據表結構74
5.4 刪除數據表75
5.4.1 利用工具刪除數據表76
5.4.2 利用SQL語句刪除數據表76
5.5 備份/恢復數據表76
5.5.1 利用工具備份/恢復數據表77
5.5.2 利用命令備份/恢復數據表82
5.6 臨時表83
5.6.1 臨時表簡介83
5.6.2 會話級臨時表84
5.6.3 事務級臨時表85
5.6.4 查看臨時表在數據庫中的信息86
5.6.5 臨時表的應用場景86
5.7 特殊的表dual87
5.7.1 分析dual表87
5.7.2 dual表的應用場景87
5.7.3 修改dual表對查詢結果的影響88
5.8 本章實例89
5.9 本章小結90
5.10 常見面試題90
5.11 習題90
第6章 約束(教學視頻:43分鐘)91
6.1 主鍵約束91
6.1.1 主鍵簡介91
6.1.2 創建主鍵約束92
6.1.3 修改表的主鍵約束94
6.1.4 主鍵應用場景96
6.2 外鍵約束97
6.2.1 外鍵簡介97
6.2.2 創建外鍵約束97
6.2.3 級聯更新與級聯刪除100
6.2.4 修改外鍵屬性102
6.2.5 外鍵使用104
6.3 唯一性約束105
6.3.1 唯一性約束簡介105
6.3.2 創建唯一性約束105
6.3.3 修改唯一性約束107
6.3.4 唯一性約束的使用108
6.4 檢查約束108
6.4.1 檢查約束簡介108
6.4.2 創建檢查約束108
6.4.3 修改檢查約束110
6.4.4 檢查約束的使用111
6.5 默認值約束111
6.5.1 默認值約束簡介111
6.5.2 創建默認值約束112
6.5.3 修改默認值約束113
6.6 本章實例115
6.7 本章小結115
6.8 常見面試題116
6.9 習題116
第7章 視圖(教學視頻:50分鐘)117
7.1 關系視圖117
7.1.1 建立關系視圖117
7.1.2 修改/刪除視圖118
7.1.3 聯接視圖120
7.1.4 編譯視圖122
7.1.5 使用force選項強制創建視圖124
7.1.6 利用視圖更新數據表125
7.1.7 with check option選項126
7.1.8 關系視圖小結128
7.2 內嵌視圖128
7.2.1 內嵌視圖簡介128
7.2.2 內嵌視圖的使用128
7.2.3 內嵌視圖小結130
7.3 對象視圖131
7.3.1 對象視圖簡介131
7.3.2 對象視圖的創建與使用131
7.4 物化視圖133
7.4.1 物化視圖簡介133
7.4.2 物化視圖的使用133
7.4.3 物化視圖的數據加載135
7.4.4 物化視圖的數據更新135
7.4.5 查詢重寫136
7.5 本章實例136
7.6 本章小結137
7.7 常見面試題137
7.8 習題137
第8章 函數與存儲過程(教學視頻:48分鐘)138
8.1 函數138
8.1.1 函數簡介138
8.1.2 創建函數138
8.1.3 函數中的括號140
8.1.4 函數的參數141
8.1.5 函數的確定性142
8.1.6 典型函數舉例143
8.2 存儲過程144
8.2.1 存儲過程簡介144
8.2.2 創建存儲過程144
8.2.3 存儲過程的參數——IN參數146
8.2.4 存儲過程的參數——OUT參數147
8.2.5 存儲過程的參數——IN OUT參數149
8.2.6 存儲過程的參數——參數順序149
8.2.7 存儲過程的參數——參數的默認值152
8.2.8 存儲過程的參數——參數順序總結153
8.3 程序包153
8.3.1 規范153
8.3.2 主體154
8.3.3 調用程序包中的函數/存儲過程157
8.3.4 程序包中的變量158
8.4 本章實例159
8.5 本章小結161
8.6 常見面試題161
8.7 習題161
第9章 游標(教學視頻:36分鐘)162
9.1 游標簡介162
9.2 顯式游標162
9.2.1 聲明游標162
9.2.2 使用游標164
9.3 隱式游標166
9.3.1 sql隱式游標166
9.3.2 cursor for游標168
9.3.3 隱式游標和顯式游標169
9.4 游標屬性169
9.5 動態游標171
9.5.1 強類型動態游標171
9.5.2 弱類型動態游標173
9.5.3 比較兩種動態游標176
9.6 本章實例176
9.7 本章小結176
9.8 常見面試題177
9.9 習題177
第10章 觸發器(教學視頻:58分鐘)178
10.1 觸發器簡介178
10.2 創建和使用觸發器178
10.2.1 創建觸發器179
10.2.2 觸發器的作用級別180
10.2.3 在多個事件上定義觸發器181
10.2.4 為同一事件定義多個觸發器182
10.2.5 觸發器限制183
10.3 語句觸發器184
10.3.1 創建語句觸發器184
10.3.2 觸發器謂詞186
10.3.3 觸發時機187
10.3.4 觸發器級聯188
10.4 行觸發器189
10.4.1 行觸發器與引用189
10.4.2 觸發時機與引用191
10.4.3 觸發時機與瞬態193
10.5 instead of觸發器195
10.5.1 創建和使用instead f觸發器195
10.5.2 instead of觸發器與引用198
10.6 系統事件與用戶事件觸發器198
10.6.1 系統事件觸發器198
10.6.2 用戶事件觸發器200
10.7 啟用和禁用觸發器201
10.7.1 啟用和禁用觸發器的場景201
10.7.2 禁用觸發器202
10.7.3 啟用觸發器203
10.7.4 觸發器信息203
10.8 本章實例204
10.9 本章小結205
10.10 常見面試題205
10.11 習題206
第11章 序列(教學視頻:28分鐘)207
11.1 創建和使用序列207
11.1.1 創建序列207
11.1.2 使用序列208
11.1.3 序列初始值start with209
11.2 修改序列屬性210
11.2.1 修改minvalue和maxvalue210
11.2.2 修改increment by211
11.2.3 修改cycle212
11.2.4 修改cache213
11.3 本章實例214
11.4 本章小結214
11.5 常見面試題215
11.6 習題215
第12章 用戶角色與權限控制(教學視頻:45分鐘)216
12.1 用戶216
12.1.1 Oracle中的用戶216
12.1.2 創建新用戶217
12.1.3 用戶與模式(Schema)217
12.1.4 系統用戶sys和system218
12.2 權限219
12.2.1 系統權限219
12.2.2 對象權限222
12.3 角色226
12.3.1 創建和使用角色226
12.3.2 繼承角色227
12.3.3 禁用和啟用角色229
12.4 本章實例230
12.5 本章小結231
12.6 常見面試題231
12.7 習題231
第三篇 Oracle中的SQL
第13章 Oracle數據類型(教學視頻:21分鐘)232
13.1 Oracle中的數據類型232
13.1.1 字符型232
13.1.2 數值型233
13.1.3 日期時間型233
13.1.4 lob類型234
13.2 Oracle中的特殊數據234
13.2.1 rowid234
13.2.2 null與空字符串235
13.2.3 單引號與雙引號236
13.3 本章實例238
13.4 本章小結239
13.5 常見面試題240
13.6 習題240
第14章 Oracle中的函數與表達式(教學視頻:111分鐘)241
14.1 Oracle中的字符串函數241
14.1.1 lpad()函數241
14.1.2 rpad()函數242
14.1.3 lower()函數——返回小寫字符串242
14.1.4 upper()函數——返回大寫字符串242
14.1.5 initcap ()函數——單詞首字母大寫243
14.1.6 length()函數——返回字符串長度243
14.1.7 substr()函數——截取字符串244
14.1.8 instr()函數——獲得字符串出現的位置244
14.1.9 ltrim()函數——刪除字符串首部空格245
14.1.10 rtrim()函數——刪除字符串尾部空格245
14.1.11 trim()函數——刪除字符串首尾空格245
14.1.12 to_char()函數——將其他類型轉換為字符類型246
14.1.13 chr()函數——將ascii碼轉換為字符串248
14.1.14 translate()函數——替換字符248
14.2 Oracle中的數學函數249
14.2.1 abs ()函數——返回數字的絕對值249
14.2.2 round ()函數——返回數字的“四舍五入”值249
14.2.3 ceil()函數——向上取整250
14.2.4 floor()函數——向下取整250
14.2.5 mod ()函數——取模操作251
14.2.6 sign()函數——返回數字的正負性251
14.2.7 sqrt()函數——返回數字的平方根251
14.2.8 power()函數——乘方運算252
14.2.9 trunc()函數——截取數字252
14.2.10 vsize()函數——返回數據的存儲空間252
14.2.11 to_number()函數——將字符串轉換為數值類型253
14.3 Oracle中的日期函數253
14.3.1 to_date()函數——將字符串轉換為日期型253
14.3.2 add_months()函數——為日期加上特定月份254
14.3.3 last_day()函數——返回特定日期所在月的最後一天254
14.3.4 months_between ()函數——返回兩個日期所差的月數254
14.3.5 current_date()函數——返回當前會話時區的當前日期255
14.3.6 current_timestamp()函數——返回當前會話時區的 當前時間戳255
14.3.7 extract()函數——返回日期的某個域255
14.4 Oracle中的聚合函數256
14.4.1 max()函數——求最大值257
14.4.2 min()函數——求最小值258
14.4.3 avg()函數——求平均值258
14.4.4 sum()函數——求和258
14.4.5 count()函數——獲得記錄數259
14.5 Oracle中的其他函數260
14.5.1 decode()函數——多值判斷260
14.5.2 nvl()函數——處理空值261
14.5.3 cast()函數——強制轉換數據類型262
14.6 Oracle中的運算表達式264
14.6.1 數學運算264
14.6.2 邏輯運算265
14.6.3 位運算266
14.7 Oracle中的特殊判式266
14.7.1 between——范圍測試267
14.7.2 in——集合成員測試268
14.7.3 like——模式匹配268
14.7.4 is null——空值判斷269
14.7.5 exists——存在性判斷269
14.7.6 all,some,any——數量判斷269
14.8 Oracle高級函數——分析函數與窗口函數270
14.8.1 排名271
14.8.2 分區窗口272
14.8.3 窗口子句274
14.8.4 主要的分析函數277
14.9 本章實例281
14.10 本章小結281
14.11 常見面試題282
14.12 習題282
第15章 Oracle中的控制語句(教學視頻:16分鐘)283
15.1 Oracle中的條件語句283
15.1.1 利用if else進行條件判斷283
15.1.2 利用case when進行分支判斷284
15.2 Oracle中的循環語句286
15.2.1 無條件循環286
15.2.2 while循環287
15.2.3 for循環288
15.3 本章實例289
15.4 本章小結290
15.5 常見面試題290
15.6 習題290
第16章 SQL查詢(教學視頻:55分鐘)291
16.1 基本查詢291
16.1.1 select語句查詢執行步驟291
16.1.2 where子句293
16.1.3 利用distinct獲得唯一性記錄294
16.1.4 order by子句294
16.1.5 group by子句295
16.1.6 having子句298
16.2 子查詢299
16.2.1 理解子查詢299
16.2.2 子查詢使用實例299
16.3 聯合語句301
16.3.1 union查詢301
16.3.2 union all查詢302
16.3.3 intersect查詢304
16.3.4 minus查詢304
16.4 聯接(連接)305
16.4.1 自然聯接305
16.4.2 內聯接306
16.4.3 外聯接——左聯接307
16.4.4 外聯接——右聯接309
16.4.5 外聯接——完全聯接311
16.5 層次化查詢313
16.5.1 利用connect by進行層次化查詢314
16.5.2 connect by的使用場景315
16.5.3 sys_connect_by_path()函數的使用316
16.6 本章實例317
16.7 本章小結319
16.8 常見面試題319
16.9 習題320
第17章 SQL更新數據(教學視頻:34分鐘)321
17.1 插入數據321
17.1.1 insert語句向表中插入數據321
17.1.2 利用子查詢批量插入數據322
17.1.3 insert語句與默認值323
17.1.4 insert語句與唯一性約束323
17.1.5 insert語句與外鍵約束323
17.2 修改數據324
17.2.1 利用update修改單列的值324
17.2.2 利用update修改多列的值325
17.2.3 利用where子句限制修改范圍325
17.3 刪除數據326
17.3.1 利用delete命令刪除數據326
17.3.2 利用truncate命令刪除數據327
17.4 數據提交與回滾327
17.4.1 回滾動作327
17.4.2 提交動作328
17.4.3 PL/SQL Developer中的回滾與提交329
17.5 本章實例331
17.6 本章小結333
17.7 常見面試題333
17.8 習題333
第四篇 Oracle編程高級應用
第18章 數據庫速度優化與數據完整性(教學視頻:32分鐘)334
18.1 利用索引加快數據引用334
18.1.1 索引的原理334
18.1.2 利用索引提高數據庫性能335
18.1.3 索引對DML的影響337
18.1.4 索引的使用時機338
18.2 利用約束保持數據完整性339
18.2.1 數據庫完整性的重要性339
18.2.2 保持數據庫完整性的重要方面339
18.2.3 利用約束保持數據完整性339
18.3 本章實例340
18.3.1 使用比較運算符不當340
18.3.2 函數的使用341
18.3.3 聯合索引341
18.4 本章小結342
18.5 常見面試題342
18.6 習題342
第19章 數據一致性與事務管理(教學視頻:46分鐘)343
19.1 什么是數據一致性和事務343
19.1.1 數據一致性343
19.1.2 事務343
19.2 Oracle中的事務處理344
19.2.1 commit命令344
19.2.2 rollback命令345
19.2.3 savepoint和rollback to savepoint命令345
19.2.4 事務的屬性和隔離級別347
19.3 事務處理原則351
19.3.1 原子性351
19.3.2 一致性352
19.3.3 隔離性354
19.3.4 持久性355
19.4 本章實例355
19.5 本章小結357
19.6 常見面試題357
19.7 習題358
第20章 并發控制(教學視頻:35分鐘)359
20.1 并發與鎖定359
20.2 數據鎖定362
20.2.1 悲觀鎖定362
20.2.2 樂觀鎖定364
20.2.3 悲觀鎖定與樂觀鎖定的比較365
20.2.4 鎖定轉換366
20.3 并發控制的其他方法366
20.4 本章實例367
20.5 本章小結371
20.6 常見面試題371
20.7 習題371
第21章 Oracle中的正則表達式(教學視頻:29分鐘)372
21.1 正則表達式簡介372
22.1.1 正則表達式與通配符372
22.1.2 正則表達式與編程語言372
21.2 正則表達式基礎知識373
21.2.1 元字符和普通字符373
21.2.2 量詞373
21.2.3 字符轉義與字符類373
21.2.4 字符組的使用374
21.2.5 正則表達式分支374
21.2.6 Oracle中正則表達式的特殊性374
21.3 正則表達式在Oracle中的應用375
21.3.1 regexp_like()的使用375
21.3.2 regexp_instr()的使用375
21.3.3 regexp_substr()的使用376
21.3.4 regexp_ replace ()的使用376
21.4 本章實例377
21.5 本章小結377
21.6 常見面試題378
21.7 習題378
第五篇 Oracle與編程語言綜合使用實例
第22章 Oracle在Java開發中的應用(教學視頻:38分鐘)379
22.1 通過JDBC使用Oracle379
22.1.1 JDBC簡介379
22.1.2 準備工作379
22.1.3 JDBC連接Oracle380
22.1.4 利用JDBC查詢數據382
22.1.5 利用JDBC更新數據383
22.1.6 總結JDBC操作數據庫384
22.2 通過Hibernate操作Oracle數據庫385
22.2.1 準備工作385
22.2.2 配置Hibernate385
22.2.3 利用Hibernate查詢數據389
22.2.4 利用Hibernate更新數據390
22.2.5 利用Hibernate插入數據391
22.3 本章小結393
22.4 常見面試題393
22.5 習題393
第23章 Oracle在C#開發中的應用(教學視頻:12分鐘)394
23.1 在C#中連接Oracle數據庫394
23.2 在C#中操作Oracle數據庫395
23.3 在C#中使用Oracle數據庫事務397
23.4 本章小結400
23.5 常見面試題400
23.6 習題400
第1章 Oracle安裝配置(教學視頻:10分鐘)23
1.1 Oracle簡介23
1.1.1 數據庫術語23
1.1.2 主流數據庫簡介24
1.1.3 Oracle數據庫的特點24
1.2 安裝Oracle數據庫25
1.2.1 Oracle數據庫的版本變遷及安裝環境25
1.2.2 安裝過程26
1.2.3 安裝中需要注意的問題27
1.3 本章小結28
1.4 常見面試題28
1.5 習題28
第2章 Oracle常用工具(教學視頻:7分鐘)29
2.1 Net Configuration Assistant(網絡配置助手)29
2.1.1 監聽程序配置29
2.1.2 命名方法配置31
2.1.3 本地Net服務名配置32
2.2 Net Manager(網絡管理員)34
2.3 本章實例36
2.4 本章小結38
2.5 常見面試題38
2.6 習題38
第3章 SQL Plus和PL/SQL(教學視頻:11分鐘)39
3.1 SQL Plus與PL/SQL簡介39
3.2 使用SQL Plus40
3.2.1 登錄SQL Plus40
3.2.2 SQL Plus輸出結果的格式化41
3.2.3 SQL Plus小結46
3.3 PL/SQL46
3.3.1 PL/SQL常用開發工具46
3.3.2 開發一個簡單的PL/SQL程序48
3.4 本章實例49
3.5 本章小結50
3.6 常見面試題50
3.7 習題50
第二篇 Oracle數據庫對象
第4章 Oracle數據庫(教學視頻:15分鐘)51
4.1 創建Oracle數據庫51
4.2 Oracle數據庫的相關術語52
4.2.1 數據庫53
4.2.2 數據庫實例和SID53
4.2.3 ORACLE_SID54
4.3 Oracle數據庫的備份與恢復55
4.3.1 邏輯備份/恢復(導出/導入)55
4.3.2 物理備份/恢復56
4.3.3 利用PL/SQL Developer備份數據庫60
4.4 本章實例61
4.5 本章小結61
4.6 常見面試題62
4.7 習題62
第5章 Oracle數據表對象(教學視頻:42分鐘)63
5.1 Oracle表空間63
5.1.1 Oracle表空間簡介63
5.1.2 創建Oracle表空間64
5.1.3 查看表空間66
5.1.4 修改數據庫默認表空間67
5.1.5 修改表空間名稱68
5.1.6 刪除表空間69
5.2 創建Oracle數據表70
5.2.1 利用工具創建數據表70
5.2.2 利用工具查看數據表71
5.2.3 利用命令創建數據表72
5.2.4 利用命令查看表結構72
5.3 修改Oracle數據表結構73
5.3.1 利用工具修改數據表結構73
5.3.2 利用命令修改數據表結構74
5.4 刪除數據表75
5.4.1 利用工具刪除數據表76
5.4.2 利用SQL語句刪除數據表76
5.5 備份/恢復數據表76
5.5.1 利用工具備份/恢復數據表77
5.5.2 利用命令備份/恢復數據表82
5.6 臨時表83
5.6.1 臨時表簡介83
5.6.2 會話級臨時表84
5.6.3 事務級臨時表85
5.6.4 查看臨時表在數據庫中的信息86
5.6.5 臨時表的應用場景86
5.7 特殊的表dual87
5.7.1 分析dual表87
5.7.2 dual表的應用場景87
5.7.3 修改dual表對查詢結果的影響88
5.8 本章實例89
5.9 本章小結90
5.10 常見面試題90
5.11 習題90
第6章 約束(教學視頻:43分鐘)91
6.1 主鍵約束91
6.1.1 主鍵簡介91
6.1.2 創建主鍵約束92
6.1.3 修改表的主鍵約束94
6.1.4 主鍵應用場景96
6.2 外鍵約束97
6.2.1 外鍵簡介97
6.2.2 創建外鍵約束97
6.2.3 級聯更新與級聯刪除100
6.2.4 修改外鍵屬性102
6.2.5 外鍵使用104
6.3 唯一性約束105
6.3.1 唯一性約束簡介105
6.3.2 創建唯一性約束105
6.3.3 修改唯一性約束107
6.3.4 唯一性約束的使用108
6.4 檢查約束108
6.4.1 檢查約束簡介108
6.4.2 創建檢查約束108
6.4.3 修改檢查約束110
6.4.4 檢查約束的使用111
6.5 默認值約束111
6.5.1 默認值約束簡介111
6.5.2 創建默認值約束112
6.5.3 修改默認值約束113
6.6 本章實例115
6.7 本章小結115
6.8 常見面試題116
6.9 習題116
第7章 視圖(教學視頻:50分鐘)117
7.1 關系視圖117
7.1.1 建立關系視圖117
7.1.2 修改/刪除視圖118
7.1.3 聯接視圖120
7.1.4 編譯視圖122
7.1.5 使用force選項強制創建視圖124
7.1.6 利用視圖更新數據表125
7.1.7 with check option選項126
7.1.8 關系視圖小結128
7.2 內嵌視圖128
7.2.1 內嵌視圖簡介128
7.2.2 內嵌視圖的使用128
7.2.3 內嵌視圖小結130
7.3 對象視圖131
7.3.1 對象視圖簡介131
7.3.2 對象視圖的創建與使用131
7.4 物化視圖133
7.4.1 物化視圖簡介133
7.4.2 物化視圖的使用133
7.4.3 物化視圖的數據加載135
7.4.4 物化視圖的數據更新135
7.4.5 查詢重寫136
7.5 本章實例136
7.6 本章小結137
7.7 常見面試題137
7.8 習題137
第8章 函數與存儲過程(教學視頻:48分鐘)138
8.1 函數138
8.1.1 函數簡介138
8.1.2 創建函數138
8.1.3 函數中的括號140
8.1.4 函數的參數141
8.1.5 函數的確定性142
8.1.6 典型函數舉例143
8.2 存儲過程144
8.2.1 存儲過程簡介144
8.2.2 創建存儲過程144
8.2.3 存儲過程的參數——IN參數146
8.2.4 存儲過程的參數——OUT參數147
8.2.5 存儲過程的參數——IN OUT參數149
8.2.6 存儲過程的參數——參數順序149
8.2.7 存儲過程的參數——參數的默認值152
8.2.8 存儲過程的參數——參數順序總結153
8.3 程序包153
8.3.1 規范153
8.3.2 主體154
8.3.3 調用程序包中的函數/存儲過程157
8.3.4 程序包中的變量158
8.4 本章實例159
8.5 本章小結161
8.6 常見面試題161
8.7 習題161
第9章 游標(教學視頻:36分鐘)162
9.1 游標簡介162
9.2 顯式游標162
9.2.1 聲明游標162
9.2.2 使用游標164
9.3 隱式游標166
9.3.1 sql隱式游標166
9.3.2 cursor for游標168
9.3.3 隱式游標和顯式游標169
9.4 游標屬性169
9.5 動態游標171
9.5.1 強類型動態游標171
9.5.2 弱類型動態游標173
9.5.3 比較兩種動態游標176
9.6 本章實例176
9.7 本章小結176
9.8 常見面試題177
9.9 習題177
第10章 觸發器(教學視頻:58分鐘)178
10.1 觸發器簡介178
10.2 創建和使用觸發器178
10.2.1 創建觸發器179
10.2.2 觸發器的作用級別180
10.2.3 在多個事件上定義觸發器181
10.2.4 為同一事件定義多個觸發器182
10.2.5 觸發器限制183
10.3 語句觸發器184
10.3.1 創建語句觸發器184
10.3.2 觸發器謂詞186
10.3.3 觸發時機187
10.3.4 觸發器級聯188
10.4 行觸發器189
10.4.1 行觸發器與引用189
10.4.2 觸發時機與引用191
10.4.3 觸發時機與瞬態193
10.5 instead of觸發器195
10.5.1 創建和使用instead f觸發器195
10.5.2 instead of觸發器與引用198
10.6 系統事件與用戶事件觸發器198
10.6.1 系統事件觸發器198
10.6.2 用戶事件觸發器200
10.7 啟用和禁用觸發器201
10.7.1 啟用和禁用觸發器的場景201
10.7.2 禁用觸發器202
10.7.3 啟用觸發器203
10.7.4 觸發器信息203
10.8 本章實例204
10.9 本章小結205
10.10 常見面試題205
10.11 習題206
第11章 序列(教學視頻:28分鐘)207
11.1 創建和使用序列207
11.1.1 創建序列207
11.1.2 使用序列208
11.1.3 序列初始值start with209
11.2 修改序列屬性210
11.2.1 修改minvalue和maxvalue210
11.2.2 修改increment by211
11.2.3 修改cycle212
11.2.4 修改cache213
11.3 本章實例214
11.4 本章小結214
11.5 常見面試題215
11.6 習題215
第12章 用戶角色與權限控制(教學視頻:45分鐘)216
12.1 用戶216
12.1.1 Oracle中的用戶216
12.1.2 創建新用戶217
12.1.3 用戶與模式(Schema)217
12.1.4 系統用戶sys和system218
12.2 權限219
12.2.1 系統權限219
12.2.2 對象權限222
12.3 角色226
12.3.1 創建和使用角色226
12.3.2 繼承角色227
12.3.3 禁用和啟用角色229
12.4 本章實例230
12.5 本章小結231
12.6 常見面試題231
12.7 習題231
第三篇 Oracle中的SQL
第13章 Oracle數據類型(教學視頻:21分鐘)232
13.1 Oracle中的數據類型232
13.1.1 字符型232
13.1.2 數值型233
13.1.3 日期時間型233
13.1.4 lob類型234
13.2 Oracle中的特殊數據234
13.2.1 rowid234
13.2.2 null與空字符串235
13.2.3 單引號與雙引號236
13.3 本章實例238
13.4 本章小結239
13.5 常見面試題240
13.6 習題240
第14章 Oracle中的函數與表達式(教學視頻:111分鐘)241
14.1 Oracle中的字符串函數241
14.1.1 lpad()函數241
14.1.2 rpad()函數242
14.1.3 lower()函數——返回小寫字符串242
14.1.4 upper()函數——返回大寫字符串242
14.1.5 initcap ()函數——單詞首字母大寫243
14.1.6 length()函數——返回字符串長度243
14.1.7 substr()函數——截取字符串244
14.1.8 instr()函數——獲得字符串出現的位置244
14.1.9 ltrim()函數——刪除字符串首部空格245
14.1.10 rtrim()函數——刪除字符串尾部空格245
14.1.11 trim()函數——刪除字符串首尾空格245
14.1.12 to_char()函數——將其他類型轉換為字符類型246
14.1.13 chr()函數——將ascii碼轉換為字符串248
14.1.14 translate()函數——替換字符248
14.2 Oracle中的數學函數249
14.2.1 abs ()函數——返回數字的絕對值249
14.2.2 round ()函數——返回數字的“四舍五入”值249
14.2.3 ceil()函數——向上取整250
14.2.4 floor()函數——向下取整250
14.2.5 mod ()函數——取模操作251
14.2.6 sign()函數——返回數字的正負性251
14.2.7 sqrt()函數——返回數字的平方根251
14.2.8 power()函數——乘方運算252
14.2.9 trunc()函數——截取數字252
14.2.10 vsize()函數——返回數據的存儲空間252
14.2.11 to_number()函數——將字符串轉換為數值類型253
14.3 Oracle中的日期函數253
14.3.1 to_date()函數——將字符串轉換為日期型253
14.3.2 add_months()函數——為日期加上特定月份254
14.3.3 last_day()函數——返回特定日期所在月的最後一天254
14.3.4 months_between ()函數——返回兩個日期所差的月數254
14.3.5 current_date()函數——返回當前會話時區的當前日期255
14.3.6 current_timestamp()函數——返回當前會話時區的 當前時間戳255
14.3.7 extract()函數——返回日期的某個域255
14.4 Oracle中的聚合函數256
14.4.1 max()函數——求最大值257
14.4.2 min()函數——求最小值258
14.4.3 avg()函數——求平均值258
14.4.4 sum()函數——求和258
14.4.5 count()函數——獲得記錄數259
14.5 Oracle中的其他函數260
14.5.1 decode()函數——多值判斷260
14.5.2 nvl()函數——處理空值261
14.5.3 cast()函數——強制轉換數據類型262
14.6 Oracle中的運算表達式264
14.6.1 數學運算264
14.6.2 邏輯運算265
14.6.3 位運算266
14.7 Oracle中的特殊判式266
14.7.1 between——范圍測試267
14.7.2 in——集合成員測試268
14.7.3 like——模式匹配268
14.7.4 is null——空值判斷269
14.7.5 exists——存在性判斷269
14.7.6 all,some,any——數量判斷269
14.8 Oracle高級函數——分析函數與窗口函數270
14.8.1 排名271
14.8.2 分區窗口272
14.8.3 窗口子句274
14.8.4 主要的分析函數277
14.9 本章實例281
14.10 本章小結281
14.11 常見面試題282
14.12 習題282
第15章 Oracle中的控制語句(教學視頻:16分鐘)283
15.1 Oracle中的條件語句283
15.1.1 利用if else進行條件判斷283
15.1.2 利用case when進行分支判斷284
15.2 Oracle中的循環語句286
15.2.1 無條件循環286
15.2.2 while循環287
15.2.3 for循環288
15.3 本章實例289
15.4 本章小結290
15.5 常見面試題290
15.6 習題290
第16章 SQL查詢(教學視頻:55分鐘)291
16.1 基本查詢291
16.1.1 select語句查詢執行步驟291
16.1.2 where子句293
16.1.3 利用distinct獲得唯一性記錄294
16.1.4 order by子句294
16.1.5 group by子句295
16.1.6 having子句298
16.2 子查詢299
16.2.1 理解子查詢299
16.2.2 子查詢使用實例299
16.3 聯合語句301
16.3.1 union查詢301
16.3.2 union all查詢302
16.3.3 intersect查詢304
16.3.4 minus查詢304
16.4 聯接(連接)305
16.4.1 自然聯接305
16.4.2 內聯接306
16.4.3 外聯接——左聯接307
16.4.4 外聯接——右聯接309
16.4.5 外聯接——完全聯接311
16.5 層次化查詢313
16.5.1 利用connect by進行層次化查詢314
16.5.2 connect by的使用場景315
16.5.3 sys_connect_by_path()函數的使用316
16.6 本章實例317
16.7 本章小結319
16.8 常見面試題319
16.9 習題320
第17章 SQL更新數據(教學視頻:34分鐘)321
17.1 插入數據321
17.1.1 insert語句向表中插入數據321
17.1.2 利用子查詢批量插入數據322
17.1.3 insert語句與默認值323
17.1.4 insert語句與唯一性約束323
17.1.5 insert語句與外鍵約束323
17.2 修改數據324
17.2.1 利用update修改單列的值324
17.2.2 利用update修改多列的值325
17.2.3 利用where子句限制修改范圍325
17.3 刪除數據326
17.3.1 利用delete命令刪除數據326
17.3.2 利用truncate命令刪除數據327
17.4 數據提交與回滾327
17.4.1 回滾動作327
17.4.2 提交動作328
17.4.3 PL/SQL Developer中的回滾與提交329
17.5 本章實例331
17.6 本章小結333
17.7 常見面試題333
17.8 習題333
第四篇 Oracle編程高級應用
第18章 數據庫速度優化與數據完整性(教學視頻:32分鐘)334
18.1 利用索引加快數據引用334
18.1.1 索引的原理334
18.1.2 利用索引提高數據庫性能335
18.1.3 索引對DML的影響337
18.1.4 索引的使用時機338
18.2 利用約束保持數據完整性339
18.2.1 數據庫完整性的重要性339
18.2.2 保持數據庫完整性的重要方面339
18.2.3 利用約束保持數據完整性339
18.3 本章實例340
18.3.1 使用比較運算符不當340
18.3.2 函數的使用341
18.3.3 聯合索引341
18.4 本章小結342
18.5 常見面試題342
18.6 習題342
第19章 數據一致性與事務管理(教學視頻:46分鐘)343
19.1 什么是數據一致性和事務343
19.1.1 數據一致性343
19.1.2 事務343
19.2 Oracle中的事務處理344
19.2.1 commit命令344
19.2.2 rollback命令345
19.2.3 savepoint和rollback to savepoint命令345
19.2.4 事務的屬性和隔離級別347
19.3 事務處理原則351
19.3.1 原子性351
19.3.2 一致性352
19.3.3 隔離性354
19.3.4 持久性355
19.4 本章實例355
19.5 本章小結357
19.6 常見面試題357
19.7 習題358
第20章 并發控制(教學視頻:35分鐘)359
20.1 并發與鎖定359
20.2 數據鎖定362
20.2.1 悲觀鎖定362
20.2.2 樂觀鎖定364
20.2.3 悲觀鎖定與樂觀鎖定的比較365
20.2.4 鎖定轉換366
20.3 并發控制的其他方法366
20.4 本章實例367
20.5 本章小結371
20.6 常見面試題371
20.7 習題371
第21章 Oracle中的正則表達式(教學視頻:29分鐘)372
21.1 正則表達式簡介372
22.1.1 正則表達式與通配符372
22.1.2 正則表達式與編程語言372
21.2 正則表達式基礎知識373
21.2.1 元字符和普通字符373
21.2.2 量詞373
21.2.3 字符轉義與字符類373
21.2.4 字符組的使用374
21.2.5 正則表達式分支374
21.2.6 Oracle中正則表達式的特殊性374
21.3 正則表達式在Oracle中的應用375
21.3.1 regexp_like()的使用375
21.3.2 regexp_instr()的使用375
21.3.3 regexp_substr()的使用376
21.3.4 regexp_ replace ()的使用376
21.4 本章實例377
21.5 本章小結377
21.6 常見面試題378
21.7 習題378
第五篇 Oracle與編程語言綜合使用實例
第22章 Oracle在Java開發中的應用(教學視頻:38分鐘)379
22.1 通過JDBC使用Oracle379
22.1.1 JDBC簡介379
22.1.2 準備工作379
22.1.3 JDBC連接Oracle380
22.1.4 利用JDBC查詢數據382
22.1.5 利用JDBC更新數據383
22.1.6 總結JDBC操作數據庫384
22.2 通過Hibernate操作Oracle數據庫385
22.2.1 準備工作385
22.2.2 配置Hibernate385
22.2.3 利用Hibernate查詢數據389
22.2.4 利用Hibernate更新數據390
22.2.5 利用Hibernate插入數據391
22.3 本章小結393
22.4 常見面試題393
22.5 習題393
第23章 Oracle在C#開發中的應用(教學視頻:12分鐘)394
23.1 在C#中連接Oracle數據庫394
23.2 在C#中操作Oracle數據庫395
23.3 在C#中使用Oracle數據庫事務397
23.4 本章小結400
23.5 常見面試題400
23.6 習題400
書摘/試閱
4.常見的數據庫對象
數據庫對象是數據庫中用于劃分各種數據和實現各種功能的單元。數據庫用戶往往利用數據庫對象來實現對數據庫的操作。
用戶:用戶是創建在數據庫中的賬號。通過這些賬號來登錄數據庫,并實現對不同使用者權限的控制。
表:表是最常見的數據庫對象。與現實世界中的表具有相同的結構——每個表都由行組成,各行由列組成。例如,在員工表中,每位員工的信息均可看做行,而員工的姓名、年齡則作為列。
·索引:索引是根據指定的數據庫表中的列建立起來的順序,對于每一行數據都會建立快速訪問的路徑,因此,可以大大提高數據訪問的效率。
視圖:視圖可以看做虛擬的表。視圖并不存儲數據,而是作為數據的鏡像。
函數:數據庫中的函數與其他編程語言中的函數類似,都是用來按照規則提供返回值的流程代碼。
存儲過程:數據庫中的存儲過程類似于其他編程語言中的過程。不過,存儲過程還具有自身的特點,例如,具有輸入參數和輸出參數等。觸發器:觸發器的作用類似于監視器。觸發器的本質也是執行特定任務的代碼塊。當數據庫監控到某個事件時,會激活建立在該事件上的觸發器,并執行觸發器代碼。
1.1.2 主流數據庫簡介當前數據庫市場,主流的數據庫包括:Oracle,Sybase、DB2、SQL Server、My SQL。
Oracle:開發商為美國的甲骨文公司(Oracle)。Oracle數據庫是以高級結構化查詢語言( SQL)為基礎的大型關系數據庫,是目前最流行、應用最廣泛的客戶端/服務器(Client/Server)體系結構的數據庫。
Sybase:開發商為Sybase公司。Sybase數據庫性能較高,安全性極高,可運行于UNIX、Windows及Novell Netware環境。該數據庫不但具有優越的性能,而且具備跨平臺能力。
·DB2:開發商為IBM。DB2數據庫支持各種機型及操作系統環境。支持面向對象編程,并有強大的開發和管理工具。
SQLServer:開發商為微軟公司。SQL Server在性能及安全性上不及以上三種數據庫,但是其占用系統資源較少,操作簡單、靈活。MySQL:由原MySQL公司開發。MySQL數據庫使用簡單、操作方便,性能也較高。難能可貴的是,MySQL是開源數據庫,而且完全免費,這也成為其迅速崛起的主要原
因之一。
數據庫對象是數據庫中用于劃分各種數據和實現各種功能的單元。數據庫用戶往往利用數據庫對象來實現對數據庫的操作。
用戶:用戶是創建在數據庫中的賬號。通過這些賬號來登錄數據庫,并實現對不同使用者權限的控制。
表:表是最常見的數據庫對象。與現實世界中的表具有相同的結構——每個表都由行組成,各行由列組成。例如,在員工表中,每位員工的信息均可看做行,而員工的姓名、年齡則作為列。
·索引:索引是根據指定的數據庫表中的列建立起來的順序,對于每一行數據都會建立快速訪問的路徑,因此,可以大大提高數據訪問的效率。
視圖:視圖可以看做虛擬的表。視圖并不存儲數據,而是作為數據的鏡像。
函數:數據庫中的函數與其他編程語言中的函數類似,都是用來按照規則提供返回值的流程代碼。
存儲過程:數據庫中的存儲過程類似于其他編程語言中的過程。不過,存儲過程還具有自身的特點,例如,具有輸入參數和輸出參數等。觸發器:觸發器的作用類似于監視器。觸發器的本質也是執行特定任務的代碼塊。當數據庫監控到某個事件時,會激活建立在該事件上的觸發器,并執行觸發器代碼。
1.1.2 主流數據庫簡介當前數據庫市場,主流的數據庫包括:Oracle,Sybase、DB2、SQL Server、My SQL。
Oracle:開發商為美國的甲骨文公司(Oracle)。Oracle數據庫是以高級結構化查詢語言( SQL)為基礎的大型關系數據庫,是目前最流行、應用最廣泛的客戶端/服務器(Client/Server)體系結構的數據庫。
Sybase:開發商為Sybase公司。Sybase數據庫性能較高,安全性極高,可運行于UNIX、Windows及Novell Netware環境。該數據庫不但具有優越的性能,而且具備跨平臺能力。
·DB2:開發商為IBM。DB2數據庫支持各種機型及操作系統環境。支持面向對象編程,并有強大的開發和管理工具。
SQLServer:開發商為微軟公司。SQL Server在性能及安全性上不及以上三種數據庫,但是其占用系統資源較少,操作簡單、靈活。MySQL:由原MySQL公司開發。MySQL數據庫使用簡單、操作方便,性能也較高。難能可貴的是,MySQL是開源數據庫,而且完全免費,這也成為其迅速崛起的主要原
因之一。
主題書展
更多
主題書展
更多書展購物須知
大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。
特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。
無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

