描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302528746
本书共20章,涵盖的主要内容有:MySQL 8的安装,升级和新特性,数据库操作,数据表操作,数据操作,数据查询,索引,视图,存储过程和函数,触发器,事务和锁,安全管理,数据库备份,恢复与复制,MySQL服务管理,日志管理,MySQL 8数据字典新特性,MySQL 8 InnoDB新特性,MySQL 8 NoSQL新特性,Java连接数据库,网上课堂数据库设计与实现,论坛系统数据库设计与实现。
本书内容新颖,知识全面,适合各个层次的开发人员或数据库管理人员阅读,特别适合想了解MySQL*前沿技术的人员参考。
第1章 MySQL 8的安装、升级和新特性 1
1.1 认识MySQL数据库 1
1.1.1 MySQL与开源文化 1
1.1.2 MySQL发展历史 2
1.1.3 使用MySQL的优势 3
1.2 MySQL 8的新特性 4
1.2.1 更简便的NoSQL支持 4
1.2.2 更好的索引 4
1.2.3 更完善的JSON支持 4
1.2.4 安全和账户管理 4
1.2.5 InnoDB的变化 4
1.2.6 数据字典 5
1.2.7 原子数据定义语句 5
1.2.8 资源管理 5
1.2.9 字符集支持 6
1.2.10 优化器增强 6
1.2.11 通用表表达式 6
1.2.12 窗口函数 6
1.2.13 正则表达式支持 7
1.2.14 内部临时表 7
1.2.15 日志记录 7
1.2.16 备份锁 7
1.2.17 增强的MySQL复制 7
1.3 MySQL 8移除的旧特性 7
1.3.1 查询缓存 8
1.3.2 加密相关 8
1.3.3 空间函数相关 8
1.3.4 N和NULL 8
1.3.5 mysql_install_db 8
1.3.6 通用分区处理程序 9
1.3.7 系统和状态变量信息 9
1.3.8 mysql_plugin工具 9
1.4 Windows平台下安装与配置MySQL 9
1.4.1 安装MySQL 8 9
1.4.2 配置MySQL 8 13
1.4.3 启动MySQL服务 18
1.4.4 关闭MySQL服务 20
1.4.5 配置Path变量 21
1.4.6 登录MySQL数据库 22
1.5 Linux平台下安装与配置MySQL 22
1.5.1 安装和配置MySQL 8 23
1.5.2 启动MySQL服务 27
1.5.3 登录MySQL数据库 28
1.6 Mac OS X平台下安装与配置MySQL 29
1.6.1 安装MySQL 8 29
1.6.2 启动MySQL 8 32
1.6.3 配置和登录MySQL 8 32
1.7 MySQL的升级和降级 33
1.7.1 升级MySQL 34
1.7.2 降级MySQL 37
1.7.3 重建或修复表或索引 37
1.7.4 将MySQL数据库复制到另一台机器 38
1.8 MySQL常用图形管理工具 39
1.8.1 MySQL官方客户端MySQL-Workbench 39
1.8.2 SQLyog图形管理工具 43
1.8.3 Navicat图形管理工具 55
第 2 章 数据库操作 60
2.1 操作数据库 60
2.1.1 创建数据库 60
2.1.2 查看数据库 61
2.1.3 选择数据库 61
2.1.4 删除数据库 61
2.2 什么是存储引擎 62
2.2.1 MySQL支持的存储引擎 62
2.2.2 InnoDB存储引擎 64
2.2.3 MyISAM存储引擎 65
2.2.4 MEMORY存储引擎 65
2.2.5 选择存储引擎 66
第3章 数据表操作 68
3.1 数据表的设计理念 68
3.2 数据库中的数据类型 70
3.2.1 整数类型 70
3.2.2 浮点数类型和定点数类型 72
3.2.3 日期与时间类型 73
3.2.4 字符串类型 74
3.2.5 二进制类型 76
3.2.6 JSON类型及MySQL 8 JSON增强 77
3.2.7 Spatial数据类型 82
3.3 MySQL 8新特性:字符集与排序规则 82
3.3.1 一般字符集和排序规则 82
3.3.2 MySQL中的字符集和排序规则 83
3.3.3 指定字符集和排序规则 85
3.3.4 连接字符集和排序规则 89
3.3.5 配置应用程序字符集和排序 90
3.3.6 错误消息字符集 91
3.3.7 列字符集转换 91
3.3.8 排序问题 91
3.3.9 Unicode支持 93
3.3.10 支持的字符集和排序规则 94
3.3.11 设置错误消息语言 95
3.3.12 添加字符集 96
3.3.13 将排序规则添加到字符集 97
3.3.14 字符集配置 98
3.3.15 MySQL服务器区域设置支持 98
3.4 创建表 99
3.4.1 创建表的语法形式 99
3.4.2 创建带JSON类型的表 100
3.5 查看表结构 100
3.5.1 DESCRIBE语句查看表定义 100
3.5.2 SHOW CREATE TABLE语句查看表详细定义 101
3.6 删除表 102
3.7 修改表 103
3.7.1 修改表名 103
3.7.2 增加字段 104
3.7.3 删除字段 107
3.7.4 修改字段 107
3.8 操作表的约束 109
3.8.1 设置表字段的非空约束(NOT NULL,NK) 110
3.8.2 设置表字段的默认值(DEFAULT) 111
3.8.3 设置表字段唯一约束(UNIQUE,UK) 112
3.8.4 设置表字段的主键约束(PRIMARY,PK) 113
3.8.5 设置表字段值自动增加(AUTO_INCREMENT) 116
3.8.6 设置表字段的外键约束(FOREIGN KEY,FK) 116
第4章 数据操作 119
4.1 插入数据记录 119
4.1.1 插入完整数据记录 119
4.1.2 插入部分数据记录 120
4.1.3 插入多条完整数据记录 121
4.1.4 插入多条部分数据记录 122
4.1.5 插入JSON结构的数据记录 122
4.2 更新数据记录 123
4.2.1 更新特定数据记录 123
4.2.2 更新所有数据记录 124
4.2.3 更新JSON结构的数据记录 124
4.3 删除数据记录 125
4.3.1 删除特定数据记录 125
4.3.2 删除所有数据记录 125
第5章 数据查询 126
5.1 简单查询 126
5.1.1 查询所有字段数据 127
5.1.2 查询指定字段数据 127
5.1.3 DISTINCT查询 127
5.1.4 IN查询 128
5.1.5 BETWEEN AND查询 130
5.1.6 LIKE模糊查询 130
5.1.7 对查询结果排序 131
5.1.8 简单分组查询 132
5.1.9 统计分组查询 133
5.2 联合查询 134
5.2.1 内连接查询 134
5.2.2 外连接查询 136
5.2.3 合并查询数据记录 137
5.2.4 子查询 138
第6章 索引 140
6.1 什么是索引 140
6.1.1 索引的含义和特点 140
6.1.2 索引的分类 141
6.1.3 索引的设计原则 142
6.2 创建和查看索引 143
6.2.1 普通索引 143
6.2.2 唯一索引 146
6.2.3 全文索引 147
6.2.4 多列索引 149
6.3 MySQL 8中索引新特性 151
6.3.1 隐藏索引 151
6.3.2 降序索引 153
6.4 删除索引 154
第7章 视图 156
7.1 什么时候使用视图 156
7.2 创建视图 157
7.2.1 创建视图的语法形式 157
7.2.2 在单表上创建视图 158
7.2.3 在多表上创建视图 159
7.3 查看视图 160
7.3.1 使用DESCRIBE | DESC语句查看视图基本信息 161
7.3.2 使用SHOW TABLES语句查看视图基本信息 161
7.3.3 在views表中查看视图详细信息 161
7.4 修改视图 162
7.4.1 使用CREATE OR REPLACE VIEW语句修改视图 162
7.4.2 使用ALTER语句修改视图 163
7.5 更新视图 164
7.5.1 使用SQL语句更新视图 164
7.5.2 更新基本表后视图自动更新 165
7.5.3 删除视图中的数据 166
7.5.4 不能更新的视图 167
7.6 删除视图 169
第8章 存储过程和函数 171
8.1 创建存储过程和函数 171
8.1.1 创建存储过程 172
8.1.2 创建存储函数 174
8.1.3 变量的使用 175
8.1.4 定义条件和处理程序 176
8.1.5 光标的使用 178
8.1.6 流程控制的使用 179
8.2 调用存储过程和函数 183
8.2.1 调用存储过程 183
8.2.2 调用存储函数 184
8.3 查看存储过程和函数 184
8.3.1 使用SHOW STATUS语句查看存储过程和函数的状态 185
8.3.2 使用SHOW CREATE语句查看存储过程和函数的定义 186
8.3.3 从information_schema.Routine表中查看存储过程和函数的信息 187
8.4 修改存储过程和函数 189
8.5 删除存储过程和函数 190
第9章 触发器 193
9.1 什么时候使用触发器 193
9.2 创建触发器 194
9.2.1 创建有一条执行语句的触发器 194
9.2.2 创建包含多条执行语句的触发器 195
9.3 查看触发器 197
9.3.1 通过SHOW TRIGGERS语句查看触发器 197
9.3.2 通过查看系统表triggers实现查看触发器 198
9.4 删除触发器 200
第10章 事务和锁 201
10.1 事务概述 201
10.2 MySQL事务控制语句 203
10.3 MySQL事务隔离级别 205
10.3.1 READ-UNCOMMITED(读取未提交内容) 206
10.3.2 READ-COMMITED(读取提交内容) 207
10.3.3 REPEATABLE-READ(可重读) 207
10.3.4 SERIALIZABLE(可串行化) 209
10.4 InnoDB锁机制 209
10.4.1 锁的类型 210
10.4.2 锁粒度 211
第11章 安全管理 213
11.1 权限表 213
11.1.1 user表 214
11.1.2 db表 215
11.1.3 tables_priv表和columns_priv表 217
11.1.4 procs_priv表 218
11.2 账户管理 218
11.2.1 登录和退出MySQL服务器 218
11.2.2 新建普通用户 220
11.2.3 删除普通用户 221
11.2.4 root用户修改自己的密码 222
11.2.5 root用户修改普通用户的密码 223
11.2.6 普通用户修改密码 225
11.2.7 root用户密码丢失的解决办法 225
11.2.8 MySQL 8密码管理 229
11.3 MySQL 8新特性:角色 232
11.3.1 创建角色并给角色授权 232
11.3.2 给用户添加角色 233
11.3.3 编辑角色或权限 235
11.3.4 删除角色 236
11.4 访问控制 236
11.4.1 连接核实阶段 236
11.4.2 请求核实阶段 237
11.5 MySQL 8新特性:安全组件和插件 237
11.5.1 身份验证插件 238
11.5.2 连接控制插件 239
11.5.3 密码验证组件 240
11.5.4 MySQL Keyring 241
11.5.5 MySQL企业审计 242
11.5.6 MySQL企业防火墙 242
11.6 MySQL 8新特性:FIPS 246
11.6.1 FIPS概述 246
11.6.2 MySQL中FIPS模式的系统要求 246
11.6.3 在MySQL中配置FIPS模式 246
第12章 数据库备份、恢复与复制 247
12.1 数据备份 247
12.1.1 使用mysqldump命令备份一个数据库 248
12.1.2 使用mysqldump命令备份一个数据库的某几张表 250
12.1.3 使用mysqldump命令备份多个数据库 252
12.1.4 直接复制整个数据库目录 255
12.1.5 备份锁 255
12.2 数据恢复 255
12.2.1 使用mysql命令恢复 255
12.2.2 直接复制到数据库目录 256
12.3 数据库迁移 257
12.3.1 相同版本的MySQL数据库之间的迁移 257
12.3.2 不同版本的MySQL数据库之间的迁移 258
12.3.3 不同数据库之间的迁移 258
12.4 表的导出和导入 259
12.4.1 使用SELECT…INTO OUTFILE导出文本文件 259
12.4.2 使用mysqldump命令导出文本文件 261
12.4.3 使用mysql命令导出文本文件 265
12.4.4 使用LOAD DATA INFILE方式导入文本文件 268
12.4.5 使用mysqlimport方式导入文本文件 270
12.5 数据复制 273
12.5.1 配置复制 273
12.5.2 复制实现 275
12.5.3 复制解决方案 276
12.5.4 复制注释和提示 279
12.6 组复制 280
12.6.1 组复制背景 280
12.6.2 监视组复制 282
12.6.3 组复制操作 284
12.6.4 组复制安全性 286
12.6.5 组复制系统变量 286
12.6.6 要求和限制 287
第13章 MySQL服务管理 289
13.1 MySQL服务 289
13.1.1 配置MySQL服务 289
13.1.2 服务系统变量 291
13.1.3 服务的SQL模式 292
13.2 MySQL数据目录 292
13.3 系统数据库mysql 293
13.3.1 数据字典表 293
13.3.2 授权系统表 294
13.3.3 对象信息系统表 295
13.3.4 日志系统表 295
13.3.5 服务端帮助系统表 295
13.3.6 时区系统表 296
13.3.7 复制系统表 296
13.3.8 优化器系统表 296
13.3.9 其他系统表 297
13.4 MySQL服务日志 297
13.5 MySQL服务组件 297
13.6 MySQL服务插件 298
13.7 在一台机器上运行多个MySQL实例 298
第14章 日志管理 300
14.1 MySQL软件所支持的日志 300
14.2 操作二进制日志 301
14.2.1 启动二进制日志 302
14.2.2 查看二进制日志 303
14.2.3 使用二进制日志恢复数据库 304
14.2.4 暂停二进制日志 305
14.2.5 删除二进制日志 305
14.3 操作错误日志 308
14.3.1 启动错误日志 308
14.3.2 查看错误日志 309
14.3.3 删除错误日志 310
14.4 通用查询日志 310
14.4.1 启动通用查询日志 311
14.4.2 查看通用查询日志 312
14.4.3 停止通用查询日志 312
14.4.4 删除通用查询日志 313
14.5 慢查询日志 314
14.5.1 启动慢查询日志 314
14.5.2 查看和分析慢查询日志 317
14.5.3 停止慢查询日志 318
14.5.4 删除慢查询日志 319
第15章 MySQL 8新特性:数据字典 321
15.1 数据字典模式 321
15.2 删除基于文件的元数据存储 322
15.3 字典数据的事务存储 322
15.4 字典对象缓存 322
15.5 INFORMATION_SCHEMA和数据字典集成 323
15.6 序列化字典信息(SDI) 323
15.7 数据字典用法差异 324
15.8 数据字典限制 324
第16章 MySQL 8新特性:InnoDB 325
16.1 InnoDB表的优势 325
16.2 InnoDB和ACID模型 326
16.3 InnoDB架构 327
16.4 表空间 329
16.5 表和索引 330
16.5.1 InnoDB表 330
16.5.2 InnoDB索引 331
16.6 备份和恢复 332
16.7 InnoDB和MySQL复制 333
16.8 memcached插件 334
第17章 MySQL 8新特性:NoSQL 337
17.1 NoSQL的概念 337
17.2 将MySQL设置为NoSQL存储 337
17.3 MySQL Shell 339
17.4 X插件 345
第18章 Java操作MySQL数据库 347
18.1 Java连接MySQL数据库 347
18.1.1 JDBC简介 347
18.1.2 下载JDBC驱动MySQL Connector/J 349
18.1.3 Windows下安装MySQL Connector/J驱动 350
18.1.4 Linux和Mac OSX下安装MySQL Connector/J驱动 350
18.1.5 IntelliJ IDEA环境下安装MySQL Connector/J驱动 350
18.1.6 Java连接MySQL数据库 352
18.2 使用Statement执行SQL语句 353
18.2.1 executeQuery()查询 353
18.2.2 execute()查询 355
18.2.3 executeUpdate()插入数据 356
18.2.4 executeUpdate()修改数据 357
18.2.5 executeUpdate()删除数据 358
18.3 使用PreparedStatement执行SQL语句 359
18.3.1 executeQuery()查询 359
18.3.2 execute()查询 361
18.3.3 executeUpdate()插入数据 362
18.3.4 executeUpdate()修改数据 363
18.3.5 executeUpdate()删除数据 364
18.4 Java备份和恢复MySQL数据库 365
18.4.1 使用Java备份MySQL数据库 365
18.4.2 使用Java恢复MySQL数据库 366
第19章 网上课堂系统数据库设计 368
19.1 系统概述 368
19.2 系统功能 369
19.3 数据库设计和实现 369
19.3.1 设计表 369
19.3.2 设计索引 374
19.3.3 设计视图 375
19.3.4 设计触发器 375
19.4 项目小结 376
第20章 论坛管理系统数据库设计 377
20.1 系统概述 377
20.2 系统功能 378
20.3 数据库设计和实现 378
20.3.1 设计表 378
20.3.2 设计索引 382
20.3.3 设计视图 383
20.3.4 设计触发器 383
20.4 项目小结 384
MySQL作为一个灵活轻便的数据库管理系统,越来越受开发人员的青睐。由于它是开源软件,维护成本相对较低,越来越多的企业开始选择MySQL作为数据存储软件。不论作为开发人员还是数据库维护人员、项目负责人,了解MySQL的使用方法和功能特点都将有益于工作开展。特别是需要深入研究MySQL的开发人员和维护人员,全面学习运用MySQL应作为必备技能。
MySQL 8的出现是一个新的里程碑,它带来了一些前所未有的特点和功能,使MySQL更趋于人性化、更便利。目前市面上鲜有MySQL 8的入门书籍,本书以MySQL 8的前沿技术为前提,通过200多个实例演示数据库的设计与实现,使读者全面、深入、透彻地理解MySQL的功能特点和使用方法,提高MySQL理解和运用能力。
本书特色
1. 附带多媒体语音教学视频,提高学习效率
为了便于读者理解本书内容,提高学习效率,专门为每一章内容都录制了大量的多媒体语音教学视频。这些视频和本书涉及的源代码一起收录于网盘中。
2. 全面涵盖MySQL技术
本书涵盖MySQL常用数据库操作、索引、视图、存储过程和函数、触发器、事务和锁、安全管理、备份、恢复和复制、MySQL服务管理、日志管理、数据字典、InnoDB及NoSQL。
3. 剖析MySQL 8新特性
本书除了涵盖以往的MySQL技术之外,在涉及MySQL 8新特性的章节都做了详细讲解,包括MySQL 8的安装、升级、数据字典新特性、InnoDB新特性和NoSQL新特性。
4. 知识点全面,循序渐进
本书知识点从易到难逐步进阶,思路清晰,条理清楚,包含了多个操作系统下的操作。读者遵循本书一步步学习,最终将会收获颇多。
5. 项目案例典型,贴合实际
本书最后提供Java操作数据库的方法以及两个数据库设计案例(网上课堂数据库和论坛数据库)。在设计与实现的过程中,演示了实际使用数据库时的操作,并设计了索引、视图和触发器,相信读者深入学习后,对数据库的运用能力会得到很大提升。
本书知识体系
第1章 MySQL 8的安装、升级和新特性
本章介绍MySQL 8在多操作系统下的安装和升级,简要提及MySQL 8的新特性,更详细的内容在后续章节。
第2~5章 数据库操作
第2~5章讲解了如何操作数据库,包括数据的查询、修改和删除。其中,第2章还会介绍MySQL的存储引擎,第3章会介绍数据类型及MySQL 8在字符集和排序规则方面的新特性。
第6章 索引
本章介绍索引的含义和分类,如何设计和创建索引,以及MySQL 8中索引的新特性。
第7章 视图
本章介绍视图的含义,以及如何创建、查看、更新和删除视图。
第8~9章 存储过程、函数、触发器
第8~9章介绍存储过程、函数和触发器的定义、创建和删除。
第10章 事务和锁
本章介绍事务概述、事务的隔离级别以及InnoDB的锁机制。
第11章 安全管理
本章介绍MySQL的权限表、账户管理、访问控制,包括角色、组件和插件、FIPS。
第12章 数据备份、恢复与复制
本章介绍数据备份和恢复的多种方法,如何迁移数据、导入导出表,如何进行数据复制和组复制。
第13章 MySQL服务管理
本章介绍MySQL服务,包括MySQL服务的配置、数据目录、MySQL系统数据库、服务组件和插件、服务日志。
第14章 日志管理
本章介绍MySQL日志的定义和分类以及各种日志的操作方法,包括二进制日志、错误日志、通用查询日志和慢查询日志,同时对MySQL 8新增的中继日志和数据定义语句日志进行介绍。
第15章 MySQL 8新特性:数据字典
本章介绍MySQL 8数据字典的新特性,包括数据字典的模式、存储方式、用法差异和限制。
第16章 MySQL 8新特性:InnoDB
本章介绍MySQL 8中InnoDB的新特性,讲解InnoDB的架构、优势、表空间、表和索引、备份和恢复、InnoDB与MySQL复制以及memecached插件。
第17章 MySQL 8新特性:NoSQL
本章介绍如何将MySQL设置为NoSQL存储以及如何安装并使用MySQL Shell和X插件。
第18章 Java连接MySQL
本章介绍各个操作系统下JDBC的加载、使用Statement、PreparedStatement接口操作SQL及使用Java进行数据库备份与恢复。
第19~20章 数据库设计实例
这两章演示了两个具有代表性的管理系统的数据库设计与实现:网上课堂系统和论坛系统,其中包括需求的分析、表和字段的设计、表与表之间的关系,还包括索引、视图和触发器的设计与实现。
代码、教学视频下载
本书配套代码下载地址请扫描右侧二维码获取。如果下载有问题,请联系[email protected],邮件主题为“精通MySQL 8”。
本书读者与作者
? 需要MySQL作为存储的各个语言的开发人员;
? MySQL数据库管理员;
? 软件开发项目经理。
本书由刘华贞创作。如果读者对本书有疑问和建议,请联系[email protected]。
著 者
2019年4月
评论
还没有评论。