MySQL8.x从入门到精通

MySQL8.x从入门到精通

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书通过大量实用的操作案例,详细讲解MySQL 8.x数据库操作方法和技巧。

内容简介

本书共分25章。主要内容包括MySQL 8.x的安装与配置、数据库和数据表基本操作、数据类型和运算符、MySQL函数、数据的增删改查、索引的设计和使用、存储过程和函数、视图、触发器、存储引擎的选择、分区和事务控制、性能优化、锁定机制、服务器性能优化、性能监控、数据备份与还原、日志、权限与安全管理、高可用架构、复制、MySQL Utilities、MySQL Proxy。

最后通过两个案例系统的数据库设计,进一步讲解MySQL在系统开发中的应用。

本书适合MySQL数据库初学者、MySQL数据库开发人员和MySQL数据库管理员,同时也能作为高等院校相关专业师生的教学用书。

作者简介

作者李小威,软件开发项目经理,在软件开发有多年的开发经验,尤其擅长Java、PHP、数据库、大数据分析等,具有很强的实战经验。对多种数据库系统有深入研究,在数据库管理与开发方面有着丰富的经验。并已出版过多本相关畅销书,颇受广大读者认可。

章节目录

版权信息

内容简介

前言

第1章 MySQL的安装与配置

1.1 什么是MySQL

1.1.1 客户端/服务器软件

1.1.2 MySQL版本

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

1.2.1 安装MySQL 8.0

1.2.2 配置MySQL 8.0

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

1.3.1 启动MySQL服务

1.3.2 登录MySQL数据库

1.3.3 配置Path变量

1.4 MySQL常用图形管理工具

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

1.5.1 Linux操作系统下的MySQL版本介绍

1.5.2 安装和配置MySQL的RPM包

1.5.3 安装和配置MySQL的源码包

第2章 数据库和数据表的基本操作

2.1 创建数据库

2.2 删除数据库

2.3 创建数据表

2.3.1 创建表的语法形式

2.3.2 使用主键约束

2.3.3 使用外键约束

2.3.4 使用非空约束

2.3.5 使用唯一性约束

2.3.6 使用默认约束

2.3.7 设置表的属性值自动增加

2.4 查看数据表结构

2.4.1 查看表基本结构语句DESCRIBE

2.4.2 查看表详细结构语句SHOW CREATE TABLE

2.5 修改数据表

2.5.1 修改表名

2.5.2 修改字段的数据类型

2.5.3 修改字段名

2.5.4 添加字段

2.5.5 删除字段

2.5.6 修改字段的排列位置

2.5.7 删除表的外键约束

2.6 删除数据表

2.6.1 删除没有被关联的表

2.6.2 删除被其他表关联的主表

第3章 数据类型和运算符

3.1 MySQL数据类型介绍

3.1.1 整数类型

3.1.2 小数类型

3.1.3 日期与时间类型

3.1.4 文本字符串类型

3.1.5 二进制字符串类型

3.2 如何选择数据类型

3.3 常见运算符介绍

3.3.1 运算符概述

3.3.2 算术运算符

3.3.3 比较运算符

3.3.4 逻辑运算符

3.3.5 位运算符

3.3.6 运算符的优先级

第4章 MySQL函数

4.1 MySQL函数简介

4.2 数学函数

4.2.1 绝对值函数ABS(x)和返回圆周率的函数PI()

4.2.2 平方根函数SQRT(x)和求余函数MOD(x,y)

4.2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)

4.2.4 获取随机数的函数RAND()和RAND(x)

4.2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)

4.2.6 符号函数SIGN(x)

4.2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)

4.2.8 对数运算函数LOG(x)和LOG10(x)

4.2.9 角度与弧度相互转换的函数RADIANS(x)和DEGREES(x)

4.2.10 正弦函数SIN(x)和反正弦函数ASIN(x)

4.2.11 余弦函数COS(x)和反余弦函数ACOS(x)

4.2.12 正切函数、反正切函数和余切函数

4.3 字符串函数

4.3.1 计算字符串字符数的函数和字符串长度的函数

4.3.2 合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)

4.3.3 替换字符串的函数INSERT(s1,x,len,s2)

4.3.4 字母大小写转换函数

4.3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)

4.3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)

4.3.7 删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)

4.3.8 删除指定字符串的函数TRIM(s1 FROM s)

4.3.9 重复生成字符串的函数REPEAT(s,n)

4.3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)

4.3.11 比较字符串大小的函数STRCMP(s1,s2)

4.3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)

4.3.13 匹配子串开始位置的函数

4.3.14 字符串逆序的函数REVERSE(s)

4.3.15 返回指定位置的字符串的函数

4.3.16 返回指定字符串位置的函数FIELD(s,s1,s2,…,sn)

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

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

4.4 日期和时间函数

4.4.1 获取当前日期的函数和获取当前时间的函数

4.4.2 获取当前日期和时间的函数

4.4.3 UNIX时间戳函数

4.4.4 返回UTC日期的函数和返回UTC时间的函数

4.4.5 获取月份的函数MONTH(date)和MONTHNAME(date)

4.4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)

4.4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d)

4.4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)

4.4.9 获取年份、季度、小时、分钟和秒钟的函数

4.4.10 获取日期的指定值的函数EXTRACT(type FROM date)

4.4.11 时间和秒钟转换的函数

4.4.12 计算日期和时间的函数

4.4.13 将日期和时间格式化的函数

4.5 条件判断函数

4.5.1 IF(expr,v1,v2)函数

4.5.2 IFNULL(v1,v2)函数

4.5.3 CASE函数

4.6 系统信息函数

4.6.1 获取MySQL版本号、连接数和数据库名的函数

4.6.2 获取用户名的函数

4.6.3 获取字符串的字符集和排序方式的函数

4.6.4 获取最后一个自动生成的ID值的函数

4.7 加密函数

4.7.1 加密函数MD5(str)

4.7.2 加密函数SHA(str)

4.7.3 加密函数SHA2(str, hash_length)

4.8 其他函数

4.8.1 格式化函数FORMAT(x,n)

4.8.2 不同进制的数字进行转换的函数

4.8.3 IP地址与数字相互转换的函数

4.8.4 加锁函数和解锁函数

4.8.5 重复执行指定操作的函数

4.8.6 改变字符集的函数

4.8.7 改变数据类型的函数

4.9 窗口函数

第5章 查询数据

5.1 基本查询语句

5.2 单表查询

5.2.1 查询所有字段

5.2.2 查询指定字段

5.2.3 查询指定记录

5.2.4 带IN关键字的查询

5.2.5 带BETWEEN…AND…的范围查询

5.2.6 带LIKE的字符匹配查询

5.2.7 查询空值

5.2.8 带AND的多条件查询

5.2.9 带OR的多条件查询

5.2.10 查询结果不重复

5.2.11 对查询结果排序

5.2.12 分组查询

5.2.13 使用LIMIT限制查询结果的数量

5.3 使用集合函数查询

5.3.1 COUNT()函数

5.3.2 SUM()函数

5.3.3 AVG()函数

5.3.4 MAX()函数

5.3.5 MIN()函数

5.4 连接查询

5.4.1 内连接查询

5.4.2 外连接查询

5.4.3 复合条件连接查询

5.5 子查询

5.5.1 带ANY、SOME关键字的子查询

5.5.2 带ALL关键字的子查询

5.5.3 带EXISTS关键字的子查询

5.5.4 带IN关键字的子查询

5.5.5 带比较运算符的子查询

5.6 合并查询结果

5.7 为表和字段取别名

5.7.1 为表取别名

5.7.2 为字段取别名

5.8 使用正则表达式查询

5.8.1 查询以特定字符或字符串开头的记录

5.8.2 查询以特定字符或字符串结尾的记录

5.8.3 用符号“.”来替代字符串中的任意一个字符

5.8.4 使用“*”和“+”来匹配多个字符

5.8.5 匹配指定字符串

5.8.6 匹配指定字符中的任意一个

5.8.7 匹配指定字符以外的字符

5.8.8 使用{n,}或者{n,m}来指定字符串连续出现的次数

5.9 通用表表达式

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

6.1 插入数据

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

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

6.1.3 同时插入多条记录

6.1.4 将查询结果插入到表中

6.2 更新数据

6.3 删除数据

6.4 为表增加计算列

6.5 DDL的原子化

第7章 索引的设计和使用

7.1 索引简介

7.1.1 索引的含义和特点

7.1.2 索引的分类

7.1.3 索引的设计原则

7.2 创建索引

7.2.1 创建表的时候创建索引

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

7.3 删除索引

7.4 统计直方图

7.4.1 直方图的优点

7.4.2 直方图的基本操作

第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.3 查看存储过程和函数

8.3.1 使用SHOW STATUS语句查看存储过程和函数的状态

8.3.2 使用SHOW CREATE语句查看存储过程和函数的定义

8.3.3 从information_schema.Routines表中查看存储过程和函数的信息

8.4 修改存储过程和函数

8.5 删除存储过程和函数

8.6 全局变量的持久化

第9章 视 图

9.1 视图概述

9.1.1 视图的含义

9.1.2 视图的作用

9.2 创建视图

9.2.1 创建视图的语法形式

9.2.2 在单表上创建视图

9.2.3 在多表上创建视图

9.3 查看视图

9.3.1 使用DESCRIBE语句查看视图基本信息

9.3.2 使用SHOW TABLE STATUS语句查看视图基本信息

9.3.3 使用SHOW CREATE VIEW语句查看视图详细信息

9.3.4 在views表中查看视图详细信息

9.4 修改视图

9.4.1 使用CREATE OR REPLACE VIEW语句修改视图

9.4.2 使用ALTER语句修改视图

9.5 更新视图

9.6 删除视图

第10章 MySQL触发器

10.1 创建触发器

10.1.1 创建只有一个执行语句的触发器

10.1.2 创建有多个执行语句的触发器

10.2 查看触发器

10.2.1 利用SHOW TRIGGERS语句查看触发器信息

10.2.2 在triggers表中查看触发器信息

10.3 触发器的使用

10.4 删除触发器

第11章 存储引擎的选择

11.1 MySQL的架构

11.1.1 MySQL物理文件的组成

11.1.2 MySQL各逻辑块简介

11.1.3 MySQL各逻辑块协调工作

11.2 MySQL存储引擎简介

11.3 更改数据表的存储引擎

11.4 各种存储引擎的特性

11.4.1 MyISAM

11.4.2 InnoDB存储引擎

11.4.3 MEMORY

11.4.4 MERGE

11.5 选择合适的存储引擎

第12章 MySQL分区和事务控制

12.1 合并表

12.2 分区表

12.2.1 认识分区表

12.2.2 RANGE分区

12.2.3 LIST分区

12.2.4 HASH分区

12.2.5 线性HASH分区

12.2.6 KEY分区

12.2.7 复合分区

12.3 事务控制

12.4 MySQL分布式事务

12.4.1 分布式事务的原理

12.4.2 分布式事务的语法

第13章 MySQL性能优化

13.1 优化简介

13.2 优化查询

13.2.1 分析查询语句

13.2.2 索引对查询速度的影响

13.2.3 使用索引查询

13.2.4 优化子查询

13.3 优化数据库结构

13.3.1 将字段很多的表分解成多个表

13.3.2 增加中间表

13.3.3 增加冗余字段

13.3.4 优化插入记录的速度

13.3.5 分析表、检查表和优化表

13.4 临时表性能优化

13.5 创建全局通用表空间

13.6 隐藏和显示索引

第14章 MySQL的锁定机制

14.1 认识MySQL的锁定机制

14.2 MyISAM的锁定机制

14.2.1 MyISAM表级锁的锁模式

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

14.2.3 MyISAM表级锁加锁方法

14.2.4 MyISAM Concurrent Insert的特性

14.2.5 MyISAM表锁优化建议

14.3 InnoDB的锁定机制

14.3.1 InnoDB行级锁模式

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

14.3.3 InnoDB行级锁的实现方法

14.3.4 间隙锁(Net-Key锁)

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

14.3.6 InnoDB 存储引擎中的死锁

14.3.7 InnoDB行级锁优化建议

14.4 跳过锁等待

第15章 MySQL服务器性能优化

15.1 优化MySQL服务器简介

15.1.1 优化服务器硬件

15.1.2 优化MySQL的参数

15.2 影响MySQL性能的重要参数

15.2.1 查看性能参数的方法

15.2.2 key_buffer_size的设置

15.2.3 内存参数的设置

15.2.4 日志和事务参数的设置

15.2.5 存储和I/O相关参数的设置

15.2.6 其他重要参数的设置

15.3 MySQL日志设置优化

15.4 MySQL I/O设置优化

15.5 MySQL并发设置优化

15.6 服务器语句超时处理

15.7 线程和临时表的优化

15.7.1 线程的优化

15.7.2 临时表的优化

15.8 增加资源组

第16章 MySQL性能监控

16.1 基本监控系统方法

16.1.1 ps命令

16.1.2 top命令

16.1.3 vmstat命令

16.1.4 mytop命令

16.1.5 sysstat工具

16.2 开源监控利器Nagios实战

16.2.1 安装Nagios之前的准备工作

16.2.2 安装Nagios主程序

16.2.3 整合Nagios到Apache服务

16.2.4 安装Nagios插件包

16.2.5 监控服务器的CPU、负载、磁盘I/O使用情况

16.2.6 配置Nagios监控MySQL服务器

16.3 MySQL监控利器Cacti实战

16.3.1 Cacti工具的安装

16.3.2 Cacti监控MySQL服务器

第17章 数据备份与恢复

17.1 数据备份

17.1.1 使用mysqldump命令备份

17.1.2 直接复制整个数据库目录

17.1.3 使用mysqlhotcopy工具快速备份

17.2 数据恢复

17.2.1 使用MySQL命令恢复

17.2.2 直接复制到数据库目录

17.2.3 mysqlhotcopy快速恢复

17.3 数据库迁移

17.3.1 相同版本的MySQL数据库之间的迁移

17.3.2 不同版本的MySQL数据库之间的迁移

17.3.3 不同数据库之间的迁移

17.4 表的导出和导入

17.4.1 使用SELECT…INTO OUTFILE导出文本文件

17.4.2 使用mysqldump命令导出文本文件

17.4.3 使用MySQL命令导出文本文件

17.4.4 使用LOAD DATA INFILE方式导入文本文件

17.4.5 使用mysqlimport命令导入文本文件

第18章 MySQL日志

18.1 日志简介

18.2 二进制日志

18.2.1 启动和设置二进制日志

18.2.2 查看二进制日志

18.2.3 删除二进制日志

18.2.4 使用二进制日志恢复数据库

18.2.5 暂时停止二进制日志功能

18.3 错误日志

18.3.1 启动和设置错误日志

18.3.2 查看错误日志

18.3.3 删除错误日志

18.4 通用查询日志

18.4.1 启动通用查询日志

18.4.2 查看通用查询日志

18.4.3 删除通用查询日志

18.5 慢查询日志

18.5.1 启动和设置慢查询日志

18.5.2 查看慢查询日志

18.5.3 删除慢查询日志

第19章 MySQL权限与安全管理

19.1 权 限 表

19.1.1 user表

19.1.2 db表

19.1.3 tables_priv表和columns_priv表

19.1.4 procs_priv表

19.2 账户管理

19.2.1 登录和退出MySQL服务器

19.2.2 新建普通用户

19.2.3 删除普通用户

19.2.4 root用户修改普通用户密码

19.3 权限管理

19.3.1 MySQL的各种权限

19.3.2 授权

19.3.3 收回权限

19.3.4 查看权限

19.4 访问控制

19.4.1 连接核实阶段

19.4.2 请求核实阶段

19.5 提升安全性

19.5.1 密码到期更换策略

19.5.2 安全模式安装

19.6 管理角色

第20章 MySQL高可用架构

20.1 MySQL高可用简介

20.2 MySQL主从复制架构

20.2.1 MySQL主从架构设计

20.2.2 配置环境

20.2.3 服务器的安装配置

20.2.4 LVS的安装配置

20.3 MySQL+DRBD+HA主备架构

20.3.1 什么是DRBD

20.3.2 MySQL+DRBD+HA架构设计

20.3.3 配置环境

20.3.4 安装配置Heartbeat

20.3.5 安装配置DRBD

20.4 LVS+Keepalived+MySQL单点写入主主同步架构

20.4.1 配置环境

20.4.2 LVS+Keepalived的安装

20.4.3 LVS+Keepalived的配置

20.4.4 Master和Backup的启动

20.5 MMM高可用架构

20.5.1 MMM高可用架构简介

20.5.2 配置环境

20.5.3 MMM的安装

20.5.4 Monitor服务器的配置

20.5.5 各个数据库服务器的配置

20.5.6 MMM的管理

第21章 MySQL复制

21.1 MySQL复制概述

21.2 Windows环境下的MySQL主从复制

21.2.1 复制前的准备工作

21.2.2 Windows环境下实现主从复制

21.2.3 Windows环境下主从复制测试

21.3 Linux环境下的MySQL复制

21.3.1 下载并安装MySQL 8.0

21.3.2 单机主从复制前的准备工作

21.3.3 mysqld_multi实现单机主从复制

21.3.4 不同服务器之间实现主从复制

21.3.5 MySQL主从复制启动选项

21.3.6 指定复制的数据库或者表

21.4 查看从服务器的复制进度

21.5 复制环境的监控和维护

21.5.1 了解服务器的状态

21.5.2 服务器复制出错的原因

21.6 切换主从服务器

21.7 多源复制的改进

第22章 MySQL Utilities

22.1 MySQL Utilities概述

22.2 安装与配置

22.2.1 下载与安装MySQL Utilities

22.2.2 MySQL Utilities连接数据库

22.3 管理与维护

22.3.1 使用mysqldbcompare比较数据

22.3.2 使用mysqldbcopy复制数据

22.3.3 使用mysqldbexport导出数据

22.3.4 使用mysqldbimport导入数据

22.3.5 使用mysqldiff比较对象的定义

第23章 MySQL Proxy

23.1 概述

23.2 安装与配置

23.2.1 下载与安装MySQL Proxy

23.2.2 配置MySQL Proxy参数

23.3 使用MySQL Proxy实现读写分离

第24章 新闻发布系统数据库设计

24.1 系统概述

24.2 系统功能

24.3 数据库设计和实现

24.3.1 设计表

24.3.2 设计索引

24.3.3 设计视图

24.3.4 设计触发器

第25章 论坛管理系统数据库设计

25.1 系统概述

25.2 系统功能

25.3 数据库设计和实现

25.3.1 设计方案图表

25.3.2 设计表

25.3.3 设计索引

25.3.4 设计视图

25.3.5 设计触发器

MySQL8.x从入门到精通是2022年由清华大学出版社出版,作者李小威。

得书感谢您对《MySQL8.x从入门到精通》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Ubuntu Linux 从入门到精通 电子书
《UbuntuLinux从入门到精通》适合Linux初级用户使用,讲述了UbuntuLinux操作系统的系统管理、桌面办公应用、服务器配置等知识,用以辅助更多的用户得心应手地使用Linux操作系统作为桌面办公环境及服务器环境。主要包含UbuntuLinux12.04的安装、配置、桌面应用、系统管理,以及以UbuntuLinux12.04为平台的各种服务器的搭建及配置等内容,从入门到高级应用,从个人
Python编程从入门到精通 电子书
带你由浅入深地详细了解Python语言开发技术。
学电脑从入门到精通 电子书
《学电脑从入门到精通》以案例教学的方式为读者系统地介绍了电脑的相关知识和操作技巧。《学电脑从入门到精通》共16章。第1章主要介绍电脑的入门知识;第2~7章主要介绍Windows10的使用方法,包括基本操作、电脑操作环境的个性化设置、管理电脑文件和文件夹、轻松学会打字、电脑网络的连接以及管理电脑中的软件等;第8~10章主要介绍网上娱乐方法,包括多媒体娱乐、使用电脑上网以及网络聊天交友等;第11~13
PPT设计从入门到精通 电子书
提升PPT表现力的要点、原则及方法
VisualC++从入门到精通 电子书
  《Visual C从入门到精通》,超级畅销的C语言经典著作,100000读者的共同选择,长期雄踞各大书店、网店排行榜前列。本次改版在传承经典的基础上,对内容进行全面扩充,大量补充典型案例,贴近实战,帮助读者迅速积累开发经验。      强大的编委会阵容,业界专家倾力推荐   中国软件行业协会教育与培训委员会 秘书长 邱钦伦   微软开发工具及平台事业部 产品经理 胡德民   Sun亚洲全球化中心 技术总监 刘杰   龙马创新教育研究室 总裁 孔长征   河南省863软件孵化器有限公司 总经理 翟为唐   广东拓思软件科学园有限公司 副总经理 黄万民   西安863软件孵化器有限公司 总经理 楼文晓   郑州大学信息工程学院 副院长 周清雷   华大锐志软件人才孵化基地 技术总监 微软有价值专家(MVP) 王豫翔   NEC信息系统(中国)有限公司 开发部长 石少峥   东忠集团 副总裁 李朝阳   《程序员》杂志、CSDN技术专家 尹成   51CTO.com 技术总监 陈德勇   微软有价值专家(MVP) 杨云         DVD光盘超值赠送   21小时全程同步教学录像,一线教学和开发人员贴心讲解,配合图书高效学习   18小时价值6000元的Oracle项目实战教学录像,帮您轻松学会Oracle数据库   107个典型范例、5个经典应用程序开发指导、6个完整项目,在实战中掌握VC编程   19个实战测试及解析,举一反三,掌握更透彻   8个超值资源大放送   超值资源1:118 页库函数查询手册   超值资源2:224 页MFC查询手册   超值资源3:53 个Visual C常见错误及解决方案   超值资源4:100 个Visual C开发经验及技巧大汇总   超值资源5:100 个Visual C常见面试题   超值资源6:软件开发文档模板   超值资源7:Visual C 程序员职业规划电子书   超值资源8:Visual C 程序员面试技巧电子书      零基础、入门级的讲解——无论读者是否从事计算机相关行业,是否接触过Visual C,是否使用Visual C开发过项目,都能从本书中找到起点。   超多、实用、专业的范例和项目——本书结合实际工作中的范例,逐一讲解Visual C的各种知识和技术。还以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松拥有项目经验。   随时检测自己的学习成果——每章首页罗列了“本章要点”,以便读者明确学习方向。每章的“实战练习”则根据所在章的知识点精心设计而成,读者可以随时自我检测,巩固所学知识。   细致入微、贴心提示——本书在讲解过程中使用了“提示”、“注意”、“ 技巧”等小栏目,帮助读者在学习过程中更清楚地理解基本概念、掌握相关操作,并轻松获取实战技巧。