Oracle 11g設計與開發教程( 簡體 字) | |
作者:曹玉琳 鄭東霞 肖潔 張立杰 | 類別:1. -> 資料庫 -> Oracle |
出版社:清華大學出版社 | 3dWoo書號: 33859 詢問書籍請說出此書號! 有庫存 NT售價: 295 元 |
出版日:9/28/2012 | |
頁數:533 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302291152 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章 數據庫系統概述1
1.1 數據庫的基本概念1 1.1.1 數據和數據庫1 1.1.2 數據庫管理系統2 1.1.3 數據庫系統3 1.2 數據管理技術的發展5 1.2.1 人工管理階段6 1.2.2 文件系統階段7 1.2.3 數據庫系統階段7 1.3 數據庫系統的體系結構10 1.3.1 三級模式結構10 1.3.2 兩級映像功能與數據獨立性12 1.4 練習題12 第2章 關系數據庫設計理論14 2.1 數據模型14 2.1.1 數據模型及分類14 2.1.2 數據模型的組成要素15 2.1.3 幾種主要的數據模型16 2.2 關系模型19 2.2.1 關系數據結構19 2.2.2 關系操作20 2.2.3 關系的完整性約束20 2.3 關系數據庫規范化理論22 2.3.1 數據依賴23 2.3.2 范式及規范化24 2.4 練習題28 第3章 數據庫設計30 3.1 數據庫設計概述30 3.1.1 什么是數據庫設計30 3.1.2 數據庫設計的內容31 3.1.3 數據庫設計的目標與特點31 3.1.4 數據庫設計的方法31 3.1.5 數據庫設計的步驟32 3.2 需求分析34 3.2.1 需求分析的任務34 3.2.2 需求分析的步驟35 3.3 概念結構設計36 3.3.1 概念結構設計的目標和策略36 3.3.2 實體-聯系方法38 3.3.3 采用E-R方法的數據庫概念結構設計41 3.3.4 E-R模型設計實例45 3.4 邏輯結構設計48 3.4.1 邏輯結構設計的步驟48 3.4.2 E-R模型向關系數據模型的轉換49 3.4.3 關系數據模型的優化50 3.5 物理結構設計51 3.5.1 物理結構設計的步驟51 3.5.2 物理結構設計的性能評價52 3.6 數據庫實施53 3.7 數據庫運行和維護54 3.8 練習題54 第4章 安裝Oracle56 4.1 準備工作56 4.1.1 了解硬件需求56 4.1.2 獲取Oracle數據庫及幫助文檔56 4.2 安裝步驟58 4.3 數據字典70 4.3.1 數據字典概述70 4.3.2 靜態數據字典視圖71 4.3.3 動態性能視圖72 4.4 練習題73 第5章 SQLPlus75 5.1 登錄到數據庫75 5.1.1 sqlplus命令75 5.1.2 connect命令78 5.2 SQLPlus的常用命令78 5.2.1 HELP命令79 5.2.2 SET命令80 5.2.3 SHOW命令87 5.2.4 PROMPT命令89 5.2.5 SAVE和@命令89 5.2.6 EDIT命令90 5.2.7 RUN命令90 5.2.8 COLUMN命令91 5.2.9 DESCRIBE命令92 5.2.10 SPOOL命令93 5.2.11 CLEAR命令94 5.3 保存SQLPlus的設置95 5.4 練習題95 第6章 DDL和DML97 6.1 SQL的基本概念97 6.1.1 SQL的歷史97 6.1.2 SQL的組成元素98 6.1.3 空值99 6.1.4 注釋100 6.1.5 SQL語句的分類100 6.2 Oracle的主要數據類型101 6.2.1 字符型101 6.2.2 數值型108 6.2.3 日期時間型112 6.2.4 rowid類型117 6.2.5 大對象類型118 6.2.6 不同數據類型之間的轉換119 6.3 使用CREATE TABLE語句建表120 6.3.1 基本語法120 6.3.2 完整性約束122 6.3.3 使用子查詢創建表129 6.3.4 查看表信息131 6.4 使用ALTER TABLE語句修改表結構132 6.4.1 增加列132 6.4.2 增加約束133 6.4.3 修改列134 6.4.4 修改約束135 6.4.5 重命名表名和列名137 6.4.6 刪除列和約束137 6.4.7 約束的啟用、驗證和延遲141 6.5 使用INSERT語句插入數據147 6.5.1 單行插入147 6.5.2 空字符串與空值148 6.5.3 多行插入148 6.6 使用UPDATE語句更新數據154 6.7 使用DELETE語句刪除數據155 6.8 使用TRUNCATE語句刪除數據155 6.9 刪除表156 6.10 練習題157 第7章 查詢語句159 7.1 查詢語句概述159 7.1.1 基本語法格式159 7.1.2 偽表和偽列160 7.2 單表查詢161 7.2.1 SELECT子句161 7.2.2 FROM子句165 7.2.3 WHERE子句166 7.2.4 DISTINCT關鍵字182 7.2.5 GROUP BY子句與聚合函數183 7.2.6 HAVING子句188 7.2.7 ORDER BY子句189 7.2.8 查詢語句的執行順序194 7.3 多表連接查詢195 7.3.1 內連接195 7.3.2 外連接199 7.3.3 自然連接203 7.3.4 笛卡兒積和交叉連接205 7.3.5 自連接206 7.4 子查詢207 7.4.1 可以使用子查詢的語句208 7.4.2 子查詢的分類208 7.4.3 相關子查詢214 7.5 集合運算217 7.5.1 并集運算217 7.5.2 交集運算219 7.5.3 差集運算219 7.6 練習題220 第8章 Oracle事務管理221 8.1 事務概述221 8.1.1 什么是事務221 8.1.2 事務的4個特性222 8.2 Oracle的事務處理機制222 8.2.1 事務的開始與終止222 8.2.2 事務控制語句223 8.2.3 多版本讀一致性225 8.3 事務的并發控制225 8.3.1 并發操作帶來的問題225 8.3.2 事務的隔離級別226 8.3.3 鎖230 8.4 練習題235 第9章 模式對象237 9.1 視圖237 9.1.1 視圖的概念237 9.1.2 創建視圖238 9.1.3 對視圖進行DML操作241 9.1.4 修改視圖244 9.1.5 刪除視圖244 9.1.6 內聯視圖與前n行查詢244 9.1.7 查看視圖信息248 9.2 同義詞249 9.2.1 同義詞的概念249 9.2.2 創建同義詞249 9.2.3 刪除同義詞251 9.2.4 查看同義詞信息251 9.3 序列251 9.3.1 序列的概念251 9.3.2 創建序列252 9.3.3 NEXTVAL偽列和CURRVAL偽列253 9.3.4 修改序列255 9.3.5 查看序列信息256 9.4 索引256 9.4.1 索引的概念256 9.4.2 索引的類型257 9.4.3 創建索引261 9.4.4 修改和重建索引262 9.4.5 刪除索引264 9.4.6 查看索引信息264 9.4.7 索引與約束265 9.4.8 何時使用索引267 9.5 分區表268 9.5.1 什么是分區表268 9.5.2 創建分區表268 9.5.3 維護分區285 9.5.4 查看分區信息289 9.6 臨時表291 9.7 練習題293 第10章 常用SQL函數295 10.1 字符類函數295 10.1.1 ASCII函數295 10.1.2 CHR函數296 10.1.3 CONCAT函數296 10.1.4 INITCAP函數296 10.1.5 INSTR函數297 10.1.6 LOWER函數和UPPER函數298 10.1.7 LPAD函數和RPAD函數299 10.1.8 LTRIM函數、RTRIM函數和TRIM函數300 10.1.9 LENGTH函數和LENGTHB函數301 10.1.10 REPLACE函數301 10.1.11 SUBSTR函數和SUBSTRB函數302 10.2 數值類函數302 10.2.1 ABS函數302 10.2.2 CEIL函數303 10.2.3 FLOOR函數303 10.2.4 MOD函數303 10.2.5 ROUND函數304 10.2.6 TRUNC函數305 10.3 日期類函數305 10.3.1 ADD_MONTHS函數305 10.3.2 CURRENT_DATE函數和CURRENT_TIMESTAMP函數306 10.3.3 EXTRACT函數307 10.3.4 LAST_DAY函數308 10.3.5 MONTHS_BETWEEN函數308 10.3.6 NEXT_DAY函數309 10.3.7 ROUND函數310 10.3.8 TRUNC函數311 10.4 空值處理函數313 10.4.1 NVL函數313 10.4.2 NVL2函數313 10.4.3 NULLIF函數314 10.4.4 COALESCE函數314 10.5 轉換類函數315 10.5.1 TO_CHAR函數315 10.5.2 TO_DATE函數317 10.5.3 TO_NUMBER函數317 10.6 其他常用函數318 10.6.1 DECODE函數318 10.6.2 DUMP函數320 10.7 練習題320 第11章 PL/SQL基礎322 11.1 PL/SQL概述322 11.1.1 什么是PL/SQL322 11.1.2 SQL與PL/SQL322 11.1.3 PL/SQL的運行323 11.2 PL/SQL的組成元素324 11.2.1 塊325 11.2.2 標識符327 11.2.3 數據類型327 11.2.4 變量330 11.2.5 賦值語句332 11.3 控制結構333 11.3.1 分支結構333 11.3.2 循環結構338 11.3.3 跳轉結構343 11.4 游標346 11.4.1 游標的概念346 11.4.2 顯式游標346 11.4.3 隱式游標356 11.5 異常357 11.5.1 異常概述357 11.5.2 異常的處理359 11.5.3 異常的傳播362 11.5.4 SQLCODE和SQLERRM函數367 11.6 練習題368 第12章 PL/SQL高級編程372 12.1 存儲子程序372 12.1.1 存儲過程372 12.1.2 存儲函數380 12.1.3 局部子程序386 12.2 包388 12.2.1 包概述388 12.2.2 包的創建389 12.2.3 包的調用391 12.2.4 包的重載392 12.2.5 包的管理393 12.3 觸發器394 12.3.1 觸發器概述394 12.3.2 DML觸發器396 12.3.3 INSTEAD OF觸發器401 12.3.4 系統觸發器403 12.3.5 觸發器的管理404 12.4 練習題405 第13章 Oracle全球化支持408 13.1 國家語言支持408 13.1.1 什么是NLS408 13.1.2 NLS的主要內容408 13.2 Oracle中的字符集409 13.2.1 Oracle支持的字符集410 13.2.2 數據庫字符集和國家字符集411 13.3 常用的NLS參數412 13.3.1 語言和地區參數412 13.3.2 日期和時間參數413 13.3.3 查看NLS參數415 13.3.4 設置NLS參數416 13.4 練習題420 第14章 Oracle的啟動和關閉421 14.1 創建和配置參數文件421 14.1.1 Oracle參數文件概述421 14.1.2 查看初始化參數422 14.1.3 創建參數文件424 14.1.4 修改初始化參數425 14.1.5 常見的初始化參數427 14.2 啟動數據庫428 14.2.1 數據庫的啟動過程428 14.2.2 實例的創建與數據庫的啟動428 14.2.3 數據庫的狀態切換430 14.3 關閉數據庫436 14.4 練習題438 第15章 Oracle的體系結構439 15.1 Oracle實例439 15.1.1 Oracle實例概述439 15.1.2 Oracle的內存結構440 15.1.3 Oracle的進程結構446 15.2 Oracle的物理存儲結構450 15.2.1 數據文件451 15.2.2 控制文件452 15.2.3 聯機重做日志文件452 15.3 Oracle的邏輯存儲結構458 15.3.1 數據塊458 15.3.2 區460 15.3.3 段461 15.3.4 表空間462 15.4 練習題476 第16章 Oracle的安全管理478 16.1 用戶管理478 16.1.1 用戶與模式478 16.1.2 創建用戶479 16.1.3 用戶的認證方式481 16.1.4 修改用戶490 16.1.5 刪除用戶492 16.1.6 Oracle數據庫默認創建的用戶492 16.1.7 查詢用戶信息494 16.2 權限管理495 16.2.1 系統權限管理495 16.2.2 對象權限管理503 16.3 角色管理506 16.3.1 創建角色506 16.3.2 為角色授予權限509 16.3.3 默認角色與角色的啟用禁用509 16.3.4 回收角色的權限和刪除角色512 16.3.5 查看角色信息513 16.4 概要文件管理514 16.4.1 概要文件概述514 16.4.2 創建概要文件514 16.4.3 刪除概要文件517 16.4.4 查看概要文件信息517 16.5 練習題519 附錄A 各章練習題參考答案521 參考文獻535 本書采用大量的實例,深入淺出地介紹了Oracle 11g的使用和管理,共16章,包括數據庫系統概述,關系數據庫設計理論、數據庫設計、安裝Oracle、SQL*Plus、DDL和DML、查詢語句、Oracle事務管理、模式對象、常用SQL函數、PL/SQL基礎、PL/SQL高級編程、Oracle全球化支持、Oracle的啟動和關閉、Oracle的體系結構、Oracle的安全管理等內容。
本書注重實用性和可讀性,以實例為依托,使讀者在學習理論知識的同時能夠將所學內容應用于實際中,更容易掌握Oracle 11g的使用方法及技巧。本書可作為高等院校及培訓機構計算機相關專業的教材,也可作為Oracle數據庫的初學者及具有一定的Oracle數據庫基礎的軟件開發人員和數據庫管理人員的參考書。 一、 關于本書
隨著計算機應用技術的迅猛發展,數據庫技術也在日新月異,軟件行業對數據庫管理系統的性能、安全性、可靠性等方面的需求也隨之增強。Oracle數據庫以其強大的功能、便捷的操作、可靠的性能等特點在數據庫領域中得到了廣泛的應用,并贏得了美譽與信任。 當前市場上關于Oracle數據庫方面的書籍很多,給Oracle的學習者帶來了方便,但是以Oracle 11g為基礎講解Oracle數據庫應用及管理并且適合作為教材的書籍并不多見。編者根據多年的Oracle實踐經驗及一線教學經驗編寫了本教材,希望能給Oracle的學習者提供參考。 二、 本書能力目標 通過本書的學習,讀者在Oracle數據庫使用方面能夠達到以下能力目標: 掌握關系數據庫的基本理論及設計方法。 掌握SQL語言和PL/SQL語言。 掌握Oracle 11g的設計和管理方法。 具有創新能力、拓展學習Oracle的能力。 具有對數據庫管理過程中遇到的問題給出解決方法及建議的能力。 具有Oracle數據庫管理員的基本職業素質。 三、 本書內容組織 全書主要分為三大部分,按照內容模塊組織章節,各個章節之間循序漸進,既相輔相成又相對獨立,讀者可以根據自己的需要有選擇地閱讀和使用。 第一部分介紹數據庫基礎理論及數據庫設計,共有3章。 第1章,數據庫系統概述,介紹數據庫系統的相關概念及體系結構。 第2章,關系數據庫設計理論,主要講解數據模型、關系模型及關系數據庫規范化理論。 第3章,數據庫設計,介紹數據庫設計,包括概念結構設計、邏輯結構設計、物理結構設計,數據庫的實施、運行和維護。 第二部分介紹Oracle基礎,主要包括SQL的使用、Oracle事務管理、PL/SQL基礎及高級編程等,共有9章。 第4章,安裝Oracle,介紹安裝Oracle的準備工作及如何安裝、數據字典等。 第5章,SQL*Plus,包括如何使用sqlplus命令登錄到數據庫及SQL*Plus常用命令。 第6章,DDL和DML,主要介紹Oracle的數據類型及如何創建表、修改表結構,如何對數據進行各種操作。 第7章,查詢語句,包括單表查詢、多表連接查詢、子查詢和集合運算。 第8章,Oracle事務管理,主要介紹事務的基本概念、事務的處理機制及并發控制。 第9章,模式對象,主要介紹視圖、同義詞、序列、索引、分區表、臨時表等模式對象。 第10章,常用SQL函數,包括字符類函數、數值類函數、日期類函數、空值處理函數、轉換類函數、其他常用函數等。 第11章,PL/SQL基礎,主要介紹PL/SQL的基礎概念及應用。 第12章,PL/SQL高級編程,介紹如何存儲子程序及包、觸發器的應用等。 第三部分是Oracle的高級應用和管理,共有4章。 第13章, Oracle全球化支持,主要有國家語言支持、Oracle中的字符集、常用的NLS參數。 第14章,Oracle的啟動和關閉,包括如何創建和配置參數文件、啟動數據庫及關閉數據庫。 第15章,Oracle的體系結構,以Oracle實例介紹其物理存儲結構和邏輯存儲結構。 第16章,Oracle的安全管理,包括用戶管理、權限管理、角色管理和概要文件管理。 四、 本書特點 在內容組織上以實際需求為基礎設計章節結構,實例豐富、結構清晰、邏輯合理,使讀者容易通過本書的閱讀學習掌握Oracle數據庫的基礎知識、管理技巧及高級應用。 注重培養讀者的實踐應用能力,逐層深入的章節安排使讀者循序漸進地實現本書的能力目標。 書中使用了大量的實例,做到以實際應用為出發點剖析理論知識,使讀者在學習理論知識的同時進行實踐,更容易掌握Oracle數據庫的使用方法與技巧。 五、 本書適應對象 本書可作為高等院校及培訓機構計算機相關專業的教材,也可作為Oracle數據庫的初學者及具有一定的Oracle數據庫基礎的軟件開發人員和數據庫管理人員的參考書。 本書的第1章、第2章、第3章由肖潔編寫,第6章、第7章、第8章、第9章、第10章由曹玉琳編寫,第11章、第12章由張立杰編寫,第4章、第5章、第13章、第14章、第15章、第16章由鄭東霞編寫,全書由曹玉琳統稿、定稿,鄭東霞統籌、策劃。 供教師使用的電子課件及所有實例源代碼可從清華大學出版社網站(www.tup.com.cn)下載。 本書在編寫過程中得到很多專家的幫助、支持和指導,在此表示衷心的感謝。由于編者知識水平有限,書中疏漏和不足之處在所難免,懇請讀者批評指正。 編 者2012年8月 |