出版時間:2012-6 出版社:清華大學 作者:丁士鋒 頁數(shù):655
Tag標簽:無
內(nèi)容概要
本書以面向應用為原則,深入淺出的介紹了oracle平臺上使用pl/sql語言進行數(shù)據(jù)庫開發(fā)的技術。通過大量的示例,詳細介紹了pl/sql的語言特性、使用技巧,同時配以2個在實際工作中的示例來深入的剖析了pl/sql進行oracle開發(fā)的方方面面。
本書附帶1張dvd光盤,內(nèi)容為作者為本書錄制的全程語音教學視頻及本書所涉及的源代碼。
本書共分為20章,分為5大篇。涵蓋的內(nèi)容主要有pl/sql語言基礎、開發(fā)環(huán)境、變量與類型、控制語句、數(shù)據(jù)表的管理和查詢、數(shù)據(jù)表的操縱、使用pl/sql的記錄與集合、各種內(nèi)置函數(shù)、游標、事務處理、異常處理、子程序、包、面向對象的開發(fā)等等技術點。通過示例性的代碼,由淺入深,詳細介紹了每一個技術要點在實際工作中的應用,對于各種技術要點的應用場合進行了細致的分析。
本書適合于使用pl/sql進行應用程序開發(fā)的人員、對軟件開發(fā)有興趣的學生及愛好者;對數(shù)據(jù)庫管理員、企業(yè)it運維人員也具有很強的指導作用。
作者簡介
丁士鋒
2001年畢業(yè)于國防科技大學計算機學院。有多年的數(shù)據(jù)庫軟件開發(fā)與設計經(jīng)驗,深入理解數(shù)據(jù)庫系統(tǒng)在企業(yè)信息化進程中的應用。多次主導與架構基于Oracle、SQL
Server、IBM DB2等大型數(shù)據(jù)庫系統(tǒng)的集團式信息管理系統(tǒng)建設,多次參與數(shù)據(jù)庫平臺的搭建與各種核心數(shù)據(jù)庫程序代碼的實現(xiàn)。
書籍目錄
第1篇 pl/sql開發(fā)入門
第1章 oracle 11g數(shù)據(jù)庫系統(tǒng)
1.1 關系型數(shù)據(jù)庫系統(tǒng)介紹
1.1.1 什么是關系型數(shù)據(jù)模型
1.1.2 數(shù)據(jù)庫系統(tǒng)范式
1.1.3 關系型數(shù)據(jù)庫管理系統(tǒng)
1.1.4 使用sql語句與數(shù)據(jù)庫管理系統(tǒng)通信
1.2 初識oracle 11g
1.2.1 oracle 11g簡介
1.2.2 oracle 11g體系結構
1.2.3 如何創(chuàng)建數(shù)據(jù)庫
1.2.4 比較oracle數(shù)據(jù)庫與sql server數(shù)據(jù)庫
1.3 什么是pl/sql
1.3.1 pl/sql是一種語言
1.3.2 pl/sql的執(zhí)行環(huán)境
1.4 搭建pl/sql開發(fā)環(huán)境
1.4.1 使用sql*plus
1.4.2 使用oracle sql developer
1.4.3 pl/sql developer開發(fā)pl/sql
.1.4.4 quest toad開發(fā)pl/sql
1.4.5 使用oracle文檔庫
1.5 小結
第2章 pl/sql基本概念
2.1 功能特點
2.1.1 結構化程序設計
2.1.2 與sql語言整合
2.1.3 面向對象開發(fā)
2.1.4 模塊化應用程序開發(fā)
2.1.5 提高應用程序性能
2.2 語言特性
2.2.1 pl/sql塊結構
2.2.2 變量和類型
2.2.3 程序控制語句
2.2.4 過程、函數(shù)與包
2.2.5 觸發(fā)器
2.2.6 結構化異常處理
2.2.7 集合與記錄
2.2.8 游標
2.2.9 動態(tài)sql
2.3 編碼風格
2.3.1 pl/sql詞法單位
2.3.2 縮進
2.3.3 標識符命名規(guī)則
2.3.4 大小寫風格
2.3.5 使用工具格式化代碼
2.4 小結
第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 數(shù)據(jù)類型
3.2.1 字符類型
3.2.2 數(shù)字類型
3.2.3 日期和時間類型
3.2.4 布爾類型
3.2.5 lob對象類型
3.2.6 引用類型
3.2.7 復合類型
3.2.8 用戶自定義子類型
3.2.9 數(shù)據(jù)類型轉換
3.3 運算符和表達式
3.3.1 運算符類型
3.3.2 運算符的優(yōu)先級
3.3.3 表達式類型
3.4 小結
第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 循環(huán)控制語句
4.2.1 loop循環(huán)
4.2.2 使用exit退出循環(huán)
4.2.3 使用exit-when退出循環(huán)
4.2.4 使用continue繼續(xù)執(zhí)行循環(huán)
4.2.5 while-loop循環(huán)
4.2.6 for-loop循環(huán)
4.2.7 循環(huán)語句使用建議
4.3 順序控制語句
4.3.1 goto語句和標簽
4.3.2 null語句
4.4 小結
第2篇 pl/sql開發(fā)基礎
第5章 管理數(shù)據(jù)表
5.1 創(chuàng)建表
5.1.1 數(shù)據(jù)定義語言ddl
5.1.2 create table語句
5.1.3 在設計器中創(chuàng)建表
5.1.4 創(chuàng)建表副本
5.2 創(chuàng)建約束
5.2.1 創(chuàng)建主鍵約束
5.2.2 創(chuàng)建外鍵約束
5.2.3 創(chuàng)建檢查約束
5.2.4 查看表約束
5.3 修改表
5.3.1 修改表列
5.3.2 修改約束
5.3.3 移除數(shù)據(jù)表
5.3.4 在設計器中修改表
5.4 索引
5.4.1 索引簡介
5.4.2 索引原理
5.4.3 創(chuàng)建索引
5.4.4 修改索引
5.4.5 刪除索引
5.5 使用視圖
5.5.1 視圖簡介
5.5.2 創(chuàng)建視圖
5.5.3 修改視圖
5.5.4 刪除視圖
5.6 小結
第6章 查詢數(shù)據(jù)表
6.1 簡單查詢
6.1.1 查詢表數(shù)據(jù)
6.1.2 指定查詢條件
6.1.3 排序
6.1.4 使用函數(shù)
6.1.5 統(tǒng)計函數(shù)
6.1.6 分組統(tǒng)計
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 小結
第7章 操縱數(shù)據(jù)表
7.1 插入記錄
7.1.1 數(shù)據(jù)操縱語言dml
7.1.2 插入單行記錄
7.1.3 插入默認值和null值
7.1.4 使用子查詢插入多行數(shù)據(jù)
7.1.5 使用insert插入多表數(shù)據(jù)
7.2 更新記錄
7.2.1 更新單行記錄
7.2.2 使用子查詢更新記錄
7.2.3 使用merge合并表行
7.3 刪除記錄
7.3.1 刪除單行記錄
7.3.2 使用子查詢刪除記錄
7.3.3 使用truncate清除表數(shù)據(jù)
7.4 提交和回滾記錄
7.4.1 提交更改
7.4.2 回滾更改
7.5 使用序列
7.5.1 序列簡介
7.5.2 創(chuàng)建數(shù)據(jù)序列
7.5.3 nextval和currval偽列
7.5.4 使用數(shù)據(jù)序列
7.5.5 修改序列
7.5.6 刪除序列
7.6 同義詞
7.6.1 同義詞簡介
7.6.2 創(chuàng)建和使用同義詞
7.7 小結
第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 數(shù)據(jù)庫中的嵌套表
8.2.7 定義變長數(shù)組
8.2.8 操縱變長數(shù)組
8.2.9 數(shù)據(jù)庫中的變長數(shù)組
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 小結
第9章 sql內(nèi)置函數(shù)
9.1 基本函數(shù)
9.1.1 字符型函數(shù)
9.1.2 數(shù)字型函數(shù)
9.1.3 日期時間函數(shù)
9.1.4 類型轉換函數(shù)
9.1.5 分組函數(shù)
9.1.6 其他函數(shù)
9.2 oracle分析函數(shù)
9.2.1 什么是分析函數(shù)
9.2.2 基本語法
9.2.3 分析函數(shù)結構
9.2.4 分析函數(shù)列表
9.3 分析函數(shù)使用示例
9.3.1 記錄排名
9.3.2 首尾記錄查詢
9.3.3 前后排名查詢
9.3.4 層次查詢
9.3.5 范圍統(tǒng)計查詢
9.3.6 相鄰記錄比較
9.3.7 抑制重復
9.3.8 行列轉換查詢
9.3.9 在pl/sql中使用分析函數(shù)
9.4 小結
第10章 使用游標
10.1 游標基本結構
10.1.1 游標簡介
10.1.2 游標分類
10.1.3 定義游標類型
10.1.4 打開游標
10.1.5 使用游標屬性
10.1.6 提取游標數(shù)據(jù)
10.1.7 批量提取游標數(shù)據(jù)
10.1.7 關閉游標
10.2 操縱游標數(shù)據(jù)
10.2.1 loop循環(huán)
10.2.2 while循環(huán)
10.2.3 游標for循環(huán)
10.2.4 修改游標數(shù)據(jù)
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 小結
第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 小結
第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 執(zhí)行時異常傳遞
12.3.2 聲明時異常傳遞
12.3.3 異常處理器中的異常
12.3.4 重新拋出異常
12.3.5 異常處理準則
12.4 小結
第3篇 pl/sql進階編程
第13章 pl/sql子程序
13.1 子程序結構
13.1.1 子程序簡介
13.1.2 子程序的優(yōu)點
13.1.3 創(chuàng)建過程
13.1.4 創(chuàng)建函數(shù)
13.1.5 return語句
13.1.6 查看和刪除子程序
13.2 子程序參數(shù)
13.2.1 形參與實參
13.2.2 參數(shù)模式
13.2.3 形式參數(shù)的約束
13.2.4 參數(shù)傳遞方式
13.2.5 參數(shù)默認值
13.2.6 使用nocopy編譯提示
13.3 子程序進階技術
13.3.1 在sql中調(diào)用子程序
13.3.2 嵌套子程序
13.3.3 子程序的前向聲明
13.3.4 重載子程序
13.3.5 子程序自治事務
13.3.6 遞歸調(diào)用子程序
13.3.7 理解子程序依賴性
13.3.8 子程序權限管理
13.4 小結
第14章 包
14.1 理解pl/sql包
14.1.1 什么是包
14.1.2 包的優(yōu)點
14.1.3 定義包規(guī)范
14.1.4 定義包體
14.1.5 調(diào)用包組件
14.1.6 編譯和調(diào)試包
14.1.7 查看包的源代碼
14.2 包的進階技術
14.2.1 包重載
14.2.2 包初始化
14.2.3 包的純度級別
14.2.4 包權限設置
14.2.5 在包中使用游標
14.3 管理數(shù)據(jù)庫中的包
14.3.1 查看和刪除包
14.3.2 檢查包的依賴性
14.4 使用系統(tǒng)包
14.4.1 使用dbms_output包
14.4.2 使用dbms_pipe包
14.4.3 使用dbms_alter包
14.4.4 使用dbms_job包
14.5 小結
第15章 觸發(fā)器
15.1 理解觸發(fā)器
15.1.1 觸發(fā)器簡介
15.1.2 定義觸發(fā)器
15.1.3 觸發(fā)器的分類
15.2 dml觸發(fā)器
15.2.1 觸發(fā)器的執(zhí)行順序
15.2.2 定義dml觸發(fā)器
15.2.3 調(diào)試觸發(fā)器
15.2.4 使用語句觸發(fā)器
15.2.5 使用old和new謂詞
15.2.6 使用referencing子句
15.2.7 使用when子句
15.2.8 使用條件謂詞
15.2.9 控制觸發(fā)順序
15.2.10 觸發(fā)器限制
15.2.11 使用自治事務
15.3 替代觸發(fā)器
15.3.1 替代觸發(fā)器的作用
15.3.2 定義替代觸發(fā)器
15.3.3 update與delete替代觸發(fā)器
15.3.4 嵌套表替代觸發(fā)器
15.4 系統(tǒng)事件觸發(fā)器
15.4.1 定義系統(tǒng)觸發(fā)器
15.4.2 觸發(fā)器事件列表
15.4.3 觸發(fā)器屬性列表
15.4.4 屬性函數(shù)使用示例
15.4.5 定義servererror觸發(fā)器
15.4.6 觸發(fā)器的事務與約束
15.5 觸發(fā)器的管理
15.5.1 查看觸發(fā)器源代碼
15.5.2 刪除和禁用觸發(fā)器
15.5.3 名稱與權限的管理
15.6 小結
第16章 動態(tài)sql語句
16.1 理解動態(tài)sql語句
16.1.1 動態(tài)sql基礎
16.1.2 動態(tài)sql使用時機
16.1.3 本地動態(tài)sql
16.2 使用execute immediate
16.2.1 execute immediate語法
16.2.2 執(zhí)行sql語句和pl/sql語句塊
16.2.3 使用綁定變量
16.2.4 使用returnning into子句
16.2.5 執(zhí)行單行查詢
16.2.6 指定參數(shù)模式
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 動態(tài)sql的使用建議
16.5.1 用綁定變量改善性能
16.5.2 使用重復占位符
16.5.3 使用調(diào)用者權限
16.5.4 傳遞null參數(shù)
16.5.5 動態(tài)sql異常處理
16.6 小結
第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 定義構造函數(shù)
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 創(chuàng)建對象列
17.3.7 使用對象視圖
17.4 管理對象類型
17.4.1 查看對象類型
17.4.2 修改對象類型
17.5 小結
第18章 pl/sql性能優(yōu)化建議
18.1 了解pl/sql程序性能
18.1.1 影響性能常見原因
18.1.2 使用dbms_profiler包
18.1.3 使用dbms_trace包
18.2 pl/sql性能優(yōu)化技巧
18.2.1 理解查詢執(zhí)行計劃
18.2.2 聯(lián)接查詢的表順序
18.2.3 指定where條件順序
18.2.4 避免使用*符號
18.2.5 使用decode函數(shù)
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 小結
第5篇 pl/sql案例實戰(zhàn)
第19章 企業(yè)ic芯片欠料計算程序
19.1 系統(tǒng)設計
19.1.1 程序需求簡介
19.1.2 數(shù)據(jù)表er關系圖
19.1.3 系統(tǒng)總體流程
19.1.4 示例環(huán)境的搭建
19.2 系統(tǒng)編碼實現(xiàn)
19.2.1 創(chuàng)建包規(guī)范
19.2.2 初始化數(shù)據(jù)
19.2.3 獲取ic需求量
19.2.4 ic物料檢查函數(shù)
19.2.5 獲取已走貨ic數(shù)量
19.2.6 獲取銷售訂單數(shù)量
19.2.7 計算企業(yè)ic需求量
19.2.8 預備下次計算數(shù)據(jù)
19.2.9 定義調(diào)用主程序
19.3 調(diào)試和部署應用程序
19.3.1 編譯應用程序
19.3.2 調(diào)試應用程序
19.3.3 查看程序結果
19.3.4 部署到生產(chǎn)服務器
19.4 小結
第20章 pl/sql郵件發(fā)送程序
20.1 系統(tǒng)設計
20.1.1 程序需求簡介
20.1.2 使用utl_ smtp發(fā)送電子郵件
20.1.3 系統(tǒng)總體流程
20.1.4 示例環(huán)境的搭建
20.2 系統(tǒng)編碼實現(xiàn)
20.2.1 認識mime類型
20.2.2 實現(xiàn)mime類型郵件發(fā)送
20.2.3 定義包規(guī)范
20.2.4 郵件初始化函數(shù)xm_init
20.2.5 發(fā)送并關閉連接xm_close
20.2.6 發(fā)送html郵件
20.2.7 發(fā)送郵件附件
20.2.8 發(fā)送excel附件內(nèi)容
20.2.9 寫入工作薄wb_header
20.2.10 寫入工作表xm_worksheet
20.2.11 寫入表格行xm_ws_row
20.2.12 寫入工作表尾信息
20.2.13 執(zhí)行sql語句寫入工作表
20.3 編譯和部署應用程序
20.3.1 編譯與調(diào)試應用程序
20.3.2 驗證測試結果
20.3.3 部署到生產(chǎn)服務器
20.4 小結
章節(jié)摘錄
版權頁: 插圖: 第3章 變量和類型 變量是一些內(nèi)存單元,用來存儲不同類型的數(shù)據(jù),顧名思義,變量的內(nèi)容在運行期間可以發(fā)生變化,為一個變量指定不同值的過程叫做賦值。PL/SQL語句塊通過使用變量來與數(shù)據(jù)庫進行通信,比如從數(shù)據(jù)庫中獲取數(shù)據(jù)的結果,或者將變量的內(nèi)容插入數(shù)據(jù)庫中。變量在PL/SQL語句塊的聲明區(qū)中定義,每個變量都有一個特定的類型,描述了可以在變量中存儲的信息類別。 3.1 變 量 在定義變量時,一定要為其指定一個類型,類型可以是PL/SQL類型或SQL語言的類型,一旦變量的類型確定,那么變量中所能存儲的值也就確定了,因此盡管變量的值會經(jīng)常改變,但是值的類型是不可以變化的。 3.1.1 變量的聲明 變量通常在PL/SQL塊、子程序和包的聲明部分進行定義,需要為變量指定一個數(shù)據(jù)類型或初始值,語法如下所示。 variable_name(CONSTANT)type(NOT NULL)(:=value); 在聲明中的variable name用于指定變量名,變量名的命名要符合在第2章中介紹的標識符命名規(guī)范:type類型是變量需要使用的數(shù)據(jù)類型,可以使用所有SQL類型或PL/SQL類型。稍后將會詳細介紹可用的類型。用方括號口括起來的是可選的部分,變量定義中的3個可選部分的含義如下所示。 CONSTANT表示聲明為一個常量,常量在定義時需要指定初始值,一旦定義其值,不能再被改變。 NOT NULL用于約束變量的值不能為空。 :——value用于為變量賦初始值。 代碼3.1在聲明部分定義了4個變量。
編輯推薦
《Oracle PL/SQL從入門到精通》適合于使用PL/SQL進行應用程序開發(fā)的人員、對軟件開發(fā)有興趣的學生及愛好者閱讀和參考;對數(shù)據(jù)庫管理員、企業(yè)IT運維人員也具有很強的指導作用。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載