第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
· · · · · · (
收起)