標籤:串連查詢 數列 developer save set 綁定 goto rowtype 視圖
\t第1篇 pl/sql開發入門
第1章 oracle 11g資料庫系統
1.1 關係型資料庫系統介紹
1.1.1 什麼是關係型資料模型
1.1.2 資料庫系統範式
1.1.3 關係型資料庫管理系統
1.1.4 使用sql語句與資料庫管理系統通訊
1.2 初識oracle 11g
1.2.1 oracle 11g簡介
1.2.2 oracle 11g體繫結構
1.2.3 如何建立資料庫
1.2.4 比較oracle資料庫與sql server資料庫
1.3 什麼是pl/sql
1.3.1 pl/sql是一種語言
1.3.2 pl/sql的執行環境
1.4 搭建pl/sql開發環境
1.4.1 使用sql*plus
1.4.2 使用oracle sql developer
1.4.3 pl/sql developer開發pl/sql
.1.4.4 quest toad開發pl/sql
1.4.5 使用oracle文件庫
1.5 小結
\t第2章 pl/sql基本概念
2.1 功能特點
2.1.1 結構化程式設計
2.1.2 與sql語言整合
2.1.3 物件導向開發
2.1.4 模組化應用程式開發
2.1.5 提高應用程式效能
2.2 語言特性
2.2.1 pl/sql塊結構
2.2.2 變數和類型
2.2.3 程式控制語句
2.2.4 過程、函數與包
2.2.5 觸發器
2.2.6 結構化異常處理
2.2.7 集合與記錄
2.2.8 遊標
2.2.9 動態sql
2.3 編碼風格
2.3.1 pl/sql詞法單位
2.3.2 縮排
2.3.3 標識符命名規則
2.3.4 大小寫風格
2.3.5 使用工具格式化代碼
2.4 小結
\t第3章 變數和類型
3.1 變數
3.1.1 變數的聲明
3.1.2 變數的賦值
3.1.3 使用%type
3.1.4 使用%rowtype
3.1.5 變數的範圍和可見度
3.1.6 常量的定義
3.2 資料類型
3.2.1 字元類型
3.2.2 數字類型
3.2.3 日期和時間類型
3.2.4 布爾類型
3.2.5 lob物件類型
3.2.6 參考型別
3.2.7 複合類型
3.2.8 使用者自訂子類型
3.2.9 資料類型轉換
3.3 運算子和運算式
3.3.1 運算子類型
3.3.2 運算子的優先順序
3.3.3 運算式類型
3.4 小結
\t第4章 pl/sql控制語句
4.1 分支控制語句
4.1.1 if-then-else語句
4.1.2 if-then-elsif語句
4.1.3 case語句
4.1.4 搜尋case語句
4.2 迴圈控制語句
4.2.1 loop迴圈
4.2.2 使用exit退出迴圈
4.2.3 使用exit-when退出迴圈
4.2.4 使用continue繼續執行迴圈
4.2.5 while-loop迴圈
4.2.6 for-loop迴圈
4.2.7 迴圈語句使用建議
4.3 順序控制語句
4.3.1 goto語句和標籤
4.3.2 null語句
4.4 小結
\t第2篇 pl/sql開發基礎
第5章 管理資料表
5.1 建立表
5.1.1 資料定義語言 (Data Definition Language)ddl
5.1.2 create table語句
5.1.3 在設計器中建立表
5.1.4 建立表副本
5.2 建立約束
5.2.1 建立主鍵約束
5.2.2 建立外鍵約束
5.2.3 建立檢查約束
5.2.4 查看錶約束
5.3 修改表
5.3.1 修改表列
5.3.2 修改約束
5.3.3 移除資料表
5.3.4 在設計器中修改表
5.4 索引
5.4.1 索引簡介
5.4.2 索引原理
5.4.3 建立索引
5.4.4 修改索引
5.4.5 刪除索引
5.5 使用視圖
5.5.1 視圖簡介
5.5.2 建立視圖
5.5.3 修改視圖
5.5.4 刪除視圖
5.6 小結
\t第6章 查詢資料表
6.1 簡單查詢
6.1.1 查詢表資料
6.1.2 指定查詢條件
6.1.3 排序
6.1.4 使用函數
6.1.5 統計函數
6.1.6 分組統計
6.1.7 having子句
6.1.8 使用dual表
6.1.9 rownum偽列
6.1.10 rowid偽列
6.2 複雜查詢
6.2.1 多表串連查詢
6.2.2 使用子查詢
6.2.3 表集合操作
6.2.4 層次化查詢
6.3 小結
\t第7章 操縱資料表
7.1 插入記錄
7.1.1 資料操縱語言dml
7.1.2 插入單行記錄
7.1.3 插入預設值和null值
7.1.4 使用子查詢插入多行資料
7.1.5 使用insert插入多表資料
7.2 更新記錄
7.2.1 更新單行記錄
7.2.2 使用子查詢更新記錄
7.2.3 使用merge合并表行
7.3 刪除記錄
7.3.1 刪除單行記錄
7.3.2 使用子查詢刪除記錄
7.3.3 使用truncate清除表資料
7.4 提交和復原記錄
7.4.1 提交更改
7.4.2 復原更改
7.5 使用序列
7.5.1 序列簡介
7.5.2 建立資料序列
7.5.3 nextval和currval偽列
7.5.4 使用資料序列
7.5.5 修改序列
7.5.6 刪除序列
7.6 同義字
7.6.1 同義字簡介
7.6.2 建立和使用同義字
7.7 小結
\t第8章 記錄與集合
8.1 記錄類型
8.1.1 記錄類型簡介
8.1.2 定義記錄類型
8.1.3 記錄類型賦值
8.1.4 操縱記錄類型
8.1.5 使用嵌套記錄
8.2 理解集合類型
8.2.1 集合簡介
8.2.2 定義索引表
8.2.3 操縱索引表
8.2.4 定義巢狀表格
8.2.5 操縱巢狀表格
8.2.6 資料庫中的巢狀表格
8.2.7 定義變長數組
8.2.8 操縱變長數組
8.2.9 資料庫中的變長數組
8.2.10 選擇集合類型
8.3 使用集合方法
8.3.1 使用exists方法
8.3.2 使用count方法
8.3.3 使用limit方法
8.3.4 first和last方法
8.3.5 prior和next方法
8.3.6 extend方法
8.3.7 trim方法
8.3.8 delete方法
8.3.9 集合的異常處理
8.3.10 使用大量繫結
8.3.11 使用bulk collect
8.4 小結
\t第9章 sql內建函數
9.1 基本函數
9.1.1 字元型函數
9.1.2 數字型函數
9.1.3 日期時間函數
9.1.4 類型轉換函式
9.1.5 分組函數
9.1.6 其他函數
9.2 oracle分析函數
9.2.1 什麼是分析函數
9.2.2 基本文法
9.2.3 分析函數結構
9.2.4 分析函數列表
9.3 分析函數使用樣本
9.3.1 記錄排名
9.3.2 首尾記錄查詢
9.3.3 前後排名查詢
9.3.4 層次查詢
9.3.5 範圍統計查詢
9.3.6 相鄰記錄比較
9.3.7 抑制重複
9.3.8 行列轉換查詢
9.3.9 在pl/sql中流量分析函數
9.4 小結
\t第10章 使用遊標
10.1 遊標基本結構
10.1.1 遊標簡介
10.1.2 遊標分類
10.1.3 定義遊標類型
10.1.4 開啟遊標
10.1.5 使用遊標屬性
10.1.6 提取遊標資料
10.1.7 批量提取遊標資料
10.1.7 關閉遊標
10.2 操縱遊標資料
10.2.1 loop迴圈
10.2.2 while迴圈
10.2.3 遊標for迴圈
10.2.4 修改遊標資料
10.3 遊標變數
10.3.1 遊標變數簡介
10.3.2 聲明遊標變數類型
10.3.3 定義遊標變數
10.3.4 開啟遊標變數
10.3.5 控制遊標變數
10.3.7 處理遊標變數異常
10.3.8 在包中使用遊標變數
10.3.9 遊標變數的限制
10.4 小結
\t第11章 交易處理和鎖定
11.1 交易處理簡介
11.1.1 什麼是交易處理
11.1.2 使用commit提交事務
11.1.3 使用rollback復原事務
11.1.4 使用savepoint儲存點
11.1.5 使用set transaction設定事務屬性
11.2 使用鎖定
11.2.1 理解鎖定
11.2.2 記錄鎖定
11.2.3 表鎖定
11.2.4 使用lock table
11.3 小結
\t第12章 異常處理機制
12.1 理解異常處理
12.1.1 異常處理簡介
12.1.2 異常處理文法
12.1.3 預定義異常
12.2 自訂異常
12.2.1 聲明異常
12.2.2 範圍範圍
12.2.3 使用exception_init
12.2.4 使用raise_application_error
12.2.5 拋出異常
12.2.6 處理異常
12.2.7 使用sqlcode和sqlerrm
12.3 異常的傳遞
12.3.1 執行時異常傳遞
12.3.2 聲明時異常傳遞
12.3.3 異常處理器中的異常
12.3.4 重新拋出異常
12.3.5 異常處理準則
12.4 小結
\t第3篇 pl/sql進階編程
第13章 pl/sql子程式
13.1 子程式結構
13.1.1 子程式簡介
13.1.2 子程式的優點
13.1.3 建立過程
13.1.4 建立函數
13.1.5 return語句
13.1.6 查看和刪除子程式
13.2 子程式參數
13.2.1 形參與實參
13.2.2 參數模式
13.2.3 形式參數的約束
13.2.4 參數傳遞方式
13.2.5 參數預設值
13.2.6 使用nocopy編譯提示
13.3 子程式進階技術
13.3.1 在sql中調用子程式
13.3.2 嵌套子程式
13.3.3 子程式的前向聲明
13.3.4 重載子程式
13.3.5 子程式自治事務
13.3.6 遞迴調用子程式
13.3.7 理解子程式依賴性
13.3.8 子程式許可權管理
13.4 小結
\t第14章 包
14.1 理解pl/sql包
14.1.1 什麼是包
14.1.2 包的優點
14.1.3 定義包規範
14.1.4 定義包體
14.1.5 調用包組件
14.1.6 編譯和調試包
14.1.7 查看包的原始碼
14.2 包的進階技術
14.2.1 包重載
14.2.2 包初始化
14.2.3 包的純度層級
14.2.4 包使用權限設定
14.2.5 在包中使用遊標
14.3 管理資料庫中的包
14.3.1 查看和刪除包
14.3.2 檢查包的依賴性
14.4 使用系統包
14.4.1 使用dbms_output包
14.4.2 使用dbms_pipe包
14.4.3 使用dbms_alter包
14.4.4 使用dbms_job包
14.5 小結
\t第15章 觸發器
15.1 理解觸發器
15.1.1 觸發器簡介
15.1.2 定義觸發器
15.1.3 觸發器的分類
15.2 dml觸發器
15.2.1 觸發器的執行順序
15.2.2 定義dml觸發器
15.2.3 調試觸發器
15.2.4 使用語句觸發器
15.2.5 使用old和new謂詞
15.2.6 使用referencing子句
15.2.7 使用when子句
15.2.8 使用條件謂詞
15.2.9 控制觸發順序
15.2.10 觸發器限制
15.2.11 使用自治事務
15.3 替代觸發器
15.3.1 替代觸發器的作用
15.3.2 定義替代觸發器
15.3.3 update與delete替代觸發器
15.3.4 巢狀表格替代觸發器
15.4 系統事件觸發器
15.4.1 定義系統觸發器
15.4.2 觸發事件列表
15.4.3 觸發器屬性列表
15.4.4 屬性函數使用樣本
15.4.5 定義servererror觸發器
15.4.6 觸發器的事務與約束
15.5 觸發器的管理
15.5.1 查看觸發器原始碼
15.5.2 刪除和禁用觸發器
15.5.3 名稱與許可權的管理
15.6 小結
\t第16章 動態sql語句
16.1 理解動態sql語句
16.1.1 動態sql基礎
16.1.2 動態sql使用時機
16.1.3 本地動態sql
16.2 使用execute immediate
16.2.1 execute immediate文法
16.2.2 執行sql語句和pl/sql語句塊
16.2.3 使用綁定變數
16.2.4 使用returnning into子句
16.2.5 執行單行查詢
16.2.6 指定參數模式
16.3 多行查詢語句
16.3.1 使用open-for語句
16.3.2 使用fetch語句
16.3.3 關閉遊標變數
16.4 使用大量繫結
16.4.1 批量execute immediate文法
16.4.2 使用批量fetch語句
16.4.3 使用批量forall語句
16.5 動態sql的使用建議
16.5.1 用綁定變數改善效能
16.5.2 使用重複預留位置
16.5.3 使用調用者許可權
16.5.4 傳遞null參數
16.5.5 動態sql異常處理
16.6 小結
\t第4篇 pl/sql進階編程
第17章 物件導向編程
17.1 對象基礎
17.1.1 物件導向簡介
17.1.2 什麼是物件類型
17.1.3 pl/sql中對象的組成結構
17.2 定義物件類型
17.2.1 定義物件類型
17.2.2 定義對象體
17.2.3 定義屬性
17.2.4 定義方法
17.2.5 使用self關鍵字
17.2.6 定義建構函式
17.2.7 定義map和order方法
17.2.8 使用物件類型
17.2.9 使用嵌套物件類型
17.2.10 對象繼承
17.2.11 方法重載
17.3 管理對象表
17.3.1 定義對象表
17.3.2 插入對象表
17.3.3 檢索對象表
17.3.4 更新對象表
17.3.5 刪除對象表
17.3.6 建立對象列
17.3.7 使用物件檢視
17.4 管理物件類型
17.4.1 查看物件類型
17.4.2 修改物件類型
17.5 小結
\t第18章 pl/sql效能最佳化建議
18.1 瞭解pl/sql程式效能
18.1.1 影響效能常見原因
18.1.2 使用dbms_profiler包
18.1.3 使用dbms_trace包
18.2 pl/sql效能最佳化技巧
18.2.1 理解查詢執行計畫
18.2.2 聯結查詢的表順序
18.2.3 指定where條件順序
18.2.4 避免使用*符號
18.2.5 使用decode函數
18.2.6 使用where而非having
18.2.7 使用union 而非or
18.2.8 使用exists而非in
18.2.9 避免低效的pl/sql流程式控制制語句
18.2.10 避免隱式類型的轉換
18.3 小結
\t第5篇 pl/sql案例實戰
第19章 企業ic晶片欠料計算程式
19.1 系統設計
19.1.1 程式需求簡介
19.1.2 資料表er關係圖
19.1.3 系統總體流程
19.1.4 樣本環境的搭建
19.2 系統編碼實現
19.2.1 建立包規範
19.2.2 初始化資料
19.2.3 擷取ic需求量
19.2.4 ic物料檢查函數
19.2.5 擷取已走貨ic數量
19.2.6 擷取銷售訂單數量
19.2.7 計算企業ic需求量
19.2.8 預備下次計算資料
19.2.9 定義調用主程式
19.3 調試和部署應用程式
19.3.1 編譯應用程式
19.3.2 調試應用程式
19.3.3 查看程式結果
19.3.4 部署到生產伺服器
19.4 小結
\t第20章 pl/sql郵件發送程式
20.1 系統設計
20.1.1 程式需求簡介
20.1.2 使用utl_ smtp寄送電子郵件
20.1.3 系統總體流程
20.1.4 樣本環境的搭建
20.2 系統編碼實現
20.2.1 認識mime類型
20.2.2 實現mime類型郵件發送
20.2.3 定義包規範
20.2.4 郵件初始化函數xm_init
20.2.5 發送並關閉串連xm_close
20.2.6 發送html郵件
20.2.7 發送郵件附件
20.2.8 發送excel附件內容
20.2.9 寫入工作薄wb_header
20.2.10 寫入工作表xm_worksheet
20.2.11 寫入表格行xm_ws_row
20.2.12 寫入工作表尾資訊
20.2.13 執行sql語句寫入工作表
20.3 編譯和部署應用程式
20.3.1 編譯與調試應用程式
20.3.2 驗證測試結果
20.3.3 部署到生產伺服器
20.4 小結
Oracle+PL+SQL從入門到精通.丁士鋒.清華大學出版社.2012