編輯推薦
《Oracle Database 11g & MySQL 5.6開發手冊》特色:
·理解Oralce Database llg和MySQL5.6的架構
·在兩個平颱之間轉換數據庫,並確保事務完整性
·創建錶、序列、索引、視圖和用戶賬戶
·編寫並調試PL/SQL、SQL*Plus、SQL/PSM和MySQL Monitor的腳本
·執行復雜查詢並管理數字和日期的計算
·閤並來源錶中的數據並設置虛擬目錄
內容簡介
利用《Oracle Database 11g & MySQL5.6開發手冊》,您將能夠在混閤環境中創建齣強大的數據庫應用程序。《Oracle Database 11g & MySQL 5.6開發手冊》規劃瞭這兩種平颱之間無縫操作的程序設計策略和最佳實踐方式。您可以學會如何遷移數據庫、移植SQL代碼、使用Oracle和MySQL數據庫以及配置高效率的查詢。在這本內容廣泛的書籍中,還包括瞭安全、監控和調試方麵的技巧。
作者簡介
Michael McLaughlin,Oracle ACE,是美國愛達荷州楊百翰大學的計算機信息技術係教授,Michael參與Oracle公司係列産品的研發已經有20年瞭,擔任過開發者、DBA,以及電子商務套件應用程序DBA。他在谘詢、支持和開發方麵都有建樹。他還是ATOMS事務架構(美國專利號#7 206 805和#7 290 056)的發明者。這兩項專利均歸屬Oracle公司所有。
他撰寫瞭6本有關Oracle技術的著作,其中包括清華大學齣版社引進並齣版的《Oracle Database llg PL/SQL程序設計》、《Oracle Datebase llgPL/SQL編程實踐》等。
內頁插圖
目錄
第Ⅰ部分 開發組件
第1章 架構
1.1 通用的客戶端-服務器計算模型
1.2 Oracle Database llg
1.2.1 客戶端軟件:SQL*Plus
1.2.2 Oracle llg服務器軟件
1.2.3 Oracle數據字典
1.3 Oracle MySQL 5.6
1.3.1 客戶端軟件MySQL Monitor
1.3.2 MySQL服務器軟件
1.3.3 MySQL數據字典
1.4 小結
1.5 習題
第2章 客戶端接口
2.1 SQL*Plus
2.1.1 與SQL*Plus連接和斷開連接
2.1.2 在SQL*Plus環境下工作
2.1.3 在SQL*Plus中編寫SQL語句
2.1.4 用SQL*Plus保存SQL語句
2.1.5 用SQL*Plus編輯SQL語句
2.1.6 從緩衝區重新運行SQL*Plus的SQL語句
2.1.7 在SQL*Plus中取消SQL語句條目
2.1.8 調用並運行SQL*Plus腳本文件
2.1.9 嚮SQL*Plus腳本文件傳遞參數
2.1.10 調用PL/SQL程序,
2.1.11 編寫SQL*Plus日誌文件
2.2 MySQL Monitor
2.2.1 連接和斷開MySQL Monitor
2.2.2 編寫MySQL的SQL語句
2.2.3 保存MySQL的SQL語句
2.2.4 編輯MySQL的SQL語句
2.2.5 取消MySQL的SQL語句
2.2.6 調用和運行MySQL腳本文件
2.2.7 設置會話變量
2.2.8 調用SQL/PSM程序
2.2.9 編寫MySQL的日誌文件
2.3 小結
2.4 習題
第3章 安全模型
3.1 安全屏障
3.1.1 網絡的安全防護
3.1.2 操作係統的安全防護
3.1.3 數據庫的安全防護
3.2 安全權限
3.3 定義者和調用者權利
3.3.1 定義者權利
3.3.2 調用者權利
3.4 小結
3.5 習題
第4章 事務模型
4.1 數據事務
4.2 ACID兼容的SQL語句
4.2.1 INSERT語句
4.2.2 UPDATE語句
4.2.3 DELETE語句
4.3 存儲程序
4.4 觸發器
4.5 小結
4.6 習題
第5章 約束
5.1 NOTNULL約束
5.1.1 Oracle數據庫的NOT NULL約束
5.1.2 MySQL數據庫的NOT NULL約束
5.2 UNIQUE約束
5.2.1 Oracle數據庫的UNIQUE約束
5.2.2 MySQL數據庫的UNIQUE約束
5.2.3 唯一索引
5.3 主鍵約束
5.3.1 Oracle數據庫的主鍵約束
5.3.2 MySQL數據庫的主鍵約束
5.4 外鍵約束
5.4.1 Oracle數據庫的外鍵約束
5.4.2 MySQL數據庫的外鍵約束
5.5 CHECK約束
5.5.1 Oracle數據庫的CHECK約束
5.5.2 MySQL數據庫的CHECK約束
5.6 觸發器約束
5.7 小結
5.8 習題
第Ⅱ部分 SQL開發
第6章 創建用戶和結構
6.1 用戶
6.1.1 Oracle數據庫的用戶
6.1.2 MySQL數據庫的用戶
6.2 數據庫
6.2.1 Oracle的模式
6.2.2 MySQL的數據庫
6.3 錶
6.3.1 Oracle數據庫的錶
6.3.2 MySQL數據庫的錶
6.4 索引
6.4.1 Oracle數據庫的索引
6.4.2 MySQL數據庫的索引
……
附錄A 習題解答
精彩書摘
7.4.2 添加、修改和拋棄列
數據庫的錶能幫助你將那些支持商業、研究或者工程過程的信息正規化。在現實世界中,需求是會發生改變的,到最後就必須對錶進行修改。其中一部分修改相對而言比較瑣碎,例如修改列的名稱或者數據類型。而其他的修改就比較重大瞭,例如當某個描述性的項目(列)被忽視瞭,以至於一列的大小不足以包含大型數字或者字符串,或者一個數據列需要重命名或者移動到另一列中。可以使用ALTERTABLE語句來完成這些修改。
其他有關的修改發生在以下三種情況中:
·當你必須修改一列的數據類型而它已經含有瞭數行數據時
·當你要重命名一列而已有的SQL語句已經使用瞭舊有的列時
·當你轉移瞭列的位置或者將共享同一數據類型的列連接起來時
當你需要修改一列的數據類型而該列包含瞭數據時,就需要製訂數據遷移計劃瞭。小型數據遷移可能要求你添加新的列、將一列的內容移動到另一列,然後將原始列拋棄。除非數據庫支持在將目前的數據類型修改成新的數據類型中完成隱含的預測操作,否則你就需要使用SQL語句來明確修改數據類型,並將它們置入新的列中。
修改錶中列的名稱看起來是件無足輕重的事情,但當應用程序軟件在SQL語句中使用瞭該列名稱時,這就變得很重要瞭。對列名稱所作的任何修改都會導緻應用程序軟件失效。你需要識彆齣所有依賴於它的代碼,並確保在修改瞭錶中的列的同時也對它們作瞭相應的修改。當錶中的列被重命名且運行中的應用程序軟件需要該列的支持時,就需要進行完整的復原測試。你可以首先查詢ALL、DBA或者USERDEPENDENCIES視圖,它們維護瞭有關錶和存儲程序單元的依賴關係。
……
前言/序言
《Oracle Database 11g & MySQL 5.6 開發手冊》—— 融匯兩大主流數據庫技術,打造高效應用 在當今數據驅動的時代,數據庫技術是構建和支撐各類應用程序的基石。無論是復雜的企業級應用,還是靈活的 Web 服務,高效、穩定、可靠的數據庫管理都至關重要。Oracle Database 和 MySQL 作為業界公認的兩大主流關係型數據庫係統,各自擁有龐大的用戶群體和成熟的技術生態。Oracle Database 以其卓越的性能、強大的功能和高可用性,長期以來一直是大型企業和關鍵業務的首選;而 MySQL 則憑藉其開源免費、易於部署、高性能和良好的社區支持,在 Web 應用開發領域占據主導地位。 本書《Oracle Database 11g & MySQL 5.6 開發手冊》旨在為廣大數據庫開發人員、數據庫管理員以及對 Oracle Database 11g 和 MySQL 5.6 有深入學習需求的讀者,提供一套全麵、實用且與時俱進的技術指南。我們深知,在一個快速發展的技術環境中,掌握跨平颱、跨版本的數據庫開發技能,能夠顯著提升開發效率和應用性能。因此,本書將這兩款在當時擁有廣泛應用基礎且具備重要技術價值的數據庫版本,進行深度融閤與對比分析,力求幫助讀者建立起紮實的數據庫理論基礎,並掌握在實際開發場景中靈活運用這兩大數據庫的技能。 本書的獨特價值與內容導航: 本書的核心目標是提供一個詳盡的技術參考,幫助讀者深入理解 Oracle Database 11g 和 MySQL 5.6 的核心概念、特性、開發技巧以及最佳實踐。我們將循序漸進地引導讀者,從基礎概念入手,逐步深入到高級主題。 第一部分:數據庫基礎與通用概念 在開始深入研究 Oracle Database 11g 和 MySQL 5.6 的具體細節之前,理解數據庫的通用原理至關重要。本部分將涵蓋: 關係型數據庫模型迴顧: 講解關係型數據庫的基本概念,包括錶、字段、記錄、主鍵、外鍵、索引、視圖等,以及它們在數據庫設計中的作用。 SQL 語言的基石: 深入解析 SQL(Structured Query Language)的核心語法,包括數據查詢(SELECT)、數據操縱(INSERT, UPDATE, DELETE)、數據定義(CREATE, ALTER, DROP)以及數據控製(GRANT, REVOKE)等。我們將通過大量示例,演示在兩種數據庫係統中 SQL 語句的異同與兼容性。 數據庫設計原則: 討論如何進行良好的數據庫設計,包括範式理論、實體-關係模型(ERM)的設計方法,以及如何根據應用需求進行錶結構優化,以確保數據的一緻性、完整性和效率。 第二部分:Oracle Database 11g 核心開發與管理 Oracle Database 作為企業級數據庫的標杆,其功能強大且復雜。本部分將聚焦 Oracle Database 11g 的核心開發特性: Oracle 體係結構詳解: 介紹 Oracle 數據庫的內存結構(SGA、PGA)、後颱進程以及存儲結構(數據文件、控製文件、重做日誌文件),幫助讀者理解數據庫的內部運作機製,從而更好地進行性能調優和故障排查。 PL/SQL 編程: PL/SQL 是 Oracle 數據庫的強大過程化語言擴展。我們將詳細講解 PL/SQL 的語法,包括變量、數據類型、控製結構(IF, LOOP, WHILE)、遊標、存儲過程、函數、觸發器和包。通過豐富的實際案例,指導讀者編寫高效、可維護的 PL/SQL 代碼,以實現復雜的數據處理邏輯。 SQL 增強特性: 深入探討 Oracle SQL 的高級特性,例如分析函數(Analytic Functions)在復雜報錶生成中的應用、窗口函數(Window Functions)的強大功能、公用錶錶達式(CTE)簡化復雜查詢、以及 Oracle 特有的數據類型和函數,如 `ROWNUM`、`CONNECT BY` 子句等,並對比其在 MySQL 中的實現方式(或缺乏)。 性能調優基礎: 介紹 Oracle 數據庫性能調優的基本概念和常用工具,包括如何理解和使用執行計劃(Explain Plan)、SQL 跟蹤(SQL Trace)、AWR(Automatic Workload Repository)報告以及基本的索引優化策略。 事務管理與並發控製: 講解 Oracle 的事務模型、ACID 特性,以及多版本並發控製(MVCC)的實現機製,幫助讀者理解事務隔離級彆以及如何處理並發訪問帶來的問題。 第三部分:MySQL 5.6 核心開發與管理 MySQL 5.6 作為當時廣受歡迎的開源數據庫,在 Web 應用開發中扮演著舉足輕重的角色。本部分將重點介紹: MySQL 體係結構與存儲引擎: 介紹 MySQL 的客戶端/服務器架構、連接處理、查詢解析、優化器以及執行引擎。重點講解 InnoDB 和 MyISAM 等主流存儲引擎的特性、區彆以及適用場景。 存儲過程、函數與觸發器: 講解如何在 MySQL 中使用 SQL 編寫存儲過程、函數和觸發器,實現服務器端的數據邏輯處理,提升應用程序性能。 SQL 擴展與特性: 探索 MySQL SQL 的一些獨特之處,例如其對 JSON 數據類型的支持(雖然在 5.6 版本中功能相對基礎,但仍有介紹)、窗口函數(在 MySQL 5.6 中引入)的應用、公共錶錶達式(CTE)的用法,以及 MySQL 特有的函數和語法。 索引優化策略: 深入探討 MySQL 的索引機製,包括 B-tree 索引、全文索引等,以及如何根據查詢需求創建、選擇和優化索引,以提升查詢效率。 性能調優與監控: 提供 MySQL 性能調優的實用技巧,包括如何使用 `EXPLAIN` 分析查詢計劃、理解慢查詢日誌、以及一些基本的服務器配置調優方法。 事務與並發控製: 介紹 MySQL 的事務支持(主要由 InnoDB 提供),ACID 特性,以及其並發控製機製,對比與 Oracle 的異同。 第四部分:跨數據庫開發與實踐 本書最核心的價值之一在於對 Oracle Database 11g 和 MySQL 5.6 的比較與融閤。本部分將重點探討: SQL 語法與功能的對比: 詳細對比 Oracle 和 MySQL 在 SQL 語法、函數、數據類型上的異同,指齣哪些 SQL 語句可以在兩者之間直接移植,哪些需要進行修改,以及如何利用各自的特長。 數據遷移與互操作性: 介紹在 Oracle 和 MySQL 之間進行數據遷移的常用方法和工具,以及在跨數據庫環境中進行應用程序開發的策略。 開發模式與最佳實踐: 總結在兩種數據庫環境中進行高效開發的通用模式和最佳實踐,包括如何組織代碼、如何進行測試,以及如何設計可移植的數據庫層。 應用場景分析: 結閤實際應用場景,分析在不同場景下選擇 Oracle Database 11g 或 MySQL 5.6 的優勢,以及如何通過兩者結閤(例如,關鍵業務係統使用 Oracle,Web 前端使用 MySQL)來構建混閤架構。 第五部分:高級主題與進階探索 為瞭進一步拓展讀者的視野,本部分將觸及一些更高級的數據庫開發和管理主題: 安全性: 探討 Oracle 和 MySQL 在用戶管理、權限控製、數據加密等方麵的安全特性,以及如何構建安全的數據庫應用。 備份與恢復: 介紹 Oracle 的 RMAN(Recovery Manager)以及 MySQL 的 mysqldump 等備份恢復工具和策略,確保數據的安全與可靠。 高可用性與伸縮性: 簡要介紹 Oracle 的 RAC(Real Application Clusters)和 Data Guard,以及 MySQL 的主從復製、集群等技術,為讀者提供構建高可用、可伸縮數據庫係統的初步認識。 本書的目標讀者: 初學者: 想要係統學習 Oracle Database 11g 和 MySQL 5.6 的數據庫開發人員。 有經驗的開發人員: 希望拓展技術棧,掌握跨平颱數據庫開發技能的開發者。 數據庫管理員(DBA): 需要深入理解不同數據庫係統特性的 DBA。 項目經理和架構師: 需要瞭解不同數據庫技術優劣,以便做齣技術選型的決策者。 《Oracle Database 11g & MySQL 5.6 開發手冊》不僅僅是一本技術手冊,更是一份實用的開發指南。我們力求通過清晰的講解、豐富的示例和深入的分析,幫助讀者不僅理解“如何做”,更理解“為何如此”。無論您是初涉數據庫領域的新手,還是希望在現有基礎上精進技術的資深人士,相信本書都能成為您寶貴的參考資源。掌握 Oracle Database 11g 和 MySQL 5.6 這兩大主流數據庫技術,將為您在瞬息萬變的 IT 行業中奠定堅實的基礎,開啓更廣闊的職業前景。