大數據時代,Oracle 12c為雲計算而改變。《名師講壇——Oracle開發實戰經典》以Oracle
11g、12c版本為基礎,通過豐富的實例、通俗易懂的語言、簡潔明快的圖示、極為詳盡的視頻,講述了數據庫開發的主要內容。全書分為3個部分,第1部分:Oracle開發前奏,主要包括數據庫系統概述、Oracle的安裝與基本使用;第2部分:SQL基礎語法,主要內容有簡單查詢、限定查詢與排序顯示、單行函數、多表查詢、分組統計查詢、子查詢、更新及事務處理、替代變量、表的創建與管理、完整性約束、其他數據庫對象、用戶權限及角色管理、數據庫設計;第3部分:數據庫編程,主要內容有PL/SQL編程基礎、集合、游標、子程序、包、觸發器、動態SQL、面向對象編程。《名師講壇——Oracle開發實戰經典》還有如下特點:
1.視頻極為詳盡:視頻長達45小時,共126講,力求將Oracle開發必備知識一網打盡。
2.實例案例教學:1200項各類實例案例,力求將Oracle開發必備知識徹底講透。
3.全方位服務:論壇、網站、二維碼、微信等多種服務力求解答本書所有疑問。
4.知名講師編著:由有多年開發和授課經驗、連續7年獲得最受歡迎教師稱號的知名講師編著。
5.教師服務:高校教師還可以獲得教學大綱、電子課件、學習筆記等多種資源。
本書適合Oracle開發入門者學習使用,也可以作為Oracle開發人員的參考書。
李興華,知名Java、Oracle、Android高級講師,北京魔樂科技軟件實訓中心(MLDN)教學總監、首席講師。8年軟件開發經驗,10年高端培訓經驗,先后為40多家大中型企業做過培訓,在Java、Oracle、Android培訓方面享有很高的知名度。
目錄
第1部分 Oracle開發前奏
第1章 數據庫系統概述 2
(視頻講解:1小時10分鍾)
1.1 數據庫的產生動機 3
1.2 數據、數據庫、數據庫管理系統、數據庫系統 4
1.3 數據管理與數據庫系統的特點 6
1.4 數據模型 8
1.4.1 兩類數據模型 8
1.4.2 概念模型 10
1.4.3 數據模型 14
1.4.4 關系模型基礎 19
1.5 SQL概述 21
提示:關於NOSQL技術 22
1.6 本章小結 22
第2章 Oracle的安裝與基本使用 23
(視頻講解:1小時40分鍾)
2.1 Oracle簡介 24
2.2 安裝Oracle數據庫 25
提示:關於CDB與PDB 29
注意:如果不進行口令配置,有可能某些用戶為鎖定狀態 32
2.3 Oracle體系結構 33
提示:Oracle服務器、Oracle實例(instance)、Oracle數據庫(database)的關系 34
2.3.1 Oracle實例體系 34
2.3.2 Oracle物理體系 38
2.4 Oracle監聽服務 38
2.4.1 注冊表被破壞導致監聽無法啟動 39
2.4.2 計算機名稱修改導致監聽無法啟動 39
2.4.3 監聽工具LSNRCTL 40
2.5 SQLPlus簡介 41
2.6 SQLPlus常用命令 42
提示:關於sqlplus.exe工具的補充說明 42
提示:sqlplusw.exe的輸入形式 44
提示:需要設置命令行格式 45
2.7 配置SQL Developer 48
2.8 c##scott用戶表 51
2.8.1 部門表dept 51
2.8.2 雇員表emp 52
2.8.3 工資等級表salgrade 52
2.8.4 工資補貼表bonus 53
2.9 本章小結 53
第2部分 SQL基礎語法
第3章 簡單查詢 56
(視頻講解:35分鍾)
3.1 簡單查詢語句 57
提示:關於null的問題 57
提示:關於SQL中的投影概念 59
3.2 其他簡單查詢 60
3.3 本章小結 65
第4章 限定查詢與排序顯示 66
(視頻講解:1小時12分鍾)
4.1 限定查詢 67
4.1.1 認識限定查詢 67
提示:一般在執行查詢之前都先查看
一下表中的記錄數 67
4.1.2 對數據進行限定查詢 70
提示:閱讀查詢語句的小技巧 71
注意:在使用NOT IN操作符時列表不能有NULL 78
4.2 對結果排序:ORDER BY 82
提示:語句執行順序 82
4.3 本章小結 84
第5章 單行函數 85
(視頻講解:2小時6分鍾)
5.1 單行函數簡介 86
5.2 字符函數 87
5.3 數值函數 92
5.4 日期函數 94
提示:關於日期和數字的問題 95
5.5 轉換函數 101
注意:建議保留前導0 102
提示:關於數據的隱式轉換操作 103
5.6 通用函數 106
5.7 本章小結 112
第6章 多表查詢 113
(視頻講解:1小時30分鍾)
6.1 多表查詢的基本語法 114
提示:關於笛卡爾積的代數表示 115
提示:關於笛卡爾積的消除 117
6.2 多表查詢實例 117
6.3 表的連接操作 121
提示:左外連接與右外連接的操作 123
6.4 自身關聯 125
6.5 SQL:1999語法 129
6.5.1 交叉連接 129
6.5.2 自然連接 130
提示:自然連接的操作 130
6.5.3 USING子句 131
6.5.4 ON子句 132
提示:關於θ連接 132
6.5.5 外連接 133
6.6 數據的集合運算 135
6.7 本章小結 138
第7章 分組統計查詢 139
(視頻講解:1小時20分鍾)
7.1 統計函數 140
7.2 單字段分組統計 142
提示:分享一下個人的分組規律 145
7.3 多字段分組統計 149
7.4 HAVING子句 152
7.5 本章小結 156
第8章 子查詢 157
(視頻講解:4小時3分鍾)
8.1 認識子查詢 158
8.2 在WHERE子句中使用子查詢 160
8.2.1 子查詢返回單行單列數據 160
8.2.2 子查詢返回單行多列數據 162
8.2.3 子查詢返回多行單列數據 164
提示:關於SOME操作符 168
8.2.4 空數據判斷 170
8.3 在HAVING子句中使用子查詢 170
8.4 在FROM子句中使用子查詢 172
8.5 在SELECT子句中使用子查詢 180
8.6 WITH子句 181
8.7 分析函數 182
8.7.1 分析函數基本語法 183
提示:關於「分組」與「分區」 183
8.7.2 分析函數范例 191
8.8 行列轉換 197
提示:使用XML與ANY 200
8.9 設置數據層次 205
8.10 本章小結 210
第9章 更新及事務處理 211
(視頻講解:1小時32分鍾)
9.1 更新操作前的准備 212
9.2 數據的增加操作 213
9.2.1 增加數據 213
9.2.2 增加子查詢結果數據 215
9.3 數據的更新操作 215
9.3.1 由用戶指定更新數據 216
9.3.2 使用已有數據更新數據表 217
9.4 數據的刪除操作 217
9.5 事務處理 218
9.6 鎖 225
9.6.1 行級鎖定 227
9.6.2 表級鎖定 227
9.6.3 解除鎖定 228
9.7 本章小結 229
第10章 替代變量 230
(視頻講解:43分鍾)
10.1 替代變量的基本概念 231
10.2 替代變量的詳細說明 233
10.3 定義替代變量 236
10.4 ACCEPT指令 237
10.5 本章小結 240
第11章 表的創建與管理 241
(視頻講解:1小時48分鍾)
11.1 數據表的基本概念 242
11.2 Oracle常用數據類型 242
11.3 表的創建 243
11.4 表的復制 246
11.5 數據表重命名 248
11.6 截斷表 249
11.7 表的刪除 250
11.8 閃回技術(FlashBack) 250
11.9 修改表結構 253
11.10 添加注釋 257
11.11 設置可見/不可見字段 258
11.12 表空間 261
提示:關於數據庫系統的三級
模式結構 261
提示:關於數據庫、表空間、表的
簡單理解 263
提示:關於非系統表空間的稱呼 263
11.12.1 創建表空間 264
提示:Oracle中的默認表空間 265
11.12.2 使用表空間 266
11.13 本章小結 267
第12章 完整性約束 268
(視頻講解:2小時20分鍾)
12.1 數據庫完整性約束簡介 269
12.2 非空約束NK 270
12.3 唯一約束UK 270
12.4 主鍵約束PK 272
12.5 檢查約束CK 274
12.6 主-外鍵約束FK 275
12.7 查看約束 283
12.8 修改約束 284
注意:在為表中添加約束時一定要保證表中的數據沒有違反約束 285
12.9 數據庫綜合實戰 288
12.9.1 建立數據表 288
12.9.2 為數據表增加數據 290
12.9.3 數據操作 293
12.10 本章小結 298
第13章 其他數據庫對象 299
(視頻講解:2小時46分鍾)
13.1 視圖 300
13.1.1 創建視圖 301
提示:關於Oracle 12c創建視圖時出現的權限不足的錯誤 302
13.1.2 在視圖上執行DML操作 304
13.1.3 WITH CHECK OPTION
子句 308
13.1.4 WITH READ ONLY子句 310
13.1.5 刪除視圖 311
13.2 序列 312
13.2.1 序列的作用及創建 312
13.2.2 序列的刪除 314
13.2.3 創建特殊功能的序列 315
提示:設置緩存有可能造成跳號的情況 316
13.2.4 修改序列 318
13.2.5 自動序列 319
注意:自動序列對象的刪除 321
13.3 同義詞 321
13.4 Oracle偽列 323
13.4.1 ROWID偽列 324
13.4.2 ROWNUM偽列 326
13.4.3 Oracle 12c新特性FETCH 332
13.5 索引 334
提示:關於索引深層次學習 334
13.5.1 B*Tree索引 334
提示:關於全表掃描 335
13.5.2 位圖索引 340
13.5.3 刪除索引 341
13.6 本章小結 341
第14章 用戶權限及角色管理 343
(視頻講解:1小時23分鍾)
14.1 用戶管理 344
14.1.1 創建用戶 344
注意:Oracle 12c的新限制 345
14.1.2 概要文件(profiles) 346
14.1.3 維護用戶 348
14.1.4 刪除用戶 350
注意:刪除用戶是一個危險操作 350
14.2 權限管理 350
14.2.1 系統權限 350
提示:SYSOPER和SYSDBA權限 352
提示:用戶SESSION連接 353
14.2.2 對象權限 355
14.3 角色 357
14.3.1 創建角色 358
14.3.2 角色授權 359
14.3.3 為用戶授予角色 359
14.3.4 修改角色及回收角色權限 360
14.3.5 刪除角色 361
14.3.6 預定義角色 361
14.4 本章小結 362
第15章 數據庫設計 363
(視頻講解:1小時36分鍾)
15.1 數據庫設計概述 364
15.2 概念模型與E-R圖概述 365
15.2.1 實體 365
15.2.2 屬性 366
15.2.3 聯系 366
15.2.4 E-R模型實例 367
15.3 數據庫設計范式 370
15.3.1 第一范式(1NF) 371
15.3.2 第二范式(2NF) 372
提示:關於函數依賴的解釋 372
15.3.3 第三范式(3NF) 377
15.3.4 鮑依斯-科得范式(BCNF) 379
15.4 Sybase PowerDesigner設計
工具 381
15.4.1 概念模型設計 381
15.4.2 物理數據模型設計 385
15.5 數據庫設計案例 386
15.5.1 功能描述 387
15.5.2 概念模型 388
15.5.3 物理數據模型 389
15.6 本章小結 397
第3部分 數據庫編程
第16章 PL/SQL編程基礎 400
(視頻講解:3小時)
16.1 PL/SQL簡介 401
16.2 變量的聲明與賦值 403
16.2.1 聲明並使用變量 403
提示:關於Oracle關鍵字說明 403
注意:PL/SQL中的變量不區分大小寫 404
16.2.2 使用%TYPE聲明變量類型 405
16.2.3 使用%ROWTYPE聲明變量類型 405
16.3 運算符 406
16.3.1 賦值運算符 407
16.3.2 連接運算符 407
16.3.3 關系運算符 408
16.3.4 邏輯運算符 408
16.4 數據類型划分 410
16.5 標量類型 410
16.5.1 數值型 411
提示:關於數據溢出問題 413
16.5.2 字符型 415
16.5.3 日期型 418
16.5.4 布爾型 421
16.5.5 子類型 421
16.6 程序結構 422
16.6.1 分支結構 423
提示:Oracle也支持正則驗證 426
16.6.2 循環結構 431
16.6.3 循環控制 433
16.6.4 GOTO語句 435
16.7 內部程序塊 435
16.8 異常處理 436
16.8.1 異常簡介 437
16.8.2 使用EXCEPTION來處理異常 438
16.8.3 用戶自定義異常 442
16.9 本章小結 447
第17章 集合 448
(視頻講解:2小時52分鍾)
17.1 記錄類型 449
17.2 索引表 454
17.3 嵌套表 457
17.3.1 定義簡單類型嵌套表 457
17.3.2 定義復合類型嵌套表 460
17.3.3 在PL/SQL中使用嵌套表 463
17.4 可變數組 468
17.4.1 定義簡單類型的可變數組 468
17.4.2 定義復合類型的可變數組 470
17.4.3 在PL/SQL中使用可變數組 471
17.5 集合運算符 473
17.6 集合函數 476
17.7 處理集合異常 481
17.8 使用FORALL批量綁定 483
17.9 BULK COLLECT批量接數據 484
17.10 本章小結 485
第18章 游標 486
(視頻講解:1小時19分鍾)
18.1 游標簡介 487
18.2 隱式游標 487
18.3 顯式游標 489
18.4 修改游標數據 498
18.4.1 FOR UPDATE子句 499
18.4.2 WHERE CURRENT OF子句 500
18.5 游標變量 502
18.6 本章小結 505
第19章 子程序 506
(視頻講解:2小時26分鍾)
19.1 子程序定義 507
19.1.1 定義過程 507
19.1.2 定義函數 509
19.2 查詢子程序 512
19.3 刪除子程序 515
19.4 參數模式 516
提示:不再重復演示函數的參數模式 518
19.5 子程序嵌套 522
19.6 NOCOPY選項 527
19.7 自治事務 530
19.8 子程序權限 531
19.9 利用Java調用子程序 533
19.10 本章小結 535
第20章 包 536
(視頻講解:1小時38分鍾)
20.1 包的定義及使用 537
20.1.1 包的基本概念 537
20.1.2 重新編譯包 541
20.1.3 包的作用域 541
20.1.4 重載包中的子程序 543
20.1.5 包的初始化 544
20.1.6 包的純度級別 546
注意:關於公用函數的說明 548
20.2 系統工具包 548
20.2.1 DBMS_OUTPUT包 548
20.2.2 DBMS_JOB包與數據庫作業 551
20.2.3 DBMS_ASSERT包 555
提示:利用DBMS_ASSERT可以解決SQL注入攻擊 556
20.2.4 DBMS_LOB包 556
20.3 本章小結 559
第21章 觸發器 560
(視頻講解:3小時30分鍾)
21.1 觸發器簡介 561
21.2 DML觸發器 562
21.3 表級DML觸發器 564
21.4 行級DML觸發器 568
21.4.1 使用「:old.字段」和「:new.字段」標識符 568
注意:不能將「:new」或「:old」設置為ROWTYPE類型 571
21.4.2 使用REFERENCING子句設置別名 575
21.4.3 使用WHEN子句定義觸發條件 575
21.4.4 觸發器謂詞 577
21.4.5 使用FOLLOWS子句 578
21.5 變異表 580
21.6 復合觸發器 581
21.7 instead-of觸發器 586
21.7.1 在視圖上定義替代觸發器 586
21.7.2 在嵌套表上定義替代觸發器 591
21.8 DDL觸發器 593
21.9 系統觸發器 599
21.10 管理觸發器 603
提示:Oracle 11g之后可以建立禁用觸發器 604
21.11 觸發器中調用子程序 605
21.12 本章小結 606
第22章 動態SQL 607
(視頻講解:1小時17分鍾)
22.1 動態SQL簡介 608
提示:如果不使用EXECUTE IMMEDIATE,則程序會出現錯誤 609
提示:在get_table_count_fun()函數執行時可能出現「ORA-01031:權限不足」錯誤提示 610
22.2 EXECUTE IMMEDIATE語句 610
22.2.1 執行動態SQL 611
22.2.2 設置綁定變量 612
22.2.3 接收DML更新行數 614
提示:也可以使用RETURN接收影響數據行的數據 615
22.3 批量綁定 616
22.4 處理游標操作 618
22.5 DBMS_SQL包簡介 620
22.6 本章小結 623
第23章 面向對象編程 624
(視頻講解:2小時35分鍾)
23.1 面向對象簡介 625
23.2 類與對象 625
23.3 定義對象類型——類 626
23.4 操作類中的其他結構 630
23.4.1 定義函數 630
23.4.2 構造函數 632
提示:關於默認構造函數 632
23.4.3 定義MAP與ORDER函數 633
23.4.4 對象嵌套關系 637
23.4.5 繼承性 639
23.4.6 函數覆寫 641
23.4.7 對象多態性 642
23.4.8 使用FINAL關鍵字 644
23.4.9 定義抽象函數 645
23.5 對象表 646
23.5.1 創建對象表 648
23.5.2 維護對象表數據 649
23.6 對象視圖 655
23.7 本章小結 656
第1章 數據庫系統概述 2
(視頻講解:1小時10分鍾)
1.1 數據庫的產生動機 3
1.2 數據、數據庫、數據庫管理系統、數據庫系統 4
1.3 數據管理與數據庫系統的特點 6
1.4 數據模型 8
1.4.1 兩類數據模型 8
1.4.2 概念模型 10
1.4.3 數據模型 14
1.4.4 關系模型基礎 19
1.5 SQL概述 21
提示:關於NOSQL技術 22
1.6 本章小結 22
第2章 Oracle的安裝與基本使用 23
(視頻講解:1小時40分鍾)
2.1 Oracle簡介 24
2.2 安裝Oracle數據庫 25
提示:關於CDB與PDB 29
注意:如果不進行口令配置,有可能某些用戶為鎖定狀態 32
2.3 Oracle體系結構 33
提示:Oracle服務器、Oracle實例(instance)、Oracle數據庫(database)的關系 34
2.3.1 Oracle實例體系 34
2.3.2 Oracle物理體系 38
2.4 Oracle監聽服務 38
2.4.1 注冊表被破壞導致監聽無法啟動 39
2.4.2 計算機名稱修改導致監聽無法啟動 39
2.4.3 監聽工具LSNRCTL 40
2.5 SQLPlus簡介 41
2.6 SQLPlus常用命令 42
提示:關於sqlplus.exe工具的補充說明 42
提示:sqlplusw.exe的輸入形式 44
提示:需要設置命令行格式 45
2.7 配置SQL Developer 48
2.8 c##scott用戶表 51
2.8.1 部門表dept 51
2.8.2 雇員表emp 52
2.8.3 工資等級表salgrade 52
2.8.4 工資補貼表bonus 53
2.9 本章小結 53
第2部分 SQL基礎語法
第3章 簡單查詢 56
(視頻講解:35分鍾)
3.1 簡單查詢語句 57
提示:關於null的問題 57
提示:關於SQL中的投影概念 59
3.2 其他簡單查詢 60
3.3 本章小結 65
第4章 限定查詢與排序顯示 66
(視頻講解:1小時12分鍾)
4.1 限定查詢 67
4.1.1 認識限定查詢 67
提示:一般在執行查詢之前都先查看
一下表中的記錄數 67
4.1.2 對數據進行限定查詢 70
提示:閱讀查詢語句的小技巧 71
注意:在使用NOT IN操作符時列表不能有NULL 78
4.2 對結果排序:ORDER BY 82
提示:語句執行順序 82
4.3 本章小結 84
第5章 單行函數 85
(視頻講解:2小時6分鍾)
5.1 單行函數簡介 86
5.2 字符函數 87
5.3 數值函數 92
5.4 日期函數 94
提示:關於日期和數字的問題 95
5.5 轉換函數 101
注意:建議保留前導0 102
提示:關於數據的隱式轉換操作 103
5.6 通用函數 106
5.7 本章小結 112
第6章 多表查詢 113
(視頻講解:1小時30分鍾)
6.1 多表查詢的基本語法 114
提示:關於笛卡爾積的代數表示 115
提示:關於笛卡爾積的消除 117
6.2 多表查詢實例 117
6.3 表的連接操作 121
提示:左外連接與右外連接的操作 123
6.4 自身關聯 125
6.5 SQL:1999語法 129
6.5.1 交叉連接 129
6.5.2 自然連接 130
提示:自然連接的操作 130
6.5.3 USING子句 131
6.5.4 ON子句 132
提示:關於θ連接 132
6.5.5 外連接 133
6.6 數據的集合運算 135
6.7 本章小結 138
第7章 分組統計查詢 139
(視頻講解:1小時20分鍾)
7.1 統計函數 140
7.2 單字段分組統計 142
提示:分享一下個人的分組規律 145
7.3 多字段分組統計 149
7.4 HAVING子句 152
7.5 本章小結 156
第8章 子查詢 157
(視頻講解:4小時3分鍾)
8.1 認識子查詢 158
8.2 在WHERE子句中使用子查詢 160
8.2.1 子查詢返回單行單列數據 160
8.2.2 子查詢返回單行多列數據 162
8.2.3 子查詢返回多行單列數據 164
提示:關於SOME操作符 168
8.2.4 空數據判斷 170
8.3 在HAVING子句中使用子查詢 170
8.4 在FROM子句中使用子查詢 172
8.5 在SELECT子句中使用子查詢 180
8.6 WITH子句 181
8.7 分析函數 182
8.7.1 分析函數基本語法 183
提示:關於「分組」與「分區」 183
8.7.2 分析函數范例 191
8.8 行列轉換 197
提示:使用XML與ANY 200
8.9 設置數據層次 205
8.10 本章小結 210
第9章 更新及事務處理 211
(視頻講解:1小時32分鍾)
9.1 更新操作前的准備 212
9.2 數據的增加操作 213
9.2.1 增加數據 213
9.2.2 增加子查詢結果數據 215
9.3 數據的更新操作 215
9.3.1 由用戶指定更新數據 216
9.3.2 使用已有數據更新數據表 217
9.4 數據的刪除操作 217
9.5 事務處理 218
9.6 鎖 225
9.6.1 行級鎖定 227
9.6.2 表級鎖定 227
9.6.3 解除鎖定 228
9.7 本章小結 229
第10章 替代變量 230
(視頻講解:43分鍾)
10.1 替代變量的基本概念 231
10.2 替代變量的詳細說明 233
10.3 定義替代變量 236
10.4 ACCEPT指令 237
10.5 本章小結 240
第11章 表的創建與管理 241
(視頻講解:1小時48分鍾)
11.1 數據表的基本概念 242
11.2 Oracle常用數據類型 242
11.3 表的創建 243
11.4 表的復制 246
11.5 數據表重命名 248
11.6 截斷表 249
11.7 表的刪除 250
11.8 閃回技術(FlashBack) 250
11.9 修改表結構 253
11.10 添加注釋 257
11.11 設置可見/不可見字段 258
11.12 表空間 261
提示:關於數據庫系統的三級
模式結構 261
提示:關於數據庫、表空間、表的
簡單理解 263
提示:關於非系統表空間的稱呼 263
11.12.1 創建表空間 264
提示:Oracle中的默認表空間 265
11.12.2 使用表空間 266
11.13 本章小結 267
第12章 完整性約束 268
(視頻講解:2小時20分鍾)
12.1 數據庫完整性約束簡介 269
12.2 非空約束NK 270
12.3 唯一約束UK 270
12.4 主鍵約束PK 272
12.5 檢查約束CK 274
12.6 主-外鍵約束FK 275
12.7 查看約束 283
12.8 修改約束 284
注意:在為表中添加約束時一定要保證表中的數據沒有違反約束 285
12.9 數據庫綜合實戰 288
12.9.1 建立數據表 288
12.9.2 為數據表增加數據 290
12.9.3 數據操作 293
12.10 本章小結 298
第13章 其他數據庫對象 299
(視頻講解:2小時46分鍾)
13.1 視圖 300
13.1.1 創建視圖 301
提示:關於Oracle 12c創建視圖時出現的權限不足的錯誤 302
13.1.2 在視圖上執行DML操作 304
13.1.3 WITH CHECK OPTION
子句 308
13.1.4 WITH READ ONLY子句 310
13.1.5 刪除視圖 311
13.2 序列 312
13.2.1 序列的作用及創建 312
13.2.2 序列的刪除 314
13.2.3 創建特殊功能的序列 315
提示:設置緩存有可能造成跳號的情況 316
13.2.4 修改序列 318
13.2.5 自動序列 319
注意:自動序列對象的刪除 321
13.3 同義詞 321
13.4 Oracle偽列 323
13.4.1 ROWID偽列 324
13.4.2 ROWNUM偽列 326
13.4.3 Oracle 12c新特性FETCH 332
13.5 索引 334
提示:關於索引深層次學習 334
13.5.1 B*Tree索引 334
提示:關於全表掃描 335
13.5.2 位圖索引 340
13.5.3 刪除索引 341
13.6 本章小結 341
第14章 用戶權限及角色管理 343
(視頻講解:1小時23分鍾)
14.1 用戶管理 344
14.1.1 創建用戶 344
注意:Oracle 12c的新限制 345
14.1.2 概要文件(profiles) 346
14.1.3 維護用戶 348
14.1.4 刪除用戶 350
注意:刪除用戶是一個危險操作 350
14.2 權限管理 350
14.2.1 系統權限 350
提示:SYSOPER和SYSDBA權限 352
提示:用戶SESSION連接 353
14.2.2 對象權限 355
14.3 角色 357
14.3.1 創建角色 358
14.3.2 角色授權 359
14.3.3 為用戶授予角色 359
14.3.4 修改角色及回收角色權限 360
14.3.5 刪除角色 361
14.3.6 預定義角色 361
14.4 本章小結 362
第15章 數據庫設計 363
(視頻講解:1小時36分鍾)
15.1 數據庫設計概述 364
15.2 概念模型與E-R圖概述 365
15.2.1 實體 365
15.2.2 屬性 366
15.2.3 聯系 366
15.2.4 E-R模型實例 367
15.3 數據庫設計范式 370
15.3.1 第一范式(1NF) 371
15.3.2 第二范式(2NF) 372
提示:關於函數依賴的解釋 372
15.3.3 第三范式(3NF) 377
15.3.4 鮑依斯-科得范式(BCNF) 379
15.4 Sybase PowerDesigner設計
工具 381
15.4.1 概念模型設計 381
15.4.2 物理數據模型設計 385
15.5 數據庫設計案例 386
15.5.1 功能描述 387
15.5.2 概念模型 388
15.5.3 物理數據模型 389
15.6 本章小結 397
第3部分 數據庫編程
第16章 PL/SQL編程基礎 400
(視頻講解:3小時)
16.1 PL/SQL簡介 401
16.2 變量的聲明與賦值 403
16.2.1 聲明並使用變量 403
提示:關於Oracle關鍵字說明 403
注意:PL/SQL中的變量不區分大小寫 404
16.2.2 使用%TYPE聲明變量類型 405
16.2.3 使用%ROWTYPE聲明變量類型 405
16.3 運算符 406
16.3.1 賦值運算符 407
16.3.2 連接運算符 407
16.3.3 關系運算符 408
16.3.4 邏輯運算符 408
16.4 數據類型划分 410
16.5 標量類型 410
16.5.1 數值型 411
提示:關於數據溢出問題 413
16.5.2 字符型 415
16.5.3 日期型 418
16.5.4 布爾型 421
16.5.5 子類型 421
16.6 程序結構 422
16.6.1 分支結構 423
提示:Oracle也支持正則驗證 426
16.6.2 循環結構 431
16.6.3 循環控制 433
16.6.4 GOTO語句 435
16.7 內部程序塊 435
16.8 異常處理 436
16.8.1 異常簡介 437
16.8.2 使用EXCEPTION來處理異常 438
16.8.3 用戶自定義異常 442
16.9 本章小結 447
第17章 集合 448
(視頻講解:2小時52分鍾)
17.1 記錄類型 449
17.2 索引表 454
17.3 嵌套表 457
17.3.1 定義簡單類型嵌套表 457
17.3.2 定義復合類型嵌套表 460
17.3.3 在PL/SQL中使用嵌套表 463
17.4 可變數組 468
17.4.1 定義簡單類型的可變數組 468
17.4.2 定義復合類型的可變數組 470
17.4.3 在PL/SQL中使用可變數組 471
17.5 集合運算符 473
17.6 集合函數 476
17.7 處理集合異常 481
17.8 使用FORALL批量綁定 483
17.9 BULK COLLECT批量接數據 484
17.10 本章小結 485
第18章 游標 486
(視頻講解:1小時19分鍾)
18.1 游標簡介 487
18.2 隱式游標 487
18.3 顯式游標 489
18.4 修改游標數據 498
18.4.1 FOR UPDATE子句 499
18.4.2 WHERE CURRENT OF子句 500
18.5 游標變量 502
18.6 本章小結 505
第19章 子程序 506
(視頻講解:2小時26分鍾)
19.1 子程序定義 507
19.1.1 定義過程 507
19.1.2 定義函數 509
19.2 查詢子程序 512
19.3 刪除子程序 515
19.4 參數模式 516
提示:不再重復演示函數的參數模式 518
19.5 子程序嵌套 522
19.6 NOCOPY選項 527
19.7 自治事務 530
19.8 子程序權限 531
19.9 利用Java調用子程序 533
19.10 本章小結 535
第20章 包 536
(視頻講解:1小時38分鍾)
20.1 包的定義及使用 537
20.1.1 包的基本概念 537
20.1.2 重新編譯包 541
20.1.3 包的作用域 541
20.1.4 重載包中的子程序 543
20.1.5 包的初始化 544
20.1.6 包的純度級別 546
注意:關於公用函數的說明 548
20.2 系統工具包 548
20.2.1 DBMS_OUTPUT包 548
20.2.2 DBMS_JOB包與數據庫作業 551
20.2.3 DBMS_ASSERT包 555
提示:利用DBMS_ASSERT可以解決SQL注入攻擊 556
20.2.4 DBMS_LOB包 556
20.3 本章小結 559
第21章 觸發器 560
(視頻講解:3小時30分鍾)
21.1 觸發器簡介 561
21.2 DML觸發器 562
21.3 表級DML觸發器 564
21.4 行級DML觸發器 568
21.4.1 使用「:old.字段」和「:new.字段」標識符 568
注意:不能將「:new」或「:old」設置為ROWTYPE類型 571
21.4.2 使用REFERENCING子句設置別名 575
21.4.3 使用WHEN子句定義觸發條件 575
21.4.4 觸發器謂詞 577
21.4.5 使用FOLLOWS子句 578
21.5 變異表 580
21.6 復合觸發器 581
21.7 instead-of觸發器 586
21.7.1 在視圖上定義替代觸發器 586
21.7.2 在嵌套表上定義替代觸發器 591
21.8 DDL觸發器 593
21.9 系統觸發器 599
21.10 管理觸發器 603
提示:Oracle 11g之后可以建立禁用觸發器 604
21.11 觸發器中調用子程序 605
21.12 本章小結 606
第22章 動態SQL 607
(視頻講解:1小時17分鍾)
22.1 動態SQL簡介 608
提示:如果不使用EXECUTE IMMEDIATE,則程序會出現錯誤 609
提示:在get_table_count_fun()函數執行時可能出現「ORA-01031:權限不足」錯誤提示 610
22.2 EXECUTE IMMEDIATE語句 610
22.2.1 執行動態SQL 611
22.2.2 設置綁定變量 612
22.2.3 接收DML更新行數 614
提示:也可以使用RETURN接收影響數據行的數據 615
22.3 批量綁定 616
22.4 處理游標操作 618
22.5 DBMS_SQL包簡介 620
22.6 本章小結 623
第23章 面向對象編程 624
(視頻講解:2小時35分鍾)
23.1 面向對象簡介 625
23.2 類與對象 625
23.3 定義對象類型——類 626
23.4 操作類中的其他結構 630
23.4.1 定義函數 630
23.4.2 構造函數 632
提示:關於默認構造函數 632
23.4.3 定義MAP與ORDER函數 633
23.4.4 對象嵌套關系 637
23.4.5 繼承性 639
23.4.6 函數覆寫 641
23.4.7 對象多態性 642
23.4.8 使用FINAL關鍵字 644
23.4.9 定義抽象函數 645
23.5 對象表 646
23.5.1 創建對象表 648
23.5.2 維護對象表數據 649
23.6 對象視圖 655
23.7 本章小結 656
網路書店
類別
折扣
價格
-
新書87折$469