全新正版书籍,24小时发货,可开发票。
¥ 47.6 5.3折 ¥ 89 全新
库存42件
作者黄文毅
出版社清华大学出版社
ISBN9787302642077
出版时间2023-09
装帧平装
开本16开
定价89元
货号29618428
上书时间2024-12-20
MySQL在如今的企业开发中占据着十分重要的地位,成为目前世界上流行的开源关系数据库。一路走来,笔者经历过的项目无一例外都是使用MySQL。熟练使用MySQL数据库,是研发工程师和数据库工程师的技能之一,MySQL相关的知识常常被作为面试题的一部分。本书总结了笔者多年使用MySQL的实践经验,可供读者高效学习MySQL并掌握其在开发中的核心知识点和应用技能。
本书第1~4章主要介绍MySQL基础的SQL语法知识,包括MySQL数据库如何安装、数据类型和表达式、运算符和变量等内容。第5~9章主要介绍select查询、索引、事务、存储过程、视图,以及如何进行数据备份、数据恢复和用户权限管理。第10~14章讲解MySQL高级特性,包括MySQL日志、锁、分库分表以及SQL性能优化和字符集。附录部分介绍本书涉及的SQL脚本、词汇解释,以及在面试中常见的高频问题。
本书结构
本书涵盖MySQL的基础知识、日常工作中用到的数据库知识以及MySQL高级的特性。全书 共14章和4个附录,各章内容概述如下:
?第1章介绍MySQL是什么、macOS和Windows操作系统如何安装MySQL、MySQL客户端(Workbench、DataGrip)的安装,以及如何通过命令行工具连接MySQL。
?第2章介绍数据库操作(创建第一个数据库,更新数据库名称、删除数据库与表操作(创建表、表数据插入、建表规范、慎重删除表和数据、修改表和表结构以及表结构/表数据导出)。
?第3章介绍MySQL常用的数据类型(数值数据类型、日期和时间类型以及字符串数据类型)。数值数据类型包括整数类型、浮点型类型、定点型类型、bit类型;日期和时间类型包括日期类型和时间类型;字符串数据类型包括char和varchar类型、blob和text类型、enum和set类型以及JSON类型。
?第4章介绍MySQL运算符函数和变量。运算符包括运算符优先级、比较运算符和函数、逻辑运算符、赋值运算符。函数主要包括字符串函数、数学函数、日期和时间函数、聚合函数、流程控制函数、强制转换函数、加密函数和信息函数。
?第5章介绍select查询,主要包括select简单查询、where条件查询、数据排序order by、数据分组group by、分组后过滤having、union组合查询、子查询以及连接查询等内容。
?第6章介绍索引的相关内容,包括什么是索引;索引的增、删、改、查,索引类型。其中索引类型包括主键索引、唯一索引、普通索引以及前缀索引等。
?第7章介绍事务的四大特性(ACID)、如何使用事务以及事务的四种隔离级别,即读未提交、读已提交、可重复读和串行化。
?第8章主要介绍MySQL的视图与存储过程这两部分内容,其中视图包括视图概述,视图的增、删、改、查,视图的应用场景和优缺点;存储过程包括存储过程的增、删、改、查,存储过程与流程控制语句,存储过程的应用场景与优缺点。
?第9章主要介绍MySQL用户管理、角色管理、权限管理及授权、数据备份、数据恢复等内容。
?第10章主要介绍如何设计数据库,内容包括关联关系(一对一、一对多、多对多以及自关联)、E-R实体关系模型、数据表设计三范式、数据库设计流程以及教务管理系统案例等。
?第11章主要介绍MySQL数据库日志,包括错误日志、普通查询日志、慢查询日志、二进制日志、Undo日志、Redo日志以及Relay Log日志,最后介绍主从模式与主从同步等内容。
?第12章主要介绍MySQL锁,包括共享锁和独占锁、全局锁、表级锁(表锁、元数据锁、意向锁、AUTO-INC锁)、行锁(记录锁、间隙锁与临键锁Next-key Lock、插入意向锁)以及悲观锁和乐观锁。
?第13章主要介绍MySQL的分库、分表、分组的相关内容。
?第14章主要介绍explain执行计划、show profile以及慢SQL优化(索引失效优化、插入性能优化)与字符集等内容。
?附录A主要提供书中使用到的SQL文件。
?附录B提供词汇解释。
?附录C提供MySQL高频面试题。
?附录D提供练习题。
本书预备知识
操作系统
读者应当掌握基本的操作系统,比如Windows操作系统或者macOS操作系统,能在个人计算机上熟练地安装和卸载软件,能运行计算机的命令行工具。
本书使用的软件版本
本书使用的开发环境如下:
?操作系统macOS 10.14.3
?操作系统Windows 10
?开发工具DateGrip 2022.3.3
?MySQL Workbench 8.0
读者对象
本书适合所有计算机专业的学生、软件开发人员和DBA使用。
源代码下载
为了方便读者学习本书,本书还提供了源代码。扫描下述二维码即可下载源代码。
如果读者在学习和下载本书的过程中遇到问题,可以发送邮件至booksaga@126.com,邮件主题写“像程序员一样使用MySQL”。
致谢
本书能够顺利出版,首先感谢清华大学出版社的王金柱老师及背后的团队为本书的辛勤付出,这是我第八次和王金柱老师合作,每次合作都能让我感到轻松和快乐,也让我体会到写作是一件愉快的事情,我很享受这个过程。
感谢我的家人,感谢他们一路的陪伴和督促,感谢他们对我工作的理解和支持,感谢他们对我生活无微不至的照顾,使我没有后顾之忧,全身心投入本书的写作中。
限于笔者水平和写作时间,书中难免存在疏漏之处,欢迎读者批评指正。
黄文毅
2023年3月15日
熟练使用MySQL数据库,是研发工程师和数据库工程师的bi备技能之一。本书从程序员的视角介绍了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企业级开发实战》(与人合著)等图书。
第 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数据库,是研发工程师和数据库工程师的bi备技能之一。本书从程序员的视角介绍了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企业级开发实战》(与人合著)等图书。
— 没有更多了 —
以下为对购买帮助不大的评价