第一篇 基础知识
第1章 初识庐山真面目——MySQL数据库
1.1 为什么选择MySQL数据库
1.1.1 什么是MySQL数据库
1.1.2 MySQL的优势
1.1.3 MySQL的发展史
1.2 MySQL特性
1.3 MySQL的应用环境
1.4 MySQL的管理软件
1.5 如何学MySQL
1.5.1 如何学好MySQL
1.5.2 MySQL学习常见问题
1.6 小结
1.7 习题
第2章 再识庐山真面目——简单的MySQL环境
2.1 数据根源——MySQL下载
2.2 搭建桥梁——MySQL环境安装
2.3 启动、连接、断开和停止MySQL服务器
2.3.1 启动和停止MySQL服务器
2.3.2 连接和断开MySQL服务器
2.4 使用免安装的MySQL
2.5 MySQL Workbench图形化管理工具
2.5.1 MySQL Workbench安装
2.5.2 创建数据库和数据表
2.5.3 添加数据
2.5.4 数据的导入和导出
2.6 phpMyAdmin图形化管理工具
2.6.1 数据库操作管理
2.6.2 管理数据表
2.6.3 管理数据记录
2.6.4 导入导出数据
2.6.5 phpMyAdmin设置编码格式
2.6.6 phpMyAdmin添加服务器新用户
2.6.7 phpMyAdmin中重置MySQL服务器登录密码
2.7 上机实践
2.7.1 启动、停止服务器
2.7.2 连接MySQL服务器
2.8 小结
2.9 习题
第3章 如何存储和获取数据——MySQL存储引擎、数据类型和运算符
3.1 最常用的引擎类型——MySQL存储引擎
3.1.1 什么是MySQL存储引擎
3.1.2 查询MySQL中支持的存储引擎
3.1.3 InnoDB存储引擎
3.1.4 MyISAM存储引擎
3.1.5 MEMORY存储引擎
3.1.6 如何选择存储引擎
3.1.7 设置数据表的存储引擎
3.2 数据是如何分类的——MySQL数据类型
3.2.1 数字类型
3.2.2 字符串类型
3.2.3 日期和时间数据类型
第一篇 基础知识
第1章 初识庐山真面目——MySQL数据库
1.1 为什么选择MySQL数据库
1.1.1 什么是MySQL数据库
1.1.2 MySQL的优势
1.1.3 MySQL的发展史
1.2 MySQL特性
1.3 MySQL的应用环境
1.4 MySQL的管理软件
1.5 如何学MySQL
1.5.1 如何学好MySQL
1.5.2 MySQL学习常见问题
1.6 小结
1.7 习题
第2章 再识庐山真面目——简单的MySQL环境
2.1 数据根源——MySQL下载
2.2 搭建桥梁——MySQL环境安装
2.3 启动、连接、断开和停止MySQL服务器
2.3.1 启动和停止MySQL服务器
2.3.2 连接和断开MySQL服务器
2.4 使用免安装的MySQL
2.5 MySQL Workbench图形化管理工具
2.5.1 MySQL Workbench安装
2.5.2 创建数据库和数据表
2.5.3 添加数据
2.5.4 数据的导入和导出
2.6 phpMyAdmin图形化管理工具
2.6.1 数据库操作管理
2.6.2 管理数据表
2.6.3 管理数据记录
2.6.4 导入导出数据
2.6.5 phpMyAdmin设置编码格式
2.6.6 phpMyAdmin添加服务器新用户
2.6.7 phpMyAdmin中重置MySQL服务器登录密码
2.7 上机实践
2.7.1 启动、停止服务器
2.7.2 连接MySQL服务器
2.8 小结
2.9 习题
第3章 如何存储和获取数据——MySQL存储引擎、数据类型和运算符
3.1 最常用的引擎类型——MySQL存储引擎
3.1.1 什么是MySQL存储引擎
3.1.2 查询MySQL中支持的存储引擎
3.1.3 InnoDB存储引擎
3.1.4 MyISAM存储引擎
3.1.5 MEMORY存储引擎
3.1.6 如何选择存储引擎
3.1.7 设置数据表的存储引擎
3.2 数据是如何分类的——MySQL数据类型
3.2.1 数字类型
3.2.2 字符串类型
3.2.3 日期和时间数据类型
3.3 最基本的程序元素——MySQL运算符
3.3.1 算术运算符
3.3.2 比较运算符
3.3.3 逻辑运算符
3.3.4 位运算符
3.3.5 运算符的优先级
3.4 上机实践
3.4.1 查看存储引擎、创建和删除数据库
3.4.2 位运算的比较
3.4.3 逻辑运算符的使用
3.5 小结
3.6 习题
第4章 最实用的编程语句——MySQL基本操作
4.1 MySQL数据库操作
4.1.1 创建数据库CREATE DATABASE
4.1.2 查看数据库SHOW DATABASES
4.1.3 选择数据库USE DATABASE
4.1.4 删除数据库DROP DATABASE
4.2 MySQL数据表操作
4.2.1 创建数据表CREATE TABLE
4.2.2 查看表结构SHOW COLUMNS或DESCRIBE
4.2.3 修改表结构ALTER TABLE
4.2.4 重命名表RENAME TABLE
4.2.5 删除表DROP TABLE
4.3 MySQL语句操作
4.3.1 插入记录INSERT
4.3.2 查询数据库记录SELECT
4.3.3 修改记录UPDATE
4.3.4 删除记录DELETE
4.4 上机实践
4.4.1 操作teacher表
4.4.2 存在外键约束时,不能删除、更新主表
4.4.3 登录数据库系统
4.5 小结
4.6 习题
第5章 在迷宫中寻找出口——掌握函数
5.1 程序的灵魂——MySQL函数
5.2 数字的趣味——数学函数
5.2.1 ABS(x)函数
5.2.2 FLOOR(x)函数
5.2.3 RAND()函数
5.2.4 PI()函数
5.2.5 TRUNCATE(x, y)函数
5.2.6 ROUND(x)函数和ROUND(x, y)函数
5.2.7 SQRT(x)函数
5.3 让字符舞起来——字符串函数
5.3.1 INSERT(s1,x, len, s2)函数
5.3.2 UPPER(s)函数和UCASE(s)函数
5.3.3 LEFT(s, n)函数
5.3.4 RTRIM(s)函数
5.3.5 SUBSTRING(s, n,len)函数
5.3.6 REVERSE(s)函数
5.3.7 FIELD(s, s1,s2,……)函数
5.4 时间如宝——日期和时间函数
5.4.1 CURDATE()函数和CURRENT_DATE()函数
5.4.2 CURTIME()函数和CURRENT_TIME()函数
5.4.3 NOW()函数
5.4.4 DATEDIFF(d1,d2)函数
5.4.5 ADDDATE(d, n)函数
5.4.6 ADDDATE(d, INTERVAL expr type)函数
5.4.7 SUBDATE(d, n)函数
5.5 多种选择——条件判断函数
5.6 系统信息函数
5.6.1 获取MySQL版本号、连接数和数据库名的函数
5.6.2 获取用户名的函数
5.6.3 获取字符串的字符集和排序方式的函数
5.7 安全设置——加密函数
5.7.1 加密函数PASSWORD(str)
5.7.2 加密函数MD5(str)
5.8 其他函数
5.8.1 格式化函数FORMAT(x, n)
5.8.2 改变字符集的函数
5.8.3 改变字段数据类型的函数
5.9 上机实践
5.9.1 字符串函数的使用
5.9.2 查看当前数据库版本号
5.9.3 生成3个1~100之间的随机整数
5.10 小结
5.11 习题
第6章 不可不知的查询方法——数据查询
6.1 简单明了——基本查询语句
6.2 最通俗易懂——单表查询
6.2.1 查询所有字段
6.2.2 查询指定字段
6.2.3 查询指定数据
6.2.4 带IN关键字的查询
6.2.5 带BETWEEN AND的范围查询
6.2.6 带LIKE的字符匹配查询
6.2.7 用IS NULL关键字查询空值
6.2.8 带AND的多条件查询
6.2.9 带OR的多条件查询
6.2.10 用DISTINCT关键字去除结果中的重复行
6.2.11 用ORDER BY关键字对查询结果排序
6.2.12 用GROUP BY关键字分组查询
6.2.13 用LIMIT限制查询结果的数量
6.3 掺杂数字趣味——聚合函数查询
6.3.1 COUNT()函数
6.3.2 SUM()函数
6.3.3 AVG()函数
6.3.4 MAX()函数
6.3.5 MIN()函数
6.4 串联一起——连接查询
6.4.1 内连接查询
6.4.2 外连接查询
6.4.3 复合条件连接查询
6.5 从外到内——子查询
6.5.1 带IN关键字的子查询
6.5.2 带比较运算符的子查询
6.5.3 带EXISTS关键字的子查询
6.5.4 带ANY关键字的子查询
6.5.5 带ALL关键字的子查询
6.6 合并查询结果
6.7 字段昵称——定义表和字段的别名
6.7.1 为表取别名
6.7.2 为字段取别名
6.8 使用正则表达式查询
6.8.1 匹配指定字符中的任意一个
6.8.2 使用“*”和“+”来匹配多个字符
6.9 上机实践
6.9.1 使用聚合函数SUM对学生成绩进行汇总
6.9.2 查询大于指定条件的记录
6.9.3 使用比较运算符进行子查询
6.10 小结
6.11 习题
第二篇 核心技术
第7章 让程序速度加快——MySQL索引
7.1 MySQL索引概貌
7.1.1 MySQL索引概述
7.1.2 MySQL索引分类
7.2 创建索引
7.2.1 在建立数据表时创建索引
7.2.2 在已建立的数据表中创建索引
7.2.3 修改数据表结构添加索引
7.3 删除索引
7.4 上机实践
7.4.1 使用CREATE INDEX创建索引
7.4.2 使用ALTER TABLE语句创建全文索引
7.4.3 删除唯一索引
7.5 小结
7.6 习题
第8章 一次编写多次调用——MySQL存储过程
8.1 创建存储过程和存储函数
8.1.1 创建存储过程
8.1.2 创建存储函数
8.1.3 变量的应用
8.1.4 光标的运用
8.2 流程控制语句
8.2.1 IF语句
8.2.2 CASE语句
8.2.3 WHILE循环语句
8.2.4 LOOP循环语句
8.2.5 REPEAT循环语句
8.3 调用存储过程和存储函数
8.3.1 调用存储过程
8.3.2 调用存储函数
8.4 查看存储过程和函数
8.4.1 SHOW STATUS语句
8.4.2 SHOW CREATE语句
8.5 修改存储过程和函数
8.6 删除存储过程和函数
8.7 捕获存储过程中的错误
8.7.1 定义条件
8.7.2 定义处理程序
8.8 上机实践
8.8.1 使用存储过程实现用户注册(PHP)
8.8.2 修改存储函数
8.8.3 从information_schema.Routines表中查看存储过
程
8.9 小结
8.10 习题
第9章 定时炸弹——触发器
9.1 MySQL触发器
9.1.1 创建MySQL触发器
9.1.2 创建具有多个执行语句的触发器
9.2 查看触发器
9.2.1 SHOW TRIGGERS
9.2.2 查看triggers表中触发器信息
9.3 应用触发器
9.4 删除触发器
9.5 上机实践
9.5.1 创建一个由INSERT触发的触发器
9.5.2 获取数据库中的触发器
9.5.3 使用DROP TIRGGER删除触发器
9.6 小结
9.7 习题
第10章 虚拟世界——MySQL视图
10.1 MySQL视图
10.1.1 视图的概念
10.1.2 视图的作用
10.2 创建视图
10.2.1 查看用户是否具有创建视图的权限
10.2.2 创建视图
10.2.3 创建视图的注意事项
10.3 查看视图
10.4 修改视图
10.5 更新视图
10.6 删除视图
10.7 上机实践
10.7.1 在views表中查看视图详细信息
10.7.2 在单表上创建视图
10.7.3 使用MySQL视图查询学生信息表
10.8 小结
10.9 习题
第11章 让程序听话——MySQL事务
11.1 MySQL事务概述
11.1.1 原子性
11.1.2 一致性
11.1.3 孤立性
11.1.4 持久性
11.2 MySQL事务的创建与存在周期
11.2.1 初始化事务
11.2.2 创建事务
11.2.3 应用SELECT语句查看数据是否被正确输入
11.2.4 提交事务
11.2.5 撤销事务(事务回滚)
11.2.6 事务的存在周期
11.3 MySQL行为
11.3.1 自动提交
11.3.2 事务的孤立级
11.3.3 修改事务的孤立级
11.4 事务和性能
11.4.1 应用小事务
11.4.2 选择合适的孤立级
11.4.3 死锁的概念与避免
11.5 MySQL伪事务
11.5.1 用表锁定代替事务
11.5.2 应用表锁实现伪事务
11.6 上机实践
11.6.1 使用事务处理技术实现银行的安全转账(PHP)
11.6.2 批处理中使用事务(Java)
11.7 小结
11.8 习题
第12章 实施管理任务——MySQL系统管理
12.1 MySQL系统管理
12.1.1 管理职责概述
12.1.2 日常管理
12.1.3 安全问题
12.1.4 数据库修复和维护
12.2 数据目录的位置
12.3 数据目录的结构
12.4 MySQL服务器如何提供对数据的访问
12.5 MySQL数据库在文件系统里如何表示
12.6 MySQL数据表在文件系统里如何表示
12.6.1 ISAM数据表
12.6.2 MyISAM数据表
12.6.3 MERGE数据表
12.6.4 BDB数据表
12.6.5 InnoDB数据表
12.6.6 HEAP数据表
12.7 SQL语句如何映射为数据表文件操作
12.7.1 创建数据表
12.7.2 更新数据表
12.7.3 删除数据表
12.8 操作系统对数据库和数据表命名的限制
12.9 数据目录的结构对系统性能的影响
12.10 MySQL状态文件和日志文件
12.11 小结
12.12 习题
第三篇 高级技术
第13章 保存数据必备——数据库备份与还原
13.1 数据备份
13.1.1 使用mysqldump命令备份
13.1.2 直接复制整个数据库目录
13.1.3 使用mysqlhotcopy工具快速备份
13.2 数据还原
13.2.1 使用mysql命令还原
13.2.2 直接复制到数据库目录
13.3 数据库迁移
13.3.1 MySQL相同版本的数据库之间的迁移
13.3.2 不同数据库之间的迁移
13.4 表的导出和导入
13.4.1 用SELECT……INTO OUTFILE导出文本文件
13.4.2 用mysqldump命令导出文本文件
13.4.3 用mysql命令导出文本文件
13.5 上机实践
13.5.1 将表中的内容导出到文件中
13.5.2 使用mysql命令导出HTML文件
13.5.3 导出XML文件
13.6 小结
13.7 习题
第14章 提高程序的便捷——MySQL性能优化
14.1 优化简介
14.2 优化查询
14.2.1 分析语句查询
14.2.2 索引对查询速度的影响
14.2.3 使用索引查询
14.3 优化数据库结构
14.3.1 将字段很多的表分解成多个表
14.3.2 增加中间表
14.3.3 优化插入记录的速度
14.3.4 分析表、检查表和优化表
14.4 查询高速缓存
14.4.1 检验高速缓存是否开启
14.4.2 使用高速缓存
14.5 优化多表查询
14.6 优化表设计
14.7 上机实践
14.7.1 查看MySQL服务器的连接、查询次数
14.7.2 检查表
14.7.3 优化表
14.8 小结
14.9 习题
第15章 进入了武器库——MySQL数据库安全技术
15.1 MySQL基本的安全保护策略
15.2 用户和权限管理
15.2.1 使用CREATE USER命令创建用户
15.2.2 使用DROP USER命令删除用户
15.2.3 使用RENAME USER命令重命名用户
15.2.4 GRANT和REVOKE命令
15.3 MySQL数据库安全技术的常见问题
15.3.1 权限更改何时生效
15.3.2 设置账户密码
15.3.3 使密码更安全
15.4 小结
15.5 习题
第16章 琐碎小事——MySQL日常管理
16.1 连接故障恢复
16.1.1 MySQL套接字被误删
16.1.2 忘记root口令
16.2 日志文件管理
16.2.1 错误日志
16.2.2 通用查询日志
16.2.3 二进制日志
16.2.4 慢速查询日志
16.2.5 日志文件维护
16.2.6 日志失效处理
16.3 MySQL服务器镜像配置
16.3.1 镜像机制概念
16.3.2 建立主-从镜像关系
16.3.3 MySQL双机热备份
16.4 MySQL服务器的一些优化配置
16.4.1 对MySQL服务器的连接监听情况进行控制
16.4.2 启用或禁用LOAD DATA语句的LOCAL能力
16.4.3 国际化和本地化
16.4.4 对老数据表进行转换以激活MySQL 4.1的字符集支
持
16.5 优化MySQL服务器
16.5.1 服务器参数变量的设置
16.5.2 通用的MySQL服务器变量
16.5.3 InnoDB处理程序变量
16.6 运行多个MySQL服务器
16.6.1 运行多个MySQL服务器需要注意的问题
16.6.2 设置MySQL服务器启动选项的策略
16.6.3 用mysql_multi脚本启动多个MySQL服务器
16.6.4 在Windows系统上运行多个MySQL服务器
16.7 小结
16.8 习题
第17章 更上一层楼——PHP访问MySQL数据库
17.1 PHP语言概述
17.1.1 什么是PHP
17.1.2 为什么选择PHP
17.1.3 PHP的工作原理
17.1.4 PHP结合数据库应用的优势
17.2 PHP操作MySQL数据库的步骤
17.3 使用PHP操作MySQL数据库
17.3.1 mysql_connect()函数连接MySQL服务器
17.3.2 mysql_select_db()函数连接MySQL数据库
17.3.3 mysql_query()函数执行SQL语句
17.3.4 mysql_fetch_array()函数将结果集返回到数组
中
17.3.5 mysql_fetch_row()函数从结果集中获取一行作
为枚举数组
17.3.6 mysql_num_rows()函数获取查询结果集中的记录
数
17.3.7 mysql_free_result()函数释放内存
17.3.8 mysql_close()函数关闭连接
17.4 PHP管理MySQL数据库中的数据
17.4.1 向数据库中添加数据
17.4.2 浏览数据库中数据
17.4.3 编辑数据库数据
17.4.4 删除数据
17.4.5 批量删除数据
17.5 常见问题与解决方法
17.6 MySQL与PHP的应用实例——迷你日记
17.6.1 迷你日记概述
17.6.2 数据库设计
17.6.3 用户登录
17.6.4 发表日记
17.6.5 分页显示日记列表
17.6.6 弹出窗口修改日记
17.6.7 查询日记
17.6.8 应用JavaScript实现批量删除
17.7 小结
17.8 习题
第四篇 项目实战
第18章 Java与MySQL数据库——图书管理系统
18.1 开发背景
18.2 系统分析
18.2.1 需求分析
18.2.2 可行性研究
18.3 系统设计
18.3.1 系统目标
18.3.2 系统功能结构
18.3.3 系统流程图
18.3.4 文件夹组织结构
18.4 系统预览
18.5 数据库设计
18.5.1 数据库分析
18.5.2 数据库概念设计
18.5.3 数据库逻辑结构
18.6 公共模块设计
18.6.1 数据库连接及操作类的编写
18.6.2 字符串处理类的编写
18.6.3 配置解决中文乱码的过滤器
18.7 主界面设计
18.7.1 主界面概述
18.7.2 主界面技术分析
18.7.3 主界面的实现过程
18.8 管理员模块设计
18.8.1 管理员模块概述
18.8.2 管理员模块技术分析
18.8.3 系统登录的实现过程
18.8.4 查看管理员的实现过程
18.8.5 添加管理员的实现过程
18.8.6 设置管理员权限的实现过程
18.8.7 删除管理员的实现过程
18.8.8 单元测试
18.9 图书借还模块设计
18.9.1 图书借还模块概述
18.9.2 图书借还模块技术分析
18.9.3 图书借阅的实现过程
18.9.4 图书续借的实现过程
18.9.5 图书归还的实现过程
18.9.6 图书借阅查询的实现过程
18.9.7 单元测试
18.10 开发问题解析
18.10.1 如何自动计算图书归还日期
18.10.2 如何对图书借阅信息进行统计排行
18.11 小结
第19章 C语言与MySQL数据库——图书管理系统
19.1 需求分析
19.2 系统设计
19.2.1 系统目标
19.2.2 系统功能结构
19.2.3 系统预览
19.2.4 开发及运行环境
19.3 数据库设计
19.3.1 安装MySQL数据库
19.3.2 启动MySQL数据库
19.3.3 创建数据库
19.3.4 数据表结构
19.4 C语言开发数据库程序的流程
19.4.1 在C语言中引入如下头文件
19.4.2 引入库函数
19.5 数据库管理模块设计
19.5.1 MySQL常用数据库操作函数
19.5.2 连接MySQL数据库
19.5.3 查询图书表记录
19.5.4 插入图书表记录
19.5.5 修改图书表记录
19.5.6 删除图书表记录
19.6 文件引用
19.7 变量和函数定义
19.8 管理模块设计
19.8.1 显示主菜单信息
19.8.2 显示所有图书信息
19.8.3 添加图书信息
19.8.4 修改图书信息
19.8.5 删除图书信息
19.8.6 查询图书信息
19.9 小结