封面页

书名页

版权页

内容简介

前言

目录

第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.4 MySQL工具

1.4.1 MySQL命令行实用程序

1.4.2 MySQL Workbench

1.5 MySQL 8.0的新特性简述

1.6 如何学习MySQL

第2章 MySQL的安装与配置

2.1 Windows平台下安装与配置MySQL 8.0

2.1.1 安装MySQL 8.0

2.1.2 配置MySQL 8.0

2.2 启动服务并登录MySQL数据库

2.2.1 启动MySQL服务

2.2.2 登录MySQL数据库

2.2.3 配置Path变量

2.3 MySQL常用图形管理工具

2.4 Linux平台下安装与配置MySQL 8.0

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 MySQL 8.0的新特性——系统表全部为InnoDB表

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.2 删除被其他表关联的主表

4.5 MySQL 8.0的新特性1——默认字符集改为utf8mb4

4.6 MySQL 8.0的新特性2——自增变量的持久化

4.7 综合案例——数据表的基本操作

4.8 专家解惑

4.9 经典习题

第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)、CEILING(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,…,sn)

6.3.17 返回子串位置的函数FIND_IN_SET(s1,s2)

6.3.18 选取字符串的函数MAKE_SET(x,s1,s2,…,sn)

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 MySQL 8.0的新特性1——加密函数

6.7.1 加密函数MD5(str)

6.7.2 加密函数SHA(str)

6.7.3 加密函数SHA2(str, hash_length)

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 8.0的新特性2——窗口函数

6.10 综合案例——MySQL函数的使用

6.11 专家解惑

6.12 经典习题

第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.5 带比较运算符的子查询

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 MySQL 8.0的新特性1——GROUP BY不再隐式排序

7.10 MySQL 8.0的新特性2——通用表表达式

7.11 综合案例——数据表查询操作

7.12 专家解惑

7.13 经典习题

第8章 插入、更新与删除数据

8.1 插入数据

8.1.1 为表的所有字段插入数据

8.1.2 为表的指定字段插入数据

8.1.3 同时插入多条记录

8.1.4 将查询结果插入到表中

8.2 更新数据

8.3 删除数据

8.4 为表增加计算列

8.5 MySQL 8.0的新特性——DDL的原子化

8.6 综合案例——记录的插入、更新和删除

8.7 专家解惑

8.8 经典习题

第9章 索引

9.1 索引简介

9.1.1 索引的含义和特点

9.1.2 索引的分类

9.1.3 索引的设计原则

9.2 创建索引

9.2.1 创建表的时候创建索引

9.2.2 在已经存在的表上创建索引

9.3 删除索引

9.4 MySQL 8.0的新特性1——支持降序索引

9.5 MySQL 8.0的新特性2——统计直方图

9.5.1 直方图的优点

9.5.2 直方图的基本操作

9.6 综合案例——创建索引

9.7 专家解惑

9.8 经典习题

第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 MySQL 8.0的新特性——全局变量的持久化

10.7 综合案例——创建存储过程和函数

10.8 专家解惑

10.9 经典习题

第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表

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.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.5.1 AES 256加密

13.5.2 密码到期更换策略

13.5.3 安全模式安装

13.6 MySQL 8.0的新特性——管理角色

13.7 综合案例——综合管理用户权限

13.8 专家解惑

13.9 经典习题

第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…INTO 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 8.0的新特性——日志分类更详细

15.7 综合案例——MySQL日志的综合管理

15.8 专家解惑

15.9 经典习题

第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 临时表性能优化

16.6 服务器语句超时处理

16.7 创建全局通用表空间

16.8 MySQL 8.0的新特性1——支持不可见索引

16.9 MySQL 8.0的新特性2——增加资源组

16.10 综合案例——全面优化MySQL服务器

16.11 专家解惑

16.12 经典习题

第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 下载并安装MySQL 8.0

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 专家解惑

17.9 经典习题

第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管理利器——MySQL Utilities

19.1 MySQL Utilities概述

19.2 安装与配置

19.2.1 下载与安装MySQL Utilities

19.2.2 MySQL Utilities连接数据库

19.3 管理与维护

19.3.1 使用mysqldbcompare比较数据

19.3.2 使用mysqldbcopy复制数据

19.3.3 使用mysqldbexport导出数据

19.3.4 使用mysqldbimport导入数据

19.3.5 使用mysqldiff比较对象的定义

19.4 专家解惑

19.5 经典习题

第20章 读写分离的利器——MySQL Proxy

20.1 概述

20.2 安装与配置

20.2.1 下载与安装MySQL Proxy

20.2.2 配置MySQL Proxy参数

20.2.3 配置Path变量

20.3 使用MySQL Proxy实现读写分离

20.4 专家解惑

20.5 经典习题

第21章 精通MySQL存储引擎

21.1 MySQL架构

21.1.1 MySQL物理文件的组成

21.1.2 MySQL各逻辑块简介

21.1.3 MySQL各逻辑块协调工作

21.2 数据库存储引擎

21.2.1 MySQL存储引擎简介

21.2.2 InnoDB存储引擎

21.2.3 MyISAM存储引擎

21.2.4 MEMORY存储引擎

21.2.5 MERGE存储引擎

21.2.6 BerkeleyDB存储引擎

21.3 认识MySQL的锁定机制

21.4 MyISAM的锁定机制

21.4.1 MyISAM表级锁的锁模式

21.4.2 获取MyISAM表级锁的争用情况

21.4.3 MyISAM表级锁加锁方法

21.4.4 MyISAM Concurrent Insert的特性

21.4.5 MyISAM表级锁优化建议

21.5 InnoDB的锁定机制

21.5.1 InnoDB行级锁模式

21.5.2 获取InnoDB行级锁的争用情况

21.5.3 InnoDB行级锁的实现方法

21.5.4 间隙锁(Net-Key锁)

21.5.5 InnoDB在不同隔离级别下加锁的差异

21.5.6 InnoDB存储引擎中的死锁

21.5.7 InnoDB行级锁优化建议

21.6 InnoDB存储引擎的在线操作

21.6.1 在线添加主键

21.6.2 在线增大VARCHAR列长

21.6.3 在线重命名索引

21.7 MySQL 8.0的新特性1——支持JSON类型

21.8 MySQL 8.0的新特性2——全文索引的加强

21.9 MySQL 8.0的新特性3——动态修改InnoDB缓冲池的大小

21.10 MySQL 8.0的新特性4——表空间数据加密

21.11 MySQL 8.0的新特性5——跳过锁等待

21.12 专家解惑

21.13 经典习题

第22章 PHP操作MySQL数据库

22.1 PHP访问MySQL数据库的一般步骤

22.2 连接数据库前的准备工作

22.3 访问数据库

22.3.1 使用mysqli_connect()函数连接MySQL服务器

22.3.2 使用mysqli_select_db()函数更改默认的数据库

22.3.3 使用mysqli_close()函数关闭MySQL连接

22.3.4 使用mysqli_query()函数执行SQL语句

22.3.5 获取查询结果集中的记录数

22.3.6 获取结果集中的一条记录作为枚举数组

22.3.7 获取结果集中的记录作为关联数组

22.3.8 获取结果集中的记录作为对象

22.3.9 使用mysqli_fetch_array()函数获取结果集记录

22.3.10 使用mysqli_free_result()函数释放资源

22.4 综合实例1——PHP操作MySQL数据库

22.5 综合实例2——使用insert语句动态添加用户信息

22.6 综合实例3——使用select语句查询数据信息

22.7 专家解惑

第23章 PDO数据库抽象类库

23.1 PDO概述

23.2 PDO的安装

23.3 使用PDO操作MySQL

23.3.1 连接MySQL数据库的方法

23.3.2 使用PDO时的try catch错误处理结构

23.3.3 使用PDO执行SQL的选择语句

23.3.4 使用PDO获取返回数据的类方法

23.3.5 使用PDO执行SQL的添加、修改语句

23.3.6 使用PDO执行SQL的删除语句

23.4 综合实例——PDO的prepare表述

23.5 专家解惑

第24章 综合项目1——开发网上商城

24.1 系统功能描述

24.2 系统功能分析

24.2.1 系统功能分析

24.2.2 数据流程和数据库

24.3 代码的具体实现

24.4 程序运行

第25章 综合项目2——论坛管理系统数据库设计

25.1 系统概述

25.2 系统功能

25.3 数据库设计和实现

25.3.1 设计方案图表

25.3.2 设计表

25.3.3 设计索引

25.3.4 设计视图

25.3.5 设计触发器

第26章 综合项目3——新闻发布系统数据库设计

26.1 系统概述

26.2 系统功能

26.3 数据库设计和实现

26.3.1 设计表

26.3.2 设计索引

26.3.3 设计视图

26.3.4 设计触发器


版权声明:本文为weixin_42314399原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42314399/article/details/113540609