本書以面向應用為原則,深入淺出的介紹了oracle平臺上使用pl/sql語言進行數據庫開發的技術。通過大量的示例,詳細介紹了pl/sql的語言特性、使用技巧,同時配以2個在實際工作中的示例來深入的剖析了pl/sql進行oracle開發的方方面面。
本書附帶1張dvd光盤,內容為作者為本書錄制的全程語音教學視頻及本書所涉及的源代碼。
本書共分為20章,分為5大篇。涵蓋的內容主要有pl/sql語言基礎、開發環境、變量與類型、控制語句、數據表的管理和查詢、數據表的操縱、使用pl/sql的記錄與集合、各種內置函數、游標、事務處理、異常處理、子程序、包、面向對象的開發等等技術點。通過示例性的代碼,由淺入深,詳細介紹了每一個技術要點在實際工作中的應用,對于各種技術要點的應用場合進行了細致的分析。
本書適合于使用pl/sql進行應用程序開發的人員、對軟件開發有興趣的學生及愛好者;對數據庫管理員、企業it運維人員也具有很強的指導作用。
13500冊,數千讀者網絡點贊和好評,PL/SQL經典之作。
熱銷圖書,大量讀者好評!Oracle愛好者推薦閱讀!提供300多個簡潔易懂的實例,帶領讀者快速上手
提供2個有很高參考價值的真實項目案例,提升實戰水平,提供各種實際應用場景,將知識點快速應用于實際開發
代碼精煉,注釋豐富,通過研讀代碼,便可獲得大量經驗,提供7.8小時多媒體教學視頻、教學PPT
涵蓋PL/SQL的各種技術細節,提供系統化的學習方案,對PL/SQL開發用到的各種技術做了原理分析和實戰體驗
真正做到了從程序員的視角剖析PL/SQL的應用,深入淺出地介紹PL/SQL在實際開發中的要點
丁士鋒,2001年畢業于國防科技大學計算機學院。有多年的數據庫軟件開發與設計經驗,深入理解數據庫系統在企業信息化進程中的應用。多次知名品牌與架構基于Oracle、SQL Server、IBM DB2等大型數據庫系統的集團式信息管理系統建設,多次參與數據庫平臺的搭建與各種核心數據庫程序代碼的實現。
第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 使用sqlplus
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 小結
第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 小結
第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 小結
第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 小結
第2篇 pl/sql開發基
第5章 管理數據表
5.1 創建表
5.1.1 數據定義語言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 小結
第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 小結
第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 小結
第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 小結
第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 小結
第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 小結
第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 執行時異常傳遞
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 子程序的優點
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 小結
第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 小結
第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 小結
第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 小結
第4篇 pl/sql高級編程
第17章 面向對象編程
<
第3章 變量和類型
變量是一些內存單元,用來存儲不同類型的數據,顧名思義,變量的內容在運行期間可以發生變化,為一個變量指定不同值的過程叫做賦值。PL/SQL語句塊通過使用變量來與數據庫進行通信,比如從數據庫中獲取數據的結果,或者將變量的內容插入數據庫中。變量在PL/SQL語句塊的聲明區中定義,每個變量都有一個特定的類型,描述了可以在變量中存儲的信息類別。
3.1 變 量
在定義變量時,一定要為其指定一個類型,類型可以是PL/SQL類型或SQL語言的類型,一旦變量的類型確定,那么變量中所能存儲的值也就確定了,因此盡管變量的值會經常改變,但是值的類型是不可以變化的。
3.1.1 變量的聲明
變量通常在PL/SQL塊、子程序和包的聲明部分進行定義,需要為變量指定一個數據類型或初始值,語法如下所示。
variable_name(CONSTANT)type(NOT NULL)(:=value);
在聲明中的variable name用于指定變量名,變量名的命名要符合在第2章中介紹的標識符命名規范:type類型是變量需要使用的數據類型,可以使用所有SQL類型或PL/SQL類型。稍后將會詳細介紹可用的類型。用方括號口括起來的是可選的部分,變量定義中的3個可選部分的含義如下所示。
CONSTANT表示聲明為一個常量,常量在定義時需要指定初始值,一旦定義其值,不能再被改變。
NOT NULL用于約束變量的值不能為空。
:——value用于為變量賦初始值。
代碼3.1在聲明部分定義了4個變量。
書不錯,正版
可以,不錯
比較好,比較基礎
贊贊贊贊好
看了一下還不錯,比較基礎,節奏把握的比較好,適合初學者。印刷的紙張還行,就是價格稍微有點…,收到的時候,書角被砸了一點。對學習有很大的幫助,總體還不錯,好評。
very good
專業書,慢慢學