编辑推荐
《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 行业中奠定坚实的基础,开启更广阔的职业前景。