MySQL技术内幕(第4版)
2011-7
人民邮电
Paul DuBois
886
杨晓云,王建桥,杨 涛
无
《MySQL技术内幕(第4版)》介绍了MySQL的基础知识及其有别于其他数据库系统的独特功能,包括SQL的工作原理和MySQL
API的相关知识;讲述了如何将MySQL与Perl或PHP等语言结合起来,为数据库查询结果生成动态Web页面,如何编写MySQL数据访问程序;详细讨论了数据库管理和维护、数据目录的组织和内容、访问控制、安全连接等。附录还提供了软件的安装信息,罗列了MySQL数据类型、函数、变量、语法、程序、API等重要细节。
《MySQL技术内幕(第4版)》是一部全面的MySQL指南,对数据库系统感兴趣的读者都能从中获益。
Paul DuBois Sun
公司MySQL文档团队的技术作者、开源社区和MySQL社区活跃的技术专家,同时也是一名数据库管理员。他曾参与过MySQL在线文档的编写工作。除本书外,他还著有MySQL
and Perl for the Web、MySQL Cookbook、Using csh and tcsh以及Software
Portability with imake等书。
第一部分 MySQL基础知识
第1章 MySQL和SQL 入门
1.1 MySQL的用途
1.2 示例数据库
1.2.1 “美国历史研究会”场景
1.2.2 考试记分项目
1.2.3 关于示例数据库的说明
1.3 数据库基本术语
1.3.1 数据库的组织结构
1.3.2 数据库查询语言
1.3.3 MySQL的体系结构
1.4 MySQL
1.4.1 如何获得示例数据库
1.4.2 最低配置要求
1.4.3 如何建立和断开与服务器的连接
1.4.4 执行SQL语句
1.4.5 创建数据库
1.4.6 创建数据表
1.4.7 如何添加新的数据行
1.4.8 将sampdb数据库重设为原来的状态
1.4.9 检索信息
1.4.10 如何删除或更新现有的数据行
1.5 与客户程序MySQL交互的技巧
1.5.1 简化连接过程
1.5.2 减少输入查询命令时的打字动作
1.6 后面各章的学习计划
第2章 使用SQL管理数据
2.1 MySQL服务器的SQL模式
2.2 MySQL标识符语法和命名规则
2.3 SQL语句中的字母大小写问题
2.4 字符集支持
2.4.1 字符集的设定
2.4.2 确定可供选用的字符集和当前设置
2.4.3 Unicode支持
2.5 数据库的选定、创建、删除和变更
2.5.1 数据库的选定
2.5.2 数据库的创建
2.5.3 数据库的删除
2.5.4 数据库的变更
2.6 数据表的创建、删除、索引和变更
2.6.1 存储引擎的特征
2.6.2 创建数据表
2.6.3 删除数据表
2.6.4 为数据表编制索引
2.6.5 改变数据表的结构
2.7 获取数据库的元数据
2.7.1 用SHOW语句获取元数据
2.7.2 从INFORMATION_SCHEMA数据库获取元数据
2.7.3 从命令行获取元数据
2.8 利用联结操作对多个数据表进行检索
2.8.1 内联结
2.8.2 避免歧义:如何在联结操作中给出数据列的名字
2.8.3 左联结和右联结(外联结)
2.9 用子查询进行多数据表检索
2.9.1 子查询与关系比较操作符
2.9.2 IN和NOT IN子查询
2.9.3 ALL、ANY和SOME子查询
2.9.4 EXISTS和NOT EXISTS子查询
2.9.5 与主查询相关的子查询
2.9.6 FROM子句中的子查询
2.9.7 把子查询改写为联结查询
2.10 用UNION语句进行多数据表检索
2.11 使用视图
2.12 涉及多个数据表的删除和更新操作
2.13 事务处理
2.13.1 利用事务来保证语句的安全执行
2.13.2 使用事务保存点
2.13.3 事务的隔离性
2.13.4 事务问题的非事务解决方案
2.14 外键和引用完整性
2.14.1 外键的创建和使用
2.14.2 如果不能使用外键该怎么办
2.15 使用FULLTEXT索引
2.15.1 全文搜索:自然语言模式
2.15.2 全文搜索:布尔模式
2.15.3 全文搜索:查询扩展模式
2.15.4 配置全文搜索引擎
第3章 数据类型
3.1 数据值的类别
3.1.1 数值
3.1.2 字符串值
3.1.3 日期/时间值
3.1.4 坐标值
3.1.5 布尔值
3.1.6 空值NULL
3.2 MySQL的数据类型
3.2.1 数据类型概述
3.2.2 数据表中的特殊列类型
3.2.3 指定列默认值
3.2.4 数值数据类型
3.2.5 字符串数据类型
3.2.6 日期/时间数据类型
3.2.7 空间数据类型
3.3 MySQL如何处理非法数据值
3.4 序列
3.4.1 通用AUTO_INCREMENT属性
3.4.2 与特定存储引擎有关的AUTO_INCREMENT属性
3.4.3 使用AUTO_INCREMENT数据列时的要点
3.4.4 使用AUTO_INCREMENT机制时的注意事项
3.4.5 如何在不使用AUTO_INCREMENT的情况下生成序列编号
3.5 表达式求值和类型转换
3.5.1 表达式的编写
3.5.2 类型转换
3.6 数据类型的选用
3.6.1 数据列将容纳什么样的数据
3.6.2 数据是否都在某个特定的区间内
3.6.3 与挑选数据类型有关的问题是相互影响的
第4章 存储程序
4.1 复合语句和语句分隔符
4.2 存储函数和存储过程
4.2.1 存储函数和存储过程的权限
4.2.2 存储过程的参数类型
4.3 触发器
4.4 事件
4.5 存储程序和视图的安全性
第5章 查询优化
5.1 使用索引
5.1.1 索引的优点
5.1.2 索引的缺点
5.1.3 挑选索引
5.2 MySQL的查询优化程序
5.2.1 查询优化器的工作原理
5.2.2 用EXPLAIN 语句检查优化器操作
5.3 为提高查询效率而挑选数据类型
5.4 有效加载数据
5.5 调度和锁定问题
5.5.1 改变语句的执行优先级
5.5.2 使用延迟插入
5.5.3 使用并发插入
5.5.4 锁定级别与并发性
5.6 系统管理员所完成的优化
5.6.1 使用MyISAM键缓存
5.6.2 使用查询缓存
5.6.3 硬件优化
第二部分 MySQL的编程接口
第6章 MySQL程序设计
6.1 为什么要自己编写MySQL程序
6.2 MySQL应用程序可用的API
6.2.1 C API
6.2.2 Perl DBI API
6.2.3 PHP API
6.3 如何挑选API
6.3.1 执行环境
6.3.2 性能
6.3.3 开发时间
6.3.4 可移植性
第7章 用C语言编写MySQL程序
7.1 编译和链接客户程序
7.2 连接到服务器
7.3 出错消息和命令行选项的处理
7.3.1 出错检查
7.3.2 实时获取连接参数
7.3.3 给MySQL客户程序增加选项处理功能
7.4 处理SQL语句
7.4.1 处理修改数据行的语句
7.4.2 处理有结果集的语句
7.4.3 一个通用的语句处理程序
7.4.4 另一种语句处理方案
7.4.5 mysql_store_result()与mysql_use_result()函数的对比
7.4.6 使用结果集元数据
7.4.7 对特殊字符和二进制数据进行编码
7.5 交互式语句执行程序
7.6 怎样编写具备SSL支持的客户程序
7.7 嵌入式服务器库的使用
7.7.1 编写内建了服务器的应用程序
7.7.2 生成应用程序可执行二进制文件
7.8 一次执行多条语句
7.9 使用服务器端预处理语句
第8章 使用Perl DBI编写MySQL程序
8.1 Perl脚本的特点
8.2 Perl DBI概述
8.2.1 DBI数据类型
8.2.2 一个简单的DBI脚本
8.2.3 出错处理
8.2.4 处理修改数据行的语句
8.2.5 处理返回结果集的语句
8.2.6 在语句字符串引用特殊字符
8.2.7 占位符与预处理语句
8.2.8 把查询结果绑定到脚本变量
8.2.9 设定连接参数
8.2.10 调试
8.2.11 使用结果集的元数据
8.2.12 实现事务处理
8.3 DBI脚本实战
8.3.1 生成美国历史研究会会员名录
8.3.2 发出会费催交通知
8.3.3 会员记录项的编辑修改
8.3.4 寻找志趣相同的会员
8.3.5 把会员名录放到网上
8.4 用DBI开发Web应用
8.4.1 配置Apache服务器使用CGI脚本
8.4.2 CGI.pm模块简介
8.4.3 从Web脚本连接MySQL服务器
8.4.4 一个基于Web的数据库浏览器
8.4.5 考试记分项目:考试分数浏览器
8.4.6 美国历史研究会:寻找志趣相同的会员
第9章 用PHP编写MySQL程序
9.1 PHP概述
9.1.1 一个简单的PHP脚本
9.1.2 利用PHP库文件实现代码封装
9.1.3 简单的数据检索页面
9.1.4 处理语句结果
9.1.5 测试查询结果里的NULL值
9.1.6 使用预处理语句
9.1.7 利用占位符来处理带引号的数据值
9.1.8 出错处理
9.2 PHP脚本实战
9.2.1 考试分数的在线录入
9.2.2 创建一个交互式在线测验
9.2.3 美国历史研究会:会员个人资料的在线修改
第三部分 MySQL的系统管理
第10章 MySQL系统管理简介
10.1 MySQL组件
10.2 常规管理
10.3 访问控制与安全性
10.4 数据库的维护、备份和复制
第11章 MySQL的数据目录
11.1 数据目录的位置
11.2 数据目录的层次结构
11.2.1 MySQL服务器如何提供对数据的访问
11.2.2 MySQL数据库在文件系统里是如何表示的
11.2.3 数据表在文件系统里的表示方式
11.2.4 视图和触发器在文件系统里的表示方式
11.2.5 SQL语句与数据表文件操作的对应关系
11.2.6 操作系统对数据库对象的命名规则有何影响
11.2.7 影响数据表最大长度的因素
11.2.8 数据目录的结构对系统性能的影响
11.2.9 MySQL状态文件和日志文件
11.3 重新安置数据目录的内容
11.3.1 重新安置工作的具体方法
11.3.2 重新安置注意事项
11.3.3 评估重新安置的效果
11.3.4 重新安置整个数据目录
11.3.5 重新安置各个数据库
11.3.6 重新安置各个数据表
11.3.7 重新安置InnoDB共享表空间
11.3.8 重新安置状态文件和日志文件
第12章 MySQL数据库系统的日常管理
12.1 安装MySQL软件后的初始安防设置
12.1.1 为初始MySQL账户设置口令
12.1.2 为第二个服务器设置口令
12.2 安排MySQL服务器的启动和关停
12.2.1 在Unix上运行MySQL服务器
12.2.2 在Windows上运行MySQL服务器
12.2.3 指定服务器启动选项
12.2.4 关闭服务器
12.2.5 当你未能连接至服务器时重新获得服务器的控制
12.3 对MySQL服务器的连接监听情况进行控制
12.4 管理MySQL用户账户
12.4.1 高级MySQL账户管理操作
12.4.2 对账户授权
12.4.3 查看账户的权限
12.4.4 撤销权限和删除用户
12.4.5 改变口令或重新设置丢失的口令
12.5 维护日志文件
12.5.1 出错日志
12.5.2 常规查询日志
12.5.3 慢查询日志
12.5.4 二进制日志和二进制日志索引文件
12.5.5 中继日志和中继日志索引文件
12.5.6 日志数据表的使用
12.5.7 日志管理
12.6 调整MySQL服务器
12.6.1 查看和设置系统变量的值
12.6.2 通用型系统变量
12.6.3 查看状态变量的值
12.7 存储引擎的配置
12.7.1 为MySQL服务器挑选存储引擎
12.7.2 配置MyISAM存储引擎
12.7.3 配置InnoDB存储引擎
12.7.4 配置Falcon存储引擎
12.8 启用或者禁用LOAD DATA语句的LOCAL能力
12.9 国际化和本地化问题
12.9.1 设置MySQL服务器的地理时区
12.9.2 选择用来显示出错信息的语言
12.9.3 配置MySQL服务器的字符集支持
12.10 运行多个服务器
12.10.1 运行多个服务器的问题
12.10.2 配置和编译不同的服务器
12.10.3 指定启动选项的决策
12.10.4 用于服务器管理的mysqld_multi
12.10.5 在Windows系统上运行多个MySQL服务器
12.11 升 级MySQL
第13章 访问控件和安全
13.1 内部安全性:防止未经授权的文件系统访问
13.1.1 如何偷取数据
13.1.2 保护你的MySQL安装
13.2 外部安全性:防止未经授权的网络访问
13.2.1 MySQL权限表的结构和内容
13.2.2 服务器如何控制客户访问
13.2.3 一个关于权限的难题
13.2.4 应该回避的权限数据表风险
13.3 加密连接的建立
第14章 MySQL数据库的维护、备份和复制
14.1 数据库预防性维护工作的基本原则
14.2 在MySQL服务器运行时维护数据库
14.2.1 以只读方式或读/写方式锁定一个或多个数据表
14.2.2 以只读方式锁定所有的数据库
14.3 预防性维护
14.3.1 充分利用MySQL服务器的自动恢复能力
14.3.2 定期进行预防性维护
14.4 制作数据库备份
14.4.1 用mysqldump程序制作文本备份
14.4.2 制作二进制数据库备份
14.4.3 备份InnoDB或Faclcon数据表
14.5 把数据库复制到另一个服务器
14.5.1 使用一个备份文件来复制数据库
14.5.2 把数据库从一个服务器复制到另一个
14.6 数据表的检查和修复
14.6.1 用服务器检查和修复数据表
14.6.2 用mysqlcheck程序检查和修复数据表
14.6.3 用myisamchk程序检查和修复数据表
14.7 使用备份进行数据恢复
14.7.1 恢复整个数据库
14.7.2 恢复数据表
14.7.3 重新执行二进制日志文件里的语句
14.7.4 InnoDB存储引擎的自动恢复功能
14.8 设置复制服务器
14.8.1 复制机制的工作原理
14.8.2 建立主从复制关系
14.8.3 二进制日志的格式
14.8.4 使用复制机制制作备份
第四部分 附录
附录A 获得并安装有关软件
附录B 数据类型指南
附录C 操作符与函数用法指南
附录D 系统变量、状态变量和用户变量使用指南
附录E SQL语法指南
附录F MySQL程序指南
附录G API指南(图灵网站下载)
附录H Perl DBI API指南(图灵网站下载)
附录I PHP API指南(图灵网站下载)
“这是我读过的所有技术书中最好的一本,强烈推荐!” ——ACCU的C Vu杂志主编 Gregory Haley “本书是最权威的用户指南和参考手册,有了它,在MySQL数据库的日常操作和维护方面,你就会高枕无忧。” ——Web Techniques杂志主编 Eugene Kim
通过阅读由杜波依斯编著的《MySQL技术内幕(第4版)》,可以高效地掌握MySQL的使用方法,从而高效地完成自己的工作。你将会学到怎样把信息资料录入数据库,怎样构造出查询语句以迅速获得有关问题的答案。 即使不是程序员,也可以学习和使用SQL。本书内容的重点之一就是介绍SQL的工作原理。但熟悉SQL的语法并不代表你掌握了SQL的使用技巧,所以本书的另一个重点就是介绍MySQL的独特功能及其用法。
无
MySQL技术内幕:SQL编程MySQL技术内幕 : 第4版MySQL技术内幕:InnoDB存储引擎高可用MySQL:构建健壮的数据中心MySQL学习之路,分别应对初学、深入理解、深入理解、高级应用级别
MySQL技术内幕 : 第4版 深入浅出,非常经典
MySQL学了很久了,但这本书给我更加系统的关于MySQL知识,组织了我之前的支离破碎的知识
写的相当深入详细,书籍很厚,是走向mysql高手的一个理想书籍--厚啊
这书很厚,讲的比较深入,要成为mysql高手,那是必读的书。
这本书很专业,对mysql的学习会有很大的帮助,但是如果对mysql没有什么了解的话,看这本书,会比较难懂
了解MySQL
纸张很赞,正版无疑,对mysql的学习帮助很大
这本书对我们学技术的人来说是给了我们第2青春,让我们的老师可以更给力,也可以增强更多的数据库知识,不过就是中文,中文我不喜欢看,希望有英文版的,更给力
Paul Dubois写的书,无要否认是一本好书
内容很多,但是既有基础讲解又有深度挖掘,对于只在学校学习过数据库原理的同学来书很适合
给公司订的,技术人员挑的,应该不错
内容详实,适合初学者,对于老DBA也适合,基础重要嘛
翻了一下,还没有怎么看,书那么厚,讲得还挺详细,挺喜欢的
翻了一下书内容还不错,就是字太小了点。
内容很多,不是一时半会能看得完。大体看了前几章,基础讲的很好。
这本书很好,还没有深入看,一看书的结构就很满意了。
真不错 很全面
书很新, 送货也很快,很不错
。。。在当当上买老这么多年的书。。一直都很好。。晚上定的。。第二天就到。。
书是原版的,纸张不错,超厚,这下有我看的了
比较适合有基础的人读
这本书很不错,写的很相信,相信对自己很有帮助。
的确是好书,爱不释手啊
比较厚,还没怎么看
就是版本老点5.0的
经典图书,看了电子版,果断入手
朋友推荐看的,看起来不错
希望我能坚持看完
很好的书呢。。。
觉得应该很不错
刚开始看,感觉还是可以的
同事很喜欢是正品
很少有人对免费的数据库下功夫,这本书基本上写的很全面,但是有一些零散,需要仔细阅读。
知识很全面,是学习的一本好书
从使用、语法、等角度讲解,对于入门还是有必要的
书还行,内容还可以
书大概看了一下,很厚的一本书,希望接下来能把一口气读完
这本书挺好,就是内容太多,请注意删减
刚收到书,包装很严密,但书封面显得较旧。正在研读,希望物超所值。
看了几页。内容不错
翻译得太人性化了。。可以称之为美国式中文。。不过内容倒是挺丰富的。。
这本书挺厚的,就放在办公室的桌面**作工具书用用。。
书皮皱了,应该是快递的原因吧,买来参考用的~
质量很好,讲的还算细致。当做工具书来用很好
深入了解,不过没讲BI
没有想象的那么好,但是还是对得起这个价格。
简单的翻 了一下,第一部分的内容适合初学者看。第二部分关于MySQL编程接口的对我来说没多大用,都是讲Perl 、PHP 等API接口的。第三部分和附录还不错。总体来说书的内容还不错,适合初学入门者阅读
MySQL技术内幕 : 第4版 书是2011年出版的,书都发黄像旧的。都埋汰了,书角还都压出折了。
书不错 内容很好 就是感觉 有点脏
书不错,内容有点难。
不是太好 可能希望过大吧
这本书名为《MySQL技术内幕》但其实应该属于入门级别的,最多也只是窥探了下MySQL内幕的门框而已。已经入门的朋友在购买的时候,看下目录即可做出判断了。这本书我买来作为参考手册,因为不是专业的DBA所以不需要对数据库原理做更深入的了解,掌握基本日常操作即可。有了这本书,有些不常用的操作命令可以暂时不用全部背过了。闲下来的时候随手翻翻里面的一些感兴趣的章节作为知识扩展对于编程来说是件非常有意义的书,内容讲解较为详细,譬如对SQL_MODE的描述、对SQL语句的附录等。但是描述都在入门熟练这一个级别,譬如对于insert没有讲解如果插入数据行a的时候数据库表中已经存在行a,此时更新(或者忽略本次插入操作)该行a的操作。如果作为登堂的MySQL教材 or 工具书,本书不错。但想要入室还需要其他的MySQL书做更深入的学习。总而言之,本书是一本优秀的入门教材工具书,如果看过目录后对其列出的知识点心中了然的话,可以不必考虑购买了。
从数据库开发的角度评价几本MySQL图书1:《MySQL必知必会》:短小精悍 五星推荐这本书是小开本,有非常薄,有SQL基础的话几个小时就可以翻一遍。MySQL的SQL方言入门的问题基本可以由这本书来解决。2:《MySQL技术内幕》:MySQL开发入门级读物 五星推荐书比较厚,不过内容略有点杂。把书后200多页的附录计算在内的话,大约一半内容是数据库开发相关的,剩下的内容中一半讲Perl、PHP、C等编程语言如何使用MySQL,另一半讲MySqL管理。总体来说讲开发的这一半内容还不错,比较详细,可以作为入门的MySQL开发类的图书来看。3:《MySQL技术内幕:SQL编程》:MySQL开发中高级水平读物 五星推荐本书是国内作者原创,写的不错。本书涉及到许多MySQL开发方面的相对高级的话题,许多内容看着眼熟,感觉是仿造微软的《SQL Server技术内幕》系列写的,当然是用MySQL来实现相应的问题。有些问题比如“滑动订单”在实际工作中不是很常见的需求。最后两节讲的是与开发、管理都相关的话题:索引、分区。
内容很详细,但翻译水平有待提高,还有就是很多安装步骤不详细,这点有待改进。
书不错,书中讨论的技术内容页十分扎实,很喜欢~
书不错就是翻译的太烂了,糟蹋了!建议对照着英文看,不然有些章节特别难懂,可能站在计算机技术的角度来说翻译是有出入的。只能说人民邮电出版社现在为了利益,什么垃圾都可以过来翻译图书!!!
内容涉及的方面挺多的,在优化方面讲得也比较浅,不适合深入学习。
书还不错吧 应该 还没看
正在看,讲的东西很全
内容翻译的很一般,很浅显 好多知识点一笔带过根本没深入讲
里面的基本概念说的很清楚,基本的语法都很形象的讲解了,例子也是非常容易懂的。
不错,书挺不错的,我是个初学的
还没有来得及看,抽时间来看了。
拿到手,封面软榻榻,纸张质量真对不起这价钱呀。内页有多处折痕,像是二手书。汗大大滴。书的内容还是不错的,对于像我这样的菜鸟,是不可多得的指导书。重心放在MYSQL本身,对API谈得就较少其浅,实例不多。
这书嘛,确实适合入门,我没有任何数据库知识的,学起来还算是容易看着看着,中间有些页面有裂痕,还好暂时出现的几页并没有严重到影响阅读的程度希望不要在碰上这样的缺陷了。
很全很好,都有用,学习中!
书里面说的都是Mysql的应用,使用方法,而没有详细讲内部的实现,不能说的技术内幕,不过用来作使用方面的参考还可以
内容丰富详细,符合我的要求
很好的SQL入门书
降价买的。
好的开源数据库