內容簡介
本書以通俗易懂的語言,豐富多彩的實例,詳細介紹了使用Oracle 11g進行數據管理的各方面技術。全書共分12章,包括Oracle 11g基礎介紹,SQL語言、函數,SQL單表查詢、子查詢與集合操作,SQL連接查詢,SQL*Plus命令,PL/SQL編程,過程、函數、觸發器和包,Oracle 11g的閃回技術,人力資源管理系統等。
本書為Oracle數據庫應用開發人員提供了SQL使用指南和PL/SQL編程技術。通過本書讀者不僅可以掌握SQL和PL/SQL的基礎知識,而且還可以掌握Oracle 11g SQL和PL/SQL的許多高級特征。
本書可作為高等院校計算機相關專業或Oracle 11g培訓班的教材,也可作為各類高級數據庫編程人員的參考書。本書的編寫既考慮了SQL和PL/SQL的初學者,同時也兼顧到了有經驗的PL/SQL編程人員。
前 言
Oracle公司是世界排名前列的國際大型企業。Oracle數據庫是世界領先、性能優異的大型數據庫管理系統,廣泛地應用在金融、通信、航空等領域。當前,雖然有多種數據庫管理系統可供用戶選擇,但Oracle數據庫以其處理的并發數據量極大,極高的可靠性、安全性和可擴展性贏得了廣大高端用戶的青睞。早期Oracle數據庫主要應用于UNIX操作系統,影響了它的廣泛應用。在Oracle公司提供了基于Windows平臺的版本以后,Oracle數據庫在國內外占領了更為廣泛的應用市場。近些年來,隨著國內中小企業對數據庫可靠性、安全性要求的提高,基于Windows平臺的Oracle數據庫服務器獲得了廣泛關注。隨之而來,對Oracle數據庫管理和開發的人員的數量需求不斷增加,素質要求不斷提高。本書適用于Oracle數據庫管理和開發的初學者,同時也適用于有一定基礎的管理和開發人員使用。凡是想學習SQL語句或利用PL/SQL提高Oracle數據庫管理和開發能力的人士,都可以從本書獲得借鑒。
本書共分為12章,各章主要內容如下。
第 1 章 Oracle基礎介紹:初步認識Oracle,介紹Oracle 11g數據庫的安裝、啟動、關閉。
第2章 SQL語言、函數基本操作:介紹Oracle內置的SQL函數。
第3章 SQL單表查詢:介紹SELECT語句在一個表中進行數據檢索的使用方法。
第 4 章 SQL子查詢與集合操作:介紹使用子查詢與集合操作進行復雜數據檢索的方法。
第5章 SQL連接查詢:介紹從連接查詢結果中篩選出其中一部分數據的方法。
第 6 章 數據控制語言(DCL)與數據定義語言:介紹數據控制語言(DCL-Data Control Language)與數據定義語言(DDL-Data Definition Language)。數據控制語言(DCL)完成授予和收回用戶對數據庫的使用權限。數據定義語言(DDL)完成建立、修改、刪除表、視圖、索引等功能。
第 7 章 數據操縱語言(DML)與事物處理:主要介紹對數據庫進行數據的增、刪、改的功能的數據操縱(DML)語言。
第8章 SQL*Plus基礎簡介:介紹SQL*Plus系列產品的使用。
第9章 PL/SQL編程基礎:介紹PL/SQL程序設計。
第10章 PL/SQL記錄集合應用:介紹PL/SQL復合數據類型以及使用。
第 11 章 PL/SQL高級應用:介紹PL/SQL的應用程序結構,如子程序(過程和函數)、包、觸發器等。
第 12 章 人力資源管理系統:介紹系統軟件開發過程、講解設計方法,即需求分析、總體設計、功能模塊劃分、數據庫設計以及詳細設計的順序。
總之,本書對Oracle軟件的安裝、SQL函數、PL/SQL程序設計以及Oracle數據庫的體系結構、服務器結構、Oracle數據庫文件、后臺進程進行了全面的講解。在隨書附帶的網絡資源中,提供了本書范例程序的全部源代碼。
本書由章昊、高晶、楊靜、張玉環老師編寫,其中章昊編寫第1、3、8、9、10、11、12章,高晶編寫第2、4、5章,楊靜負責編寫第6、7章,張玉環負責整體統稿。另外,參與書稿編寫的還有陳穩、陳娟濃、李玉光、杜宏巍、黃永生、呂莎莎。
由于編者水平有限,本書難免有不足之處,懇請廣大讀者批評指正!
編 者
目錄
第1章 Oracle基礎介紹 11.1 數據庫概述 21.1.1 數據庫的組成 21.1.2 數據庫實施 31.2 Oracle 11g基本簡介 31.2.1 Oracle版本號的含義 41.2.2 Oracle 11g的新特性 41.2.3 在Windows下安裝Oracle 11g的配置要求 5上機實訓:在Windows環境下安裝Oracle 11g 5本章小結 8習題 9第2章 SQL語言、函數基本操作 112.1 SQL簡介與Oracle 11g基本數據類型 122.1.1 SQL語言的編寫規則 122.1.2 Oracle 11g基本數據類型 132.2 數字函數 152.2.1 數字函數概述 152.2.2 數字函數示例 162.3 字符函數 222.3.1 字符函數概述 222.3.2 字符函數示例 232.4 日期時間函數 272.4.1 日期時間函數概述 272.4.2 日期時間函數示例 272.5 轉換函數 322.5.1 轉換函數概述 322.5.2 轉換函數示例 33上機實訓:輸出字符串ASCII值和字符 36本章小結 37習題 37第3章 SQL單表查詢 393.1 條件查詢 403.1.1 單一條件查詢 413.1.2 復合條件查詢 453.2 記錄排序 493.2.1 按單一列排序 503.2.2 按多列排序 523.3 分組查詢 543.3.1 列函數及其應用 543.3.2 GROUP BY子句 563.3.3 HAVING子句 58上機實訓:對PAY_TABLE表進行編輯操作 58本章小結 60習題 60第4章 SQL子查詢與集合操作 634.1 子查詢 644.1.1 單行子查詢 654.1.2 多行子查詢 674.1.3 多列子查詢 694.1.4 相關子查詢 704.1.5 嵌套子查詢 724.2 集合操作 724.2.1 使用集合操作符 734.2.2 復雜集合操作 78上機實訓:打印符合要求的記錄 82本章小結 83習題 83第5章 SQL連接查詢 855.1 內連接查詢 865.1.1 簡單內連接 875.1.2 復雜內連接 885.2 外連接查詢 905.2.1 左外連接 915.2.2 右外連接 925.2.3 全外連接 935.3 其他特殊連接 955.3.1 交叉連接 955.3.2 自然連接 97上機實訓:在生成的PROJECTS表中追加記錄 99本章小結 99習題 100第6章 數據控制語言與數據定義語言 1016.1 數據控制語言 1026.1.1 數據庫權限 1026.1.2 權限控制 1056.2 表 1106.2.1 建立表 1106.2.2 獲得表的相關信息 1156.2.3 修改表定義 1166.2.4 修改表名 1236.2.5 刪除表 1236.3 索引 1246.3.1 各種類型索引的比較和選擇 1246.3.2 建立索引 1256.3.3 獲得索引信息 1256.3.4 修改索引名字 1266.3.5 刪除索引 1276.3.6 監視索引的空間使用 1276.3.7 查看索引信息 1276.4 視圖 1286.4.1 建立視圖 1296.4.2 使用視圖 1306.4.3 獲得視圖定義信息 1336.4.4 修改視圖 1356.4.5 刪除視圖 1356.5.6 替換視圖 135上機實訓:創建編輯my_emp數據表 136本章小結 137習題 137第7章 數據操縱語言與事務處理 1397.1 數據操縱語言 1407.1.1 插入數據 1407.1.2 更新數據 1417.1.3 刪除數據 1437.1.4 數據庫完整性 1447.1.5 含有子查詢的DML語句 1467.2 數據事務處理 1487.2.1 顯式處理事務 1497.2.2 隱式處理事務 1517.2.3 特殊事務 151上機實訓:編寫在PAY_TABLE表中插入記錄的過程 152本章小結 153習題 153第8章 SQL*Plus基礎簡介 1558.1 SQL*Plus語言基礎 1568.1.1 SQL*Plus的功能與編寫規則 1568.1.2 啟動SQL*Plus連接數據庫 1578.2 使用SQL*Plus的編輯功能 1598.2.1 編輯命令 1598.2.2 保存命令 1628.2.3 加入注釋 1638.2.4 運行命令 1658.2.5 編寫交互命令 1668.2.6 使用綁定變量 1738.2.7 跟蹤語句 177上機實訓:打印出EMP表中各個工資級別的人數 182本章小結 182習題 183第9章 PL/SQL編程基礎 1859.1 PL/SQL語言基礎 1869.1.1 PL/SQL塊 1869.1.2 PL/SQL基本語法要素 1899.1.3 PL/SQL的開發和運行環境 1929.1.4 運行PL/SQL程序 1949.2 在PL/SQL中執行SQL語句 1959.2.1 執行SELECT語句 1959.2.2 執行DML語句 1979.2.3 執行事務處理語句 2039.3 PL/SQL程序控制結構 2049.3.1 順序結構 2049.3.2 分支結構 2049.3.3 循環結構 2109.3.4 GOTO語句與NULL語句 213上機實訓:實現數據交換 215本章小結 215習題 216第10章 PL/SQL記錄集合應用 21710.1 記錄類型 21810.1.1 定義記錄 21810.1.2 在SELECT語句中使用記錄 22010.1.3 在DML中使用記錄 22310.2 記錄表類型 22710.2.1 定義記錄表 22710.2.2 使用記錄表 22810.3 聯合數組類型 23010.3.1 定義聯合數組 23110.3.2 使用聯合數組 23110.4 嵌套表類型 23310.4.1 定義嵌套表 23310.4.2 使用嵌套表 23410.5 變長數組類型 23710.5.1 定義變長數組 23810.5.2 使用變長數組類型 23810.6 集合操作 24110.6.1 集合屬性與方法 24210.6.2 使用集合操作符 250上機實訓:在myEMP表中修改員工工資 256本章小結 257習題 257第11章 PL/SQL高級應用 25911.1 子程序 26011.1.1 過程 26011.1.2 函數 26211.2 包 26311.2.1 定義包 26411.2.2 包的管理 26811.2.3 調用包 27011.2.4 包中子程序的重載 27311.3 觸發器 27711.3.1 觸發器概述 27711.3.2 DML觸發器 27711.3.3 INSTEAD OF觸發器 28011.3.4 系統事件觸發器 28111.4 PL/SQL游標 28311.4.1 游標應用基礎 28311.4.2 游標FOR循環 285上機實訓:創建名為change_record的觸發器 287本章小結 288習題 288第12章 項目實踐--人力資源管理系統 29112.1 系統設計 29212.1.1 需求分析 29212.1.2 總體設計 29212.1.3 功能模塊設計 29312.2 數據庫設計與實現 29412.2.1 數據庫需求設計 29412.2.2 數據邏輯結構設計 29412.3 人力資源管理 29812.3.1 部門信息管理 29812.3.2 員工信息管理 31112.4 考勤管理 32512.4.1 考勤規則管理 32512.4.2 假別管理 32912.4.3 請假管理 33212.5 系統管理 33512.5.1 用戶注冊 33512.5.2 用戶詳細資料顯示 33612.5.3 用戶查詢 33912.5.4 用戶列表顯示 34112.5.5 數據庫操作類 341本章小結 342習題 343參考文獻 344