《MySQL核心技术与最佳实践》(孔祥盛 编著)【文字版_PDF电子书_下载】
内容简介:
作为世界上最受欢迎的开源数据库管理系统,MySQL具有成本低廉、体积小、便于安装、性能优越、功能强大等特点,很多企业将MySQL作为最佳数据库管理系统。《MySQL核心技术与最佳实践》从关系数据库设计、MySQL基础、MySQL编程、MySQL管理及维护4个角度,深入浅出地对MySQL的核心技术进行了详细的介绍,并通过综合实训提供了MySQL核心技术的最佳实践。
《MySQL核心技术与最佳实践》尽量将抽象问题形象化、具体化,复杂问题图形化、简单化,突出自学和模仿的特点,内容丰富,讲解深入,具有很强的实战性和可操作性。《MySQL核心技术与最佳实践》入门门槛低,适合所有数据库初学者快速入门,非常适合用做培训机构的培训资料。
《MySQL核心技术与最佳实践》内容丰富、讲解深入,非常适合数据库开发人员、数据库管理人员以及其他数据库从业人员阅读,同时也是面向广大数据库爱好者的实用参考书。
目 录:
第一篇关系数据库设计
第1章数据库设计概述
1.1数据库概述
1.1.1关系数据库管理系统
1.1.2关系数据库
1.1.3结构化查询语言SQL
1.2数据库设计的相关知识
1.2.1商业知识和沟通技能
1.2.2数据库设计辅助工具
1.2.3"选课系统"概述
1.2.4定义问题域
1.2.5编码规范
1.3E-R图
1.3.1实体和属性
1.3.2关系
1.3.3E-R图的设计原则
1.4关系数据库设计
1.4.1为每个实体建立一张数据库表
1.4.2为每张表定义一个主键
1.4.3增加外键表示一对多关系
1.4.4建立新表表示多对多关系
1.4.5为字段选择合适的数据类型
1.4.6定义约束(constraint)条件
1.4.7评价数据库表设计的质量
1.4.8使用规范化减少数据冗余
1.4.9避免数据经常发生变化
习题
第二篇MySQL基础
第2章MySQL基础知识
2.1MySQL概述
2.1.1MySQL的特点
2.1.2MySQL服务的安装
2.1.3MySQL服务的配置
2.1.4启动与停止MySQL服务
2.1.5MySQL配置文件
2.1.6MySQL客户机
2.1.7连接MySQL服务器
2.2字符集以及字符序设置
2.2.1字符集及字符序概念
2.2.2MySQL字符集与字符序
2.2.3MySQL字符集的转换过程
2.2.4MySQL字符集的设置
2.2.5SQL脚本文件
2.3MySQL数据库管理
2.3.1创建数据库
2.3.2查看数据库
2.3.3显示数据库结构
2.3.4选择当前操作的数据库
2.3.5删除数据库
2.4MySQL表管理
2.4.1MyISAM和InnoDB存储引擎
2.4.2设置默认的存储引擎
2.4.3创建数据库表
2.4.4显示表结构
2.4.5表记录的管理
2.4.6InnoDB表空间
2.4.7删除表
2.5系统变量
2.5.1全局系统变量与会话系统变量
2.5.2查看系统变量的值
2.5.3设置系统变量的值
2.6MySQL数据库备份和恢复
习题
第3章MySQL表结构的管理
3.1MySQL数据类型
3.1.1MySQL整数类型
3.1.2MySQL小数类型
3.1.3MySQL字符串类型
3.1.4MySQL日期类型
3.1.5MySQL复合类型
3.1.6MySQL二进制类型
3.1.7选择合适的数据类型
3.2创建表
3.2.1设置约束
3.2.2设置自增型字段
3.2.3其他选项的设置
3.2.4创建"选课系统"数据库表
3.2.5复制一个表结构
3.3修改表结构
3.3.1修改字段相关信息
3.3.2修改约束条件
3.3.3修改表的其他选项
3.3.4修改表名
3.4删除表
3.5索引
3.5.1理解索引
3.5.2索引关键字的选取原则
3.5.3索引与约束
3.5.4创建索引
3.5.5删除索引
习题
第4章表记录的更新操作
4.1表记录的插入
4.1.1使用insert语句插入新记录
4.1.2更新操作与字符集
4.1.3关于自增型字段
4.1.4批量插入多条记录
4.1.5使用insert…select插入结果集
4.1.6使用replace插入新记录
4.2表记录的修改
4.3表记录的删除
4.3.1使用delete删除表记录
4.3.2使用truncate清空表记录
4.4MySQL特殊字符序列
习题
第5章表记录的检索
5.1select语句概述
5.1.1使用select子句指定字段列表
5.1.2使用谓词过滤记录
5.1.3使用from子句指定数据源
5.1.4多表连接
5.2使用where子句过滤结果集
5.2.1使用单一的条件过滤结果集
5.2.2is NULL运算符
5.2.3select语句与字符集
5.2.4使用逻辑运算符
5.2.5使用like进行模糊查询
5.3使用order by子句对结果集排序
5.4使用聚合函数汇总结果集
5.5使用group by子句对记录分组统计
5.5.1group by子句与聚合函数
5.5.2group by子句与having子句
5.5.3group by子句与group_concat()函数
5.5.4group by子句与with rollup选项
5.6合并结果集
5.7子查询
5.7.1子查询与比较运算符
5.7.2子查询与in运算符
5.7.3子查询与exists逻辑运算符
5.7.4子查询与any运算符
5.7.5子查询与all运算符
5.8选课系统综合查询
5.9使用正则表达式模糊查询
5.10全文检索
5.10.1全文检索的简单应用
5.10.2全文检索方式
5.10.3布尔检索模式的复杂应用
5.10.4MySQL全文检索的注意事项
5.10.5InnoDB表的全文检索
习题
第三篇MySQL编程
第6章MySQL编程基础
6.1MySQL编程基础知识
6.1.1常量
6.1.2用户自定义变量
6.1.3运算符与表达式
6.1.4begin-end语句块
6.1.5重置命令结束标记
6.2自定义函数
6.2.1创建自定义函数的语法格式
6.2.2函数的创建与调用
6.2.3函数的维护
6.2.4条件控制语句
6.2.5循环语句
6.3系统函数
6.3.1数学函数
6.3.2字符串函数
6.3.3数据类型转换函数
6.3.4条件控制函数
6.3.5系统信息函数
6.3.6日期和时间函数
6.3.7其他常用的MySQL函数
6.4中文全文检索的模拟实现
习题
第7章视图与触发器
7.1视图
7.1.1创建视图
7.1.2查看视图的定义
7.1.3视图在"选课系统"中的应用
7.1.4视图的作用
7.1.5删除视图
7.1.6检查视图
7.1.7local与cascade检查视图
7.2触发器
7.2.1准备工作
7.2.2使用触发器实现检查约束
7.2.3使用触发器维护冗余数据
7.2.4使用触发器模拟外键级联选项
7.2.5查看触发器的定义
7.2.6删除触发器
7.2.7使用触发器的注意事项
7.3临时表
7.3.1临时表概述
7.3.2临时表的创建、查看与删除
7.3.3"选课系统"中临时表的使用
7.3.4使用临时表的注意事项
7.4派生表(derived table)
7.5子查询、视图、临时表、派生表
习题
第8章存储过程与游标
8.1存储过程
8.1.1创建存储过程的语法格式
8.1.2存储过程的调用
8.1.3"选课系统"的存储过程
8.1.4查看存储过程的定义
8.1.5删除存储过程
8.1.6存储过程与函数的比较
8.2错误触发条件和错误处理
8.2.1自定义错误处理程序
8.2.2自定义错误触发条件
8.2.3自定义错误处理程序说明
8.3游标
8.3.1使用游标
8.3.2游标在"选课系统"中的使用
8.4预处理SQL语句
8.4.1预处理SQL语句使用步骤
8.4.2"选课系统"中预处理SQL语句的使用
8.4.3预处理SQL语句的复杂应用
8.4.4静态SQL语句与预处理SQL语句
8.5存储程序的说明
习题
第9章事务机制与锁机制
9.1事务机制
9.1.1事务机制的必要性
9.1.2关闭MySQL自动提交
9.1.3回滚
9.1.4提交
9.1.5事务
9.1.6保存点
9.1.7"选课系统"中的事务
9.2锁机制
9.2.1锁机制的必要性
9.2.2MySQL锁机制的基础知识
9.2.3MyISAM表的表级锁
9.2.4InnoDB表的行级锁
9.2.5"选课系统"中的行级锁
9.2.6InnoDB表的意向锁
9.2.7InnoDB行级锁与索引之间的关系
9.2.8间隙锁与死锁
9.2.9死锁与锁等待
9.3事务的ACID特性
9.3.1事务的ACID特性
9.3.2事务的隔离级别与并发问题
9.3.3设置事务的隔离级别
9.3.4使用间隙锁避免幻读现象
9.4事务与锁机制注意事项
习题
第四篇综合实训
第10章网上选课系统的开发
10.1PHP预备知识
10.1.1为何选用B/S结构以及PHP脚本语言
10.1.2PHP脚本语言概述
10.1.3PHP脚本程序的工作流程
10.1.4Web服务器的部署
10.1.5注意事项
10.2软件开发生命周期SDLC
10.3网上选课系统的系统规划
10.3.1网上选课系统的目标
10.3.2网上选课系统的可行性分析
10.3.3网上选课系统的项目进度表
10.3.4网上选课系统的人员分工
10.4网上选课系统的系统分析
10.4.1网上选课系统的功能需求分析
10.4.2网上选课系统的非功能需求分析
10.5网上选课系统的系统设计
10.6网上选课系统的系统实施
10.6.1准备工作
10.6.2制作PHP连接MySQL服务器函数
10.6.3制作PHP权限系统函数
10.6.4首页index.php的开发
10.6.5教师注册模块的开发
10.6.6登录模块的开发
10.6.7注销模块的开发
10.6.8添加班级模块的开发
10.6.9学生注册模块的开发
10.6.10密码重置模块
10.6.11申报课程模块
10.6.12课程列表显示模块
10.6.13审核申报课程
10.6.14取消已审核课程
10.6.15浏览自己申报的课程
10.6.16删除课程
10.6.17学生选修或者调换已经审核的课程
10.6.18查看自己选修的课程
10.6.19取消选修课程
10.6.20查看课程的学生信息列表
10.6.21查看选修人数少于30人的课程信息
10.7界面设计与MVC模式
10.8网上选课系统的测试
习题
第五篇MySQL管理及维护
第11章MySQL日志与事件
11.1MySQL日志
11.1.1数据皆需要缓存
11.1.2MySQL错误日志
11.1.3MySQL普通查询日志
11.1.4MySQL慢查询日志
11.1.5MySQL慢查询日志的查看
11.2二进制日志
11.2.1启动二进制日志
11.2.2二进制日志文件内容的查看
11.2.3获取当前的二进制日志文件及偏移位置
11.2.4使用二进制日志恢复数据库
11.2.5与MySQL二进制日志有关的参数
11.2.6二进制日志的清理
11.3InnoDB事务日志
11.4日志文件的备份
11.5MySQL事件
11.5.1创建MySQL事件
11.5.2开启MySQL事件调度器
11.5.3查看MySQL事件的定义
11.5.4删除MySQL事件的定义
习题
第12章MySQL备份与恢复
12.1备份与恢复概述
12.1.1防止数据丢失的方法
12.1.2数据备份概述
12.2逻辑备份与逻辑恢复
12.2.1使用select…into outfile…备份表数据
12.2.2恢复表数据
12.2.3使用mysqldump备份数据库
12.2.4逻辑备份综合示例
12.2.5二进制日志恢复数据库的综合示例
12.3物理备份与热备份
12.3.1物理备份的所需文件
12.3.2MyISAM表物理备份、热备份工具
12.3.3InnoDB表物理备份、热备份工具
12.3.4Xtrabackup的工作原理
12.3.5使用Xtrabackup实现完全备份与增量备份
12.3.6使用Xtrabackup实现数据库恢复
12.4MySQL复制(replication)
12.4.1MySQL复制的实现原理
12.4.2MySQL复制的实现
12.4.3复制线程的状态
12.4.4与复制有关的文件
12.4.5复制的配置
12.4.6MySQL复制模式
12.4.7自增型字段冲突问题
12.4.8事件损坏
12.4.9小结
12.5备份策略
习题
第13章MySQL安全管理
13.1MySQL安全管理
13.2MySQL账户与权限表
13.2.1grant命令语法格式
13.2.2创建MySQL服务实例级别的账户
13.2.3创建MySQL数据库级别的账户
13.2.4创建MySQL表级别的账户
13.2.5创建MySQL字段级别的账户
13.2.6创建MySQL存储程序级别的账户
13.2.7注意事项
13.2.8host权限表
13.3MySQL账户管理
13.3.1使用create user创建MySQL账户
13.3.2查看MySQL账户信息
13.3.3删除已有账户
13.3.4修改已有账户的信息
13.3.5MySQL账户的资源次数限制
13.3.6使用更新语句修改MySQL账户信息
13.3.7权限的生效时机
13.4MySQL安全管理的注意事项
13.4.1MySQL账户名重名问题
13.4.2root账号密码丢失问题
13.4.3消除MySQL安全隐患
13.4.4MySQL安全管理的其他注意事项
习题
第14章MySQL优化
14.1基础知识
14.1.1影响数据库系统性能的组件
14.1.2参数信息与状态信息
14.1.3缓存机制
14.1.4缓存的分类
14.1.5超时
14.2MySQL连接的优化
14.3缓存的优化
14.3.1查询缓存Query Cache
14.3.2结果集缓存
14.3.3排序缓存
14.3.4join连接缓存
14.3.5表缓存Cache与表结构定义缓存Cache
14.3.6表扫描缓存buffer
14.3.7MyISAM索引缓存buffer
14.3.8日志缓存
14.3.9预读机制
14.3.10延迟更新
14.3.11内存表与临时表
14.4InnoDB优化
14.4.1InnoDB缓存池
14.4.2InnoDB缓存池内部结构
14.4.3InnoDB缓存池预热
14.4.4InnoDB缓存池的状态信息
14.4.5常见的InnoDB参数设置
14.4.6InnoDB实时监控
14.5优化表
14.5.1优化表结构
14.5.2表的拆分
14.5.3分区
14.5.4表分析与表检查
14.5.5NULL值对统计信息的影响
14.5.6记录的格式
14.6SQL语句优化
14.6.1了解SQL的执行频率
14.6.2定位执行效率较低的SQL语句
14.6.3分析select语句
14.6.4索引与select语句
14.6.5分页与select
14.6.6SQL语句其他注意事项
14.6.7profiling性能分析工具
14.7锁资源的优化
14.7.1表级锁资源竞争
14.7.2表级锁资源竞争的解决方案
14.7.3行级锁的资源竞争
14.7.4行级锁资源竞争的解决方案
14.7.5禁用InnoDB间隙锁
14.7.6事务监控与锁监控
14.7.7元数据锁metadata locks
第15章MySQL Cluster
15.1MySQL Cluster简介
15.1.1MySQL集群的组成
15.1.2MySQL集群架构
15.2MySQL Cluster环境搭建
15.2.1准备工作
15.2.2数据节点的配置
15.2.3SQL节点的配置
15.2.4管理节点的配置
15.2.5MySQL集群的启动
15.2.6集群测试
参考文献