內 容 簡 介SQL是關系數據庫的基本操作語言。它主要包括數據查詢、數據操縱、數據定義等功能,是應用程序與數據庫進行交互操作的接口。PL/SQL是Oracle特有的編程語言,它可以像其他高級編程語言一樣,編寫出各種完成數據庫操作功能的程序。由于PL/SQL由Oracle系統本身編譯執行,所以程序運行效率更高。本書為Oracle數據庫應用開發人員提供了SQL使用指南和PL/SQL編程技術。通過對本書的學習,讀者不僅可以掌握SQL和PL/SQL的基礎知識,還可以掌握Oracle 11g SQL和PL/SQL的許多高級特征。本書的編寫既考慮了SQL和PL/SQL的初學者,同時也兼顧到了有經驗的PL/SQL編程人員,因此本書可作為高等院校計算機相關專業的輔助教材,也可作為各類高級數據庫編程人員的參考書,還可以作為Oracle 11g培訓班的教材。
前 言Oracle數據庫是世界領先、性能優異的大型數據庫管理系統,憑借極大的并發處理數據量,極高的可靠性、安全性和可擴展性贏得了廣大高端用戶的青睞,廣泛應用于金融、通信、航空等領域。Oracle數據庫早期主要應用于UNIX操作系統,影響了它的廣泛應用。而在Oracle公司提供了基于Windows平臺的Oracle版本以后,Oracle數據庫在國內外擁有了更為廣泛的應用市場。近些年來,隨著國內中小企業對數據庫可靠性、安全性要求的提高,基于Windows平臺的Oracle數據庫服務器獲得了廣泛青睞。隨之而來,對Oracle數據庫管理和開發人員的數量需求的不斷增加,素質要求不斷提高。本書的編寫既考慮了Oracle數據庫管理和開發的初學者,同時也兼顧到了有一定基礎的管理和開發人員。凡是想學習SQL語句或利用PL/SQL提高Oracle數據庫管理和開發能力的人士,都可以從本書獲得借鑒。本書分3個部分共12章。其中第1部分對Oracle 11g數據庫進行了概述,第2部分用大量范例詳解了SQL語句,第3部分精選出了可供借鑒的PL/SQL編程實例。各部分具體內容如下。第1部分為第1~3章,主要內容包括:數據庫及Oracle 11g的產生與發展、數據庫分類、SQL和PL/SQL簡介、SQL和PL/SQL開發環境簡介、本書中使用的數據庫的建立。第1部分為全書作了必要的鋪墊,建立了本書中使用的數據庫,詳細地介紹了SQL語句和PL/SQL編程調試開發環境。第2部分為第4~9章,主要內容包括:數據查詢語句(SELECT-Query Statements);數據操縱語言(Data Manipulation Language,DMI),其中包括INSERT語句、UPDATE語句、DELETE語句;事務控制語句(Transaction Control Statements,TC),其中包括COMMIT語句、ROLLBACK語句、SAVEPOINT語句;數據控制語言(Data Control Language,DCL),其中包括GRANT語句、REVOKE語句;數據定義語言(Data Definition Language,DDL),其中包括CREATE語句、ALTER語句、DROP語句、RENAME語句、TRUNCATE語句。對于上述各種類型的SQL語句的講述,書中均結合范例數據庫給出了詳細的說明。第3部分為第10~12章,主要包括兩方面內容:一是PL/SQL程序設計基礎知識;二是PL/SQL高級編程特性。前者包括PL/SQL程序基本結構(順序、分支、循環),以及異常處理、游標等。后者包括復合數據類型、構成PL/SQL程序的基本模塊(過程、函數、包),以及觸發器等。對于PL/SQL程序設計的講述,書中均結合范例數據庫給出了詳盡的實例。讀者可訪問清華大學出版社網站(http://www.tup.tsinghua.org.cn)下載本書范例程序的全部源代碼。本書由薛貴軍、周振江、梁大為編著,其中薛貴軍編寫了第1、3、8~12章;周振江編寫了第2、4、5章;梁大為編寫了第6、7章,并負責全書的統稿工作。由于編者水平有限,本書難免有不足之處,懇請廣大讀者批評指正!編 者
目 錄
第1章 Oracle簡介1.1 數據庫的產生與發展1.1.1 數據管理技術的產生與發展1.1.2 數據庫技術的發展1.1.3 關系數據庫產品簡介1.2 Oracle的產生與發展1.3 Oracle 11g簡介1.3.1 Oracle 數據庫系統的特點1.3.2 Oracle版本號的含義1.3.3 Oracle 11g的新特性第2章 數據庫的建立2.1 數據庫的邏輯設計2.1.1 關系數據庫設計基礎2.1.2 關系數據庫規范化2.2 數據庫的物理設計2.3 數據庫實施2.4 創建數據庫2.4.1 數據庫創建前的準備2.4.2 安裝數據庫服務器并創建
數據庫第3章 SQL與PL/SQL概述3.1 SQL與PL/SQL簡介3.1.1 SQL簡介3.1.2 PL/SQL簡介3.2 SQL*Plus 簡介3.3 范例數據庫表的建立3.3.1 Oracle 11g基本數據類型3.3.2 定義表的結構3.3.3 查看表結構3.3.4 刪除表3.3.5 添加數據3.3.6 查看數據3.3.7 刪除數據第4章 單表查詢4.1 簡單查詢4.1.1 查詢指定列4.1.2 改變輸出4.1.3 空值處理4.2 條件查詢4.2.1 單一條件查詢4.2.2 復合條件查詢4.3 記錄排序4.3.1 按單一列排序4.3.2 按多列排序4.4 分組查詢4.4.1 列函數及其應用4.4.2 GROUP BY子句4.4.3 HAVING子句第5章 子查詢與集合操作5.1 子查詢5.1.1 單行子查詢5.1.2 多行子查詢5.1.3 多列子查詢5.1.4 相關子查詢5.1.5 嵌套子查詢5.2 集合操作5.2.1 使用集合操作符5.2.2 集合操作的進一步討論第6章 連接查詢6.1 內連接查詢6.1.1 簡單內連接查詢6.1.2 復雜內連接查詢6.2 外連接查詢6.2.1 左外連接查詢6.2.2 右外連接查詢6.2.3 全外連接查詢6.3 其他特殊連接查詢6.3.1 交叉連接查詢6.3.2 自連接查詢第7章 數據操縱語言與事務處理7.1 數據操縱語言7.1.1 插入數據7.1.2 更新數據7.1.3 刪除數據7.1.4 數據庫完整性7.1.5 含有子查詢的DML語句7.2 數據事務處理7.2.1 顯式處理事務7.2.2 隱式處理事務7.2.3 特殊事務第8章 SQL函數8.1 數字函數8.1.1 數字函數概述8.1.2 數字函數示例8.2 字符函數8.2.1 字符函數概述8.2.2 字符函數示例8.3 日期時間函數8.3.1 日期時間函數概述8.3.2 日期時間函數示例8.4 轉換函數8.4.1 轉換函數概述8.4.2 轉換函數示例第9章 數據控制語言與數據定義
語言9.1 數據控制語言9.1.1 數據庫權限9.1.2 權限控制9.2 表9.2.1 建立表9.2.2 獲得表的相關信息9.2.3 修改表定義9.2.4 修改表名9.2.5 刪除表9.3 索引9.3.1 建立索引9.3.2 獲得索引信息9.3.3 修改索引名字9.3.4 刪除索引9.4 視圖9.4.1 建立視圖9.4.2 使用視圖9.4.3 獲得視圖定義信息9.4.4 修改視圖9.4.5 刪除視圖第10章 PL/SQL編程基礎10.1 PL/SQL基礎10.1.1 PL/SQL塊簡介10.1.2 PL/SQL基本語法要素10.1.3 變量及其數據類型10.2 在PL/SQL中執行SQL語句10.2.1 執行SELECT語句10.2.2 執行DML語句10.2.3 執行事務控制語句10.3 PL/SQL程序控制結構10.3.1 順序結構10.3.2 分支結構10.3.3 循環結構10.3.4 GOTO語句與NULL
語句10.4 異常處理10.4.1 異常的基本概念10.4.2 系統異常處理10.4.3 自定義異常處理10.4.4 使用異常函數10.5 游標10.5.1 游標應用基礎10.5.2 游標的基本應用10.5.3 游標FOR循環10.5.4 游標的復雜應用第11章 復合數據類型11.1 記錄類型11.1.1 定義記錄11.1.2 在SELECT語句中使用
記錄11.1.3 在DML中使用記錄11.2 記錄表類型11.2.1 定義記錄表11.2.2 使用記錄表11.3 聯合數組類型11.3.1 定義聯合數組11.3.2 使用聯合數組11.4 嵌套表類型11.4.1 定義嵌套表11.4.2 使用嵌套表11.5 變長數組類型11.5.1 定義變長數組11.5.2 使用變長數組類型11.6 集合操作11.6.1 集合屬性與方法11.6.2 使用集合操作符第12章 應用程序結構12.1 子程序12.1.1 過程12.1.2 函數12.2 包12.2.1 定義包12.2.2 包的管理12.2.3 調用包12.2.4 包中子程序的重載12.3 觸發器12.3.1 概述12.3.2 DML觸發器12.3.3 INSTEAD OF觸發器12.3.4 系統事件觸發器