第1章 初识MySQL
1.1 数据库基础
- 1.1.1 什么是数据库
- 1.1.2 表
- 1.1.3 数据类型
- 1.1.4 主键
1.2 数据库技术构成
- 1.2.1 数据库系统
- 1.2.2 SQL语言
- 1.2.3 数据库访问接口
1.3 什么是MySQL
- 1.3.1 客户机-服务器软件
- 1.3.2 MySQL版本
- 1.3.3 MySQL优势
- 1.3.4 MySQL5.7的新功能
1.4 MySQL工具
- 1.4.1 MySQL命令行实用程序
- 1.4.2 MySQL Workbench
1.5 如何学习MySQL
第2章 MySQL的安装与配置
2.1 Windows平台下安装与配置MySQL5.7
- 2.1.1 安装MySQL5.7
- 2.1.2 配置MySQL5.7
2.2 启动服务并登录MySQL数据库
- 2.2.1 启动MySQL服务
- 2.2.2 登录MySQL数据库
- 2.2.3 配置Path环境变量
2.3 MySQL常用图形化管理工具
2.4 Linux平台下安装与配置MySQL5.7
- 2.4.1 Linux操作系统下的MySQL版本介绍
- 2.4.2 安装和配置MySQL的RPM包
- 2.4.3 安装和配置MySQL的源码包
2.5 专家解惑
2.6 经典习题
第3章 数据库的基本操作
3.1 创建数据库
3.2 删除数据库
3.3 数据库存储引擎
- 3.3.1 MySQL存储引擎简介
- 3.3.2 InnoDB存储引擎
- 3.3.3 MyISAM存储引擎
- 3.3.4 MEMORY存储引擎
- 3.3.5 存储引擎的选择
3.4 综合案例——数据库的创建和删除
3.5 专家解惑
3.6 经典习题
第4章 数据表的基本操作
4.1 创建数据表
- 4.1.1 创建表的语法形式
- 4.1.2 使用主键约束
- 4.1.3 使用外键约束
- 4.1.4 使用非空约束
- 4.1.5 使用唯一性约束
- 4.1.6 使用默认约束
- 4.1.7 设置表的属性值自动增加
4.2 查看数据表结构
- 4.2.1 查看表基本结构语句DESCRIBE
- 4.2.2 查看表的详细结构语句SHOW CREATE TABLE
4.3 修改数据表
- 4.3.1 修改表名
- 4.3.2 修改字段的数据类型
- 4.3.3 修改字段名
- 4.3.4 添加字段
- 4.3.5 删除字段
- 4.3.6 修改字段的排列位置
- 4.3.7 更改表的存储引擎
- 4.3.8 删除表的外键约束
4.4 删除数据表
- 4.4.1 删除没有被关联的表
- 4.4.4 删除被其他表关联的主表
4.5 综合案例——数据表的基本操作
4.6 转接解惑
4.7 经典习题
第5章 数据类型和运算符
5.1 MySQL数据类型介绍
- 5.1.1 整数类型
- 5.1.2 浮点数类型和定点数类型
- 5.1.3 日期与时间类型
- 5.1.4 文本字符串类型
- 5.1.5 二进制字符串类型
5.2 如何选择数据类型
5.3 常见运算符介绍
- 5.3.1 运算符概述
- 5.3.2 算术运算符
- 5.3.3 比较运算符
- 5.3.4 逻辑运算符
- 5.3.5 位运算符
- 5.3.6 运算符的优先级
5.4 综合案例——运算符的使用
5.5 专家解惑
5.6 经典习题
第6章 MySQL函数
6.1 MySQL函数简介
6.2 数学函数
- 6.2.1 绝对值函数ABS(x)和返回圆周率的函数PI()
- 6.2.2 平方根函数SQRT(x)和求余函数MOD(x,y)
- 6.2.3 获取整数的函数CEIL(x)、CEILNG(x)和FLOOR(x)
- 6.2.4 获取随机数的函数RAND()和RAND(x)
- 6.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
- 6.2.6 符号函数SIGN(x)
- 6.2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)
- 6.2.8 对数运算函数LOG(x)和LOG10(x)
- 6.2.9 角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)
- 6.2.10 正弦函数SIN(x)和反正弦函数ASIN(x)
- 6.2.11 余弦函数COS(x)和反余弦函数ACOS(x)
- 6.2.12 正切函数、反正切函数和余切函数
6.3 字符串函数
- 6.3.1 计算字符串字符数的函数和字符串长度的函数
- 6.3.2 合并字符串函数CONCAT(s1,s2,...)、CONCAT_WS(x,s1,s2,...)
- 6.3.3 替换字符串的函数INSERT(s1,x,len,s2)
- 6.3.4 字母大小写转换函数
- 6.3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)
- 6.3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
- 6.3.7删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)
- 6.3.8 删除指定字符串的函数TRIM(s1 FROM s)
- 6.3.9 重复生成字符串的函数REPEAT(s,n)
- 6.3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)
- 6.3.11 比较字符串大小的函数STRCMP(s1,s2)
- 6.3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
- 6.3.13 匹配子串开始位置的函数
- 6.3.14 字符串逆序的函数REVERSE(s)
- 6.3.15 返回指定位置的字符串函数
- 6.3.16 返回指定字符串位置的函数FIELD(s,s1,s2,...)
- 6.3.17 返回子串位置的函数FIND_IN_SET(s1,s2)
- 6.3.18 选取字符串的函数MAKE_SET(x,s1,s2,...)
6.4 日期和时间函数
- 6.4.1 获取当前日期的函数和获取当前时间的函数
- 6.4.2 获取当前日期和时间的函数
- 6.4.3 UNIX时间戳函数
- 6.4.4 返回UTC日期的函数和返回UTC时间的函数
- 6.4.5 获取月份的函数MONTH(date)和MONTHNAME(date)
- 6.4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
- 6.4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d)
- 6.4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
- 6.4.9 获取年份、季度、小时、分钟和秒钟的函数
- 6.4.10 获取日期的指定值的函数EXTRACT(type FROM date)
- 6.4.11 时间和秒钟转换的函数
- 6.4.12 计算日期和时间的函数
- 6.4.13 将日期和时间格式化的函数
6.5 条件判断函数
- 6.5.1 IF(expr,v1,v2)函数
- 6.5.2 IFNULL(v1,v2)
- 6.5.3 CASE函数
6.6 系统信息函数
- 6.6.1 获取MySQL版本号、连接数和数据库名的函数
- 6.6.2 获取用户数的函数
- 6.6.3 获取字符串的字符集和排序方式的函数
- 6.6.4 获取最后一个自动生成的ID值的函数
6.7 加/解密函数
- 6.7.1 加密函数PASSWORD(str)
- 6.7.2 加密函数MD5(str)
- 6.7.3 加密函数ENCODE(str,pswd_str)
- 6.7.4 解密函数DECODE(crypt_str,pswd_str)
6.8 其他函数
- 6.8.1 格式化函数FORMAT(x,n)
- 6.8.2 不同进制的数字进行转换的函数
- 6.8.3 IP地址与数字相互转换的函数
- 6.8.4 加锁函数和解锁函数
- 6.8.5 重复执行指定操作的函数
- 6.8.6 改变字符集的函数
- 6.8.7 改变数据类型的函数
6.9 综合案例——MySQL函数的使用
6.10 专家解惑
6.11 经典习题
第7章 查询数据
7.1 基本查询语句
7.2 单表查询
- 7.2.1 查询所有字段
- 7.2.2 查询指定字段
- 7.2.3 查询指定记录
- 7.2.4 带IN关键字的查询
- 7.2.5 带BETWEEN AND的范围查询
- 7.2.6 带LIKE的字符匹配查询
- 7.2.7 查询空值
- 7.2.8 带AND的多条件查询
- 7.2.9 带OR的多条件查询
- 7.2.10 查询结果不重复
- 7.2.11 对查询结果排序
- 7.2.12 分组查询
- 7.2.13 使用LIMIT限制查询结果的数量
7.3 使用聚合函数查询
- 7.3.1 COUNT()函数
- 7.3.2 SUM()函数
- 7.3.3 AVG()函数
- 7.3.4 MAX()函数
- 7.3.5 MIN()函数
7.4 连接查询
- 7.4.1 内连接查询
- 7.4.2 外连接查询
- 7.4.3 复合条件连接查询
7.5 子查询
- 7.5.1 带ANY、SOME关键字的查询
- 7.5.2 带ALL关键字的查询
- 7.5.3 带EXISTS关键字的查询
- 7.5.4 带IN关键字的查询
- 7.5.6 带比较运算符的子查询
7.6 合并查询结果
7.7 为表和字段取别名
- 7.7.1 为表取别名
- 7.7.2 为字段取别名
7.8 使用正则表达式查询
- 7.8.1 查询以特定字符或字符串开头的记录
- 7.8.2 查询以特定字符串或字符串结尾的记录
- 7.8.3 用符号“.”来替代字符串中的任意一个字符
- 7.8.4 使用“*”和“+”来匹配多个字符
- 7.8.5 匹配指定字符串
- 7.8.6 匹配指定字符串的任意一个
- 7.8.7 匹配指定字符串以外的字符
- 7.8.8 使用{n,}或者{n,m}来指定字符串连续出现的次数
7.9 综合案例——数据表查询操作
7.10 专家解惑
7.11 经典习题
第8章 插入、更新与删除数据
8.1 插入数据
- 8.1.1 为表的所有字段插入数据
- 8.1.2 为表的指定字段插入数据
- 8.1.3 同时插入多条记录
- 8.1.4 将查询结果插入到表中
8.2 更新数据
8.3 删除数据
8.4 综合案例——记录的插入、更新和删除
8.5 专家解惑
8.6 经典习题
第9章 索引
9.1 索引简介
- 9.1.1 索引的含义和特点
- 9.1.2 索引的分类
- 9.1.3 索引的设计原则
9.2 创建索引
- 9.2.1 创建表的时候创建索引
- 9.2.2 在已经存在的表上创建索引
9.3 删除索引
9.4 综合案例——创建索引
9.5 专家解惑
9.6 经典习题
第10章 存储过程和函数
10.1 创建存储过程和函数
- 10.1.1 创建存储过程
- 10.1.2 创建存储函数
- 10.1.3 变量的使用
- 10.1.4 定义条件和处理程序
- 10.1.5 光标的使用
- 10.1.6 流程控制的使用
10.2 调用存储过程和函数
- 10.2.1 调用存储过程
- 10.2.2 调用存储函数
10.3 查看存储过程和函数
- 10.3.1 使用SHOW STATUS语句查看存储过程和函数的状态
- 10.3.2 使用SHOW CREATE语句查看存储过程和函数的定义
- 10.3.3 从information_schema.Routines 表中查看存储过程和函数的信息
10.4 修改存储过程和函数
10.5 删除存储过程和函数
10.6 综合案例——创建存储过程和函数
10.7 专家解惑
10.8 经典习题
第11章 视图
11.1 视图概述
- 11.1.1 视图的含义
- 11.1.2 视图的作用
11.2 创建视图
- 11.2.1 创建视图的语法形式
- 11.2.2 在表单上创建视图
- 11.2.3 在多表上创建视图
11.3 查看视图
- 11.3.1 使用DESCRIBE语句查看视图基本信息
- 11.3.2 使用SHOW TABLE STATUS语句查看视图基本信息
- 11.3.3 使用SHOW CREATE VIEW语句查看视图详细信息
- 11.3.4 在views表中查看视图详细信息
11.4 修改视图
- 11.4.1 使用CREATE OR REPLACE VIEW语句修改视图
- 11.4.2 使用ALTER语句修改视图
11.5 更新视图
11.6 删除视图
11.7 综合案例——视图应用
11.8 专家解惑
11.9 经典习题
第12章 MySQL触发器
12.1 创建触发器
- 12.1.1 创建只有一个执行语句的触发器
- 12.1.2 创建有多个执行语句的触发器
12.2 查看触发器
- 12.2.1 SHOW TRIGGERS语句查看触发器信息
- 12.2.2 在triggers表中查看触发器信息
12.3 触发器的作用
12.4 删除触发器
12.5 综合案例——触发器的作用
12.6 专家解惑
12.7 经典习题
第13章 MySQL用户管理
13.1 权限表
- 13.1.1 user表
- 13.1.2 db表和host表
- 13.1.3 tables_priv表和columns_priv表
- 13.1.4 procs_priv表
13.2 账户管理
- 13.2.1 登录和退出MySQL服务器
- 13.2.2 新建普通用户
- 13.2.3 删除普通用户
- 13.2.4 root用户修改自己的密码
- 13.2.5 root用户修改普通用户的密码
- 13.2.6 普通用户修改密码
- 13.2.7 root用户密码丢失的解决办法
13.3 权限管理
- 13.3.1 MySQL的各种权限
- 13.3.2 授权
- 13.3.3 收回权限
- 13.3.4 查看权限
13.4 访问控制
- 13.4.1 连接核实阶段
- 13.4.2 请求核实阶段
13.5 综合案例——综合管理用户权限
13.6 专家解惑
13.7 经典习题
第14章 数据备份与恢复
14.1 数据备份
- 14.1.1 使用MySQLdump命令备份
- 14.1.2 直接复制整个数据库目录
- 14.1.3 使用MySQLhotcopy工具快速备份
14.2 数据恢复
- 14.2.1 使用MySQL命令恢复
- 14.2.2 直接复制到数据库目录
- 14.2.3 MySQLhotcopy快速恢复
14.3 数据库迁移
- 14.3.1 相同版本的MySQL数据库之间的迁移
- 14.3.2 不同版本的MySQL数据库之间的迁移
- 14.3.3 不同数据库之间的迁移
14.4 表的导出和导入
- 14.4.1 使用SELECT...INT OUTFILE导出文本文件
- 14.4.2 使用MySQLdump命令导出文本文件
- 14.4.3 使用MySQL命令导出文本文件
- 14.4.4 使用LOAD DATA INFILE方式导入文本文件
- 14.4.5 使用MySQLimport命令导入文本文件
14.5 综合案例——数据备份与恢复
14.6 专家解惑
14.7 经典习题
第15章 MySQL日志
15.1 日志简介
15.2 二进制日志
- 15.2.1 启动和设置二进制日志
- 15.2.2 查看二进制日志
- 15.2.3 删除二进制日志
- 15.2.4 使用二进制日志恢复数据库
- 15.2.5 暂时停止二进制日志功能
15.3 错误日志
- 15.3.1 启动和设置错误日志
- 15.3.2 查看错误日志
- 15.3.3 删除错误日志
15.4 通用查询日志
- 15.4.1 启动和设置通用查询日志
- 15.4.2 查看通用查询日志
- 15.4.3 删除通用查询日志
15.5 慢查询日志
- 15.5.1 启动和设置慢查询日志
- 15.5.2 查看慢查询日志
- 15.5.3 删除慢查询日志
15.6 综合案例——MySQL日志综合管理
15.7 专家解惑
15.8 经典习题
第16章 性能优化
16.1 优化简介
16.2 优化查询
- 16.2.1 分析查询语句
- 16.2.2 索引对查询速度的影响
- 16.2.3 使用索引查询
- 16.2.4 优化子查询
16.3 优化数据库结构
- 16.3.1 将字段很多的表分解成多个表
- 16.3.2 增加中间表
- 16.3.3 增加冗余字段
- 16.3.4 优化插入记录的速度
- 16.3.5 分析表、检查表和优化表
16.4 优化MySQL服务器
- 16.4.1 优化服务器硬件
- 16.4.2 优化MySQL的参数
16.5 综合案例——全面优化MySQL服务器
16.6 专家解惑
16.7 经典习题
第17章 MySQL Replication
17.1 MySQL Replication概述
17.2 Windows环境下的MySQL主从复制
- 17.2.1 复制前的准备工作
- 17.2.2 Windows环境下实现主从复制
- 17.2.3 Windows环境下主从复制测试
17.3 Linux环境下的MySQL复制
- 17.3.1 下载并安装MySQL5.7
- 17.3.2 单击主从复制前的准备工作
- 17.3.3 MySQLd_multi实现单机主从复制
- 17.3.4 不同服务器之间实现主从复制
- 17.3.5 MySQL主从复制启动选项
- 17.3.6 指定复制的数据库或者表
17.4 查看Slave的复制进度
17.5 日常管理维护
- 17.5.1 了解服务器的状态
- 17.5.2 服务器复制出错的原因
17.6 切换主从服务器
17.7 专家解惑
17.8 经典习题
第18章 MySQL Workbench的使用
18.1 MySQL Workbench的概述
- 18.1.1 MySQL Workbench的概述
- 18.1.2 MySQL Workbench的优势
- 18.1.3 MySQL Workbench的安装
18.2 SQL Development的基本操作
- 18.2.1 创建数据库连接
- 18.2.2 创建新的数据库
- 18.2.3 创建和删除新的数据表
- 18.2.4 添加、修改表记录
- 18.2.5 查询表记录
- 18.2.6 修改表结构
18.3 Data Modeling的基本操作
- 18.3.1 建立ER模型
- 18.3.2 导入ER模型
18.4 Server Administration的基本操作
- 18.4.1 管理MySQL用户
- 18.4.2 备份MySQL数据库
- 18.4.3 恢复MySQL数据库
18.5 专家解惑
18.6 经典习题
第19章 MySQL Cluster
19.1 MySQL Cluster概述
- 19.1.1 MySQL Cluster基本概念
- 19.1.2 理解MySQL Cluster节点
19.2 Linux环境下MySQL Cluster安装和配置
- 19.2.1 安装MySQL Cluster软件
- 19.2.2 管理节点配置步骤
- 19.2.3 配置SQL节点和数据节点
19.3 管理MySQL Cluster
- 19.3.1 Cluster的启动
- 19.3.2 Cluster的测试
- 19.3.3 Cluster的关闭
19.4 维护MySQL Cluster
- 19.4.1 Cluster的日志管理
- 19.4.2 Cluster的联机备份
- 19.4.3 Cluster的数据恢复
19.5 Windows操作系统中配置Cluster
19.6 专家解惑
19.7 经典习题
第20章 MySQL管理利器——MySQL Utilities
20.1 MySQL Utilities概述
20.2 安装与配置
- 20.2.1 下载与安装MySQL Utilities
- 20.2.2 MySQL Utilities连接数据库
20.3 管理与维护
- 20.3.1 使用mysqldbcompare比较数据
- 20.3.2 使用mysqldbcopy复制数据
- 20.3.3 使用mysqldbexport导出数据
- 20.3.4 使用mysqldbimport导入数据
- 20.3.5 使用mysqldiff比较对象的定义
20.4 专家解惑
20.5 经典习题
第21章 读写分离利器——MySQL Proxy
21.1 概述
21.2 安装与配置
- 21.2.1 下载与安装MySQL Proxy
- 21.2.2 配置MySQL Proxy参数
- 21.2.3 配置Path变量
21.3 使用MySQL Proxy实现读写分离
21.3 专家解惑
21.4 经典习题
第22章 PHP操作MySQL数据库
22.1 PHP访问MySQL数据的一般步骤
22.2 连接数据库前的准备工作
22.3 PHP操作MySQL数据库的函数
- 22.3.1 通过MySQLi类库访问MySQL数据库
- 22.3.2 使用MySQLi_connect()函数连接MySQL服务器
- 22.3.3 使用MySQLi_select_db()函数选择数据库文件
- 22.3.4 使用MySQLi_query()函数执行SQL语句
- 22.3.5 使用MySQLi_fetch_assoc()函数从数组结果集中获取信息
- 22.3.6 使用MySQLi_fetch_object()函数从结果中获取一行作为对象
- 22.3.7 使用MySQLi_num_rows()函数获取查询结果集中的记录数
- 22.3.8 使用MySQLi_free_result()函数释放资源
- 22.3.9 使用MySQLi_close()函数关闭连接
22.4 综合案例1——使用insert语句动态添加用户信息
22.5 综合案例2——使用select语句查询数据信息
22.6 专家解惑
22.7 经典习题
第23章 新闻发布系统数据库设计
23.1 系统概述
23.2 系统功能
23.3 数据库设计和实现
- 23.3.1 设计表
- 23.3.2 设计索引
- 23.3.3 设计视图
- 23.3.4 设计触发器
23.4 案例总结
第24章 论坛管理系统数据库设计
24.1 系统概述
24.2 系统功能
24.3 数据库设计和实现
- 24.3.1 设计方案图表
- 24.3.2 设计表
- 24.3.3 设计索引
- 24.3.4 设计视图
- 24.3.5 设计触发器
24.4 案例总结