新书速览|像程序员一样使用MySQL(免费送书)

MySQL实战干货分享,架构师教你正确用好MySQL,数据库设计、分库分表、性能优化等。

本书内容

熟练使用MySQL数据库,是研发工程师和数据库工程师的必备技能之一。本书从程序员的视角介绍了MySQL数据库在实际开发中的核心知识和应用技能。

全书共14章。第1章主要讲解MySQL数据库以及客户端工具的安装;第2~4章主要介绍数据库与表的创建、数据类型与表达式,以及函数、运算符与变量;第5章主要讲解select查询语句、子查询以及连接查询;第6章主要讲解索引和索引类型;第7、8章主要介绍MySQL事务的ACID特性、事务的四种隔离级别、如何使用事务、存储过程和视图概述,以及如何使用存储过程和视图;第9章介绍MySQL用户权限管理以及数据备份与恢复;第10章介绍如何设计数据库,包括关联关系、E-R实体关系模型;第11~13章主要介绍MySQL日志、锁以及分库分表;第14章介绍SQL性能优化与字符集。附录部分包含本书用到的SQL脚本、词汇解释以及高频面试题。

本书适合所有计算机专业的学生、软件开发人员,以及DBA使用,也可作为培训机构MySQL教学的参考书。

本书作者

黄文毅,架构师,从业近十年,先后就职于上海美团、厦门美图和海西医药等公司,从事Java开发工作,目前就职于某国内大型企业从事大数据和后端研发,对于Java后端开发及MySQL等各类数据库的有着十分丰富的经验。

著有图书:《分布高可用架构之道》《Spring 5企业级开发实战》(与人合著)等图书。

本书读者

本书适合所有计算机专业的学生、软件开发人员和DBA使用。

本书目录

第 1 章  初识MySQL 1

1.1  安装MySQL 1

1.1.1  在macOS上安装MySQL 2

1.1.2  在Windows上安装MySQL 6

1.2  如何选择MySQL客户端 10

1.2.1  在macOS上安装Workbench 10

1.2.2  在macOS上安装DataGrip 12

1.2.3  在Windows上安装

Workbench 14

1.2.4  命令行连接MySQL 14

第 2 章  数据库与表的创建 17

2.1  数据库操作 17

2.1.1  创建第一个数据库 18

2.1.2  更新数据库名称 20

2.1.3  删除数据库 21

2.1.4  取个合适的数据库名称 22

2.2  表操作 23

2.2.1  创建第一张表 23

2.2.2  表数据插入 26

2.2.3  建表规约 28

2.2.4  慎重删除表和数据 29

2.2.5  修改表和表结构 31

2.2.6  表结构/表数据导出 35

第 3 章  MySQL常用数据类型 38

3.1  数值数据类型 38

3.1.1  整数类型 38

3.1.2  浮点数类型 40

3.1.3  定点数类型 42

3.1.4  bit类型 43

3.1.5  数值类型属性 44

3.1.6  超出范围和溢出处理 44

3.2  日期和时间类型 46

3.2.1  时间小数秒精确度 47

3.2.2  日期和时间类型转换 48

3.3  字符串数据类型 49

3.3.1  char和varchar类型 50

3.3.2  blob和text类型 51

3.3.3  enum和set类型 52

3.3.4  JSON类型 53

3.3.5  数据类型默认值 57

第 4 章  运算符、函数与变量 59

4.1  运算符 59

4.1.1  运算符优先级 59

4.1.2  比较运算符和函数 60

4.1.3  逻辑运算符 62

4.1.4  赋值运算符 63

4.2  函数 65

4.2.1  字符串函数 65

4.2.2  数学函数 67

4.2.3  日期和时间函数 68

4.2.4  聚合函数 72

4.2.5  流程控制函数 73

4.2.6  强制类型转换函数 74

4.2.7  加密函数 75

4.2.8  信息函数 77

4.3  变量 78

第 5 章  select查询 80

5.1  select简单查询 80

5.1.1  无表查询 80

5.1.2  指定列查询 81

5.1.3  limit指定行和分页查询 81

5.2  where条件查询 83

5.2.1  使用where子句 83

5.2.2  where单值查询 84

5.2.3  范围和区间查询 85

5.2.4  模糊查询 86

5.2.5  空值查询 86

5.2.6  where多值查询 87

5.3  数据排序order by 88

5.4  数据分组group by 89

5.5  分组后过滤having 91

5.6  组合查询union 92

5.7  子查询 96

5.8  连接查询 98

第 6 章  索引 102

6.1  认识索引 102

6.1.1  什么是索引 102

6.1.2  索引的种类 104

6.1.3  索引增、删、改、查 105

6.2  索引类型 108

6.2.1  主键及主键索引 108

6.2.2  唯一索引 109

6.2.3  普通的单字段索引 110

6.2.4  普通的组合索引 110

6.2.5  前缀索引 112

第 7 章  MySQL事务 114

7.1  事务的4大特性 114

7.2  使用事务 116

7.3  事务的4种隔离级别 120

第 8 章  MySQL视图和存储过程 127

8.1  视图 127

8.1.1  视图的使用场景 127

8.1.2  视图的增、删、改、查 128

8.1.3  使用视图的注意事项 130

8.2  存储过程 131

8.2.1  存储过程的增、删、改、查 131

8.2.2  存储过程与流程控制语句

搭配使用 134

8.2.3  应用场景与优缺点 135

第 9 章  用户权限管理及 数据备份与恢复 136

9.1  用户权限管理 136

9.1.1  用户管理 136

9.1.2  角色管理 138

9.1.3  权限管理及授权 139

9.2  数据备份 141

9.2.1  mysqldump概述 141

9.2.2  mysqldump数据备份 142

9.3  数据恢复 145

第 10 章  数据库设计 147

10.1  关联关系 147

10.1.1  一对一 147

10.1.2  一对多 149

10.1.3  多对多 149

10.1.4  自关联 150

10.2  E-R实体关系模型 150

10.3  数据表设计三范式 152

10.4  数据库设计流程 153

10.5  教务管理系统数据库设计案例 154

10.5.1  需求分析 154

10.5.2  设计 155

10.5.3  实现 159

第 11 章  数据库日志 161

11.1  MySQL的几种日志 161

11.2  了解错误日志 162

11.3  了解普通查询日志 162

11.4  了解慢查询日志 164

11.5  了解二进制日志 166

11.6  了解撤销日志 167

11.7  了解重做日志 167

11.8  了解中继日志 168

11.9  主从模式与主从同步 168

第 12 章  MySQL锁 172

12.1  MySQL锁及分类 172

12.2  共享锁和独占锁 172

12.3  全局锁 174

12.4  表级锁 176

12.4.1  表锁 176

12.4.2  元数据锁 178

12.4.3  意向锁 180

12.4.4  自增锁 183

12.5  行锁 183

12.5.1  记录锁 184

12.5.2  间隙锁与临键锁 185

12.5.3  插入意向锁 189

12.6  悲观锁和乐观锁 191

第 13 章  MySQL分库分表 193

13.1  分库 193

13.2  分表 194

13.3  切分方式 194

13.3.1  水平切分的方式 194

13.3.2  垂直切分的方式 196

13.4  分组 196

第 14 章  SQL性能优化与字符集 198

14.1  SQL优化工具 198

14.1.1  explain执行计划 198

14.1.2  show profile 200

14.2  慢SQL优化 204

14.2.1  表无任何索引 204

14.2.2  索引失效优化 205

14.2.3  使用索引覆盖优化 209

14.2.4  插入性能优化 209

14.2.5  优化select count(*) 212

14.2.6  select*语句优化 213

14.3  字符集 214

14.3.1  字符集概述 214

14.3.2  设置适当的字符集 214

14.3.3  设置默认字符集 215

14.3.4  转换字符集 215

附录A  MySQL数据 216

附录B  词汇解释 217

附录C  MySQL高频面试题 219

附录D  练习题 223

参考文献 226

本文摘自《像程序员一样使用MySQL》,获出版社和作者授权发布。

像程序员一样使用MySQL——京东

送福利啦!如果本篇文章浏览破一千,友友们在下面评论点赞,加关注,免费送书一本给大家(随机抽选哦)。如果浏览量越高,送的越多哦!大家多多参与,以后活动会经常有哦!

日期截止到2024.1.31下午四点哦!

你可能感兴趣的:(mysql,数据库)