MySQL数据库是目前全球流行的数据库之一。《MySQL 8.0从入门到实战》从入门到实战,系统全面、由浅入深地介绍MySQL数据库应用的各个方面。全书分为8个部分,共18章。第1部分(第1~3章)介绍MySQL的基础知识,包括初识MySQL、数据库设计和数据类型;第2部分(第4~6章)介绍MySQL的基本操作,包括SQL基础操作、MySQL连接查询和数据复制、MySQL基础函数;第3部分(第7、8章)介绍MySQL高级查询函数,包括MySQL高级函数和窗口函数;第4部分(第9、10章)介绍MySQL数据表分区,包括MySQL表分区和分区管理;第5部分(第11、12章)介绍视图、存储过程、字符集排序规则的说明和使用,包括MySQL视图和存储过程、游标和字符集排序规则;第6部分(第13~15章)介绍MySQL数据查询优化,包括MySQL索引、InnoDB事务模型和锁使用、Innonull
第1部分 MySQL基础
第1章 初识MySQL 2
1.1 MySQL是什么 2
1.2 MySQL 8安装和配置 3
1.2.1 安装版本的选择 3
1.2.2 在Windows平台下安装和配置MySQL 3
1.2.3 在Linux平台下安装和配置MySQL 10
1.2.4 在Docker平台下安装和配置MySQL 14
1.3 如何学习MySQL 18
1.4 本章练习 19
第2章 数据库设计 20
2.1 关系数据库设计理论三大范式 20
2.2 连接数据库和基本信息查询 24
2.2.1 连接数据库 24
2.2.2 基本信息查询 25
2.3 创建数据库和表 28
2.3.1 创建数据库 29
2.3.2 创建表 30
2.4 本章练习 31
第3章 MySQL数据类型 32
3.1 数字数据类型 32
3.2 日期和时间数据类型 36
3.3 字符串数据类型 37
3.4 JSON数据类型 43
3.5 本章练习 48
第2部分 MySQL基本操作
第4章 MySQL基础操作 50
4.1 数据库操作 50
4.2 数据表操作 52
4.2.1 创建数据表 52
4.2.2 数据表的修改与删除 54
4.2.3 约束 55
4.3 数据查询 57
4.4 数据插入 58
4.5 where(筛选) 59
4.6 and和or(与和或) 60
4.7 between(范围查找) 61
4.8 distinct(去重关键字) 62
4.9 update(修改或更新) 62
4.10 delete(删除) 64
4.11 like(模糊匹配) 65
4.12 order by(排序) 67
4.13 group by(分组) 68
4.14 with rollup(分组统计再统计) 69
4.15 having(分组筛选) 69
4.16 union和union all(组合查询) 70
4.17 本章练习 72
第5章 MySQL连接查询和数据复制 74
5.1 连接查询分类 74
5.2 inner join(内连接) 75
5.3 left join(左连接) 76
5.4 right join(右连接) 77
5.5 in和not in(多关键字筛选) 78
5.6 exists和not exists(是否返回结果集) 79
5.7 复制表 80
5.8 临时表 81
5.9 本章练习 82
第6章 MySQL基础函数 83
6.1 MySQL字符串函数 83
6.1.1 character_length(s):返回字符串长度 83
6.1.2 concat(s1,s2,,sn):字符串合并 84
6.1.3 format(x,n):数字格式化 84
6.1.4 lpad(s1,len,s2):字符串填充 84
6.1.5 field(s,s1,s2,):返回字符串出现的位置 84
6.1.6 insert(s1,x,len,s2):替换字符串 85
6.1.7 lcase(s):把字符串中的所有字母转换为小写字母 85
6.1.8 ucase(s):把字符串中的所有字母转换为大写字母 85
6.1.9 strcmp(s1,s2):比较字符串大小 86
6.1.10 replace(s,s1,s2):字符串替换 86
6.1.11 position(s1 in s):获取子字符串在字符串中出现的位置 86
6.1.12 md5(s):字符串加密 86
6.1.13 inet_aton(ip):把IP地址转换为数字 87
6.1.14 inet_ntoa (s):把数字转换为IP地址 87
6.2 MySQL数字函数 87
6.2.1 ceil(x):返回不小于x的最小整数 87
6.2.2 ceiling(x):返回不小于x的最小整数 88
6.2.3 floor(x):返回不大于x的优选整数 88
6.2.4 round(x):返回最接近x的整数 88
6.2.5 max(expression):求优选值 89
6.2.6 min(expression):求最小值 89
6.2.7 sum(expression):求总和 89
6.2.8 avg(expression):求平均值 90
6.2.9 count(expression):求总记录数 90
6.3 MySQL日期函数 91
6.3.1 adddate(d,n):返回指定日期加上指定天数后的日期 91
6.3.2 addtime(t,n):返回指定时间加上指定时间后的时间 91
6.3.3 curdate():返回当前日期 92
6.3.4 datediff(d1,d2):返回两个日期相隔的天数 92
6.3.5 dayofyear(d):返回指定日期是本年的第几天 92
6.3.6 extract(type from d):根据对应格式返回日期 92
6.3.7 now():返回当前日期和时间 93
6.3.8 quarter(d):返回日期对应的季度数 94
6.3.9 second(t):返回指定时间中的秒数 94
6.3.10 timediff(time1, time2):计算时间差 94
6.3.11 date(t):从指定日期时间中提取日期值 95
6.3.12 hour(t):返回指定时间中的小时数 95
6.3.13 time(expression):提取日期时间参数中的时间部分 95
6.3.14 time_format(t,f):根据表达式显示时间 95
6.3.15 year(d):返回指定日期的年份 96
第3部分 MySQL高级查询函数
第7章 MySQL高级函数 98
7.1 cast(x as type):数据类型转换 98
7.2 coalesce(expr1, , exprn):返回第一个非空表达式 99
7.3 if(expr,v1,v2):表达式判断 99
7.4 ifnull(v1,v2):null替换 99
7.5 isnull(expression):判断表达式是否为null 100
7.6 nullif(expr1, expr2):字符串相等则返回null 100
7.7 last_insert_id():返回最近生成的自增ID 101
7.8 case expression:表达式分支 101
7.9 本章练习 102
第8章 MySQL窗口函数 103
8.1 窗口函数语法和数据准备 103
8.2 排名函数 105
8.2.1 row_number():顺序排名函数 105
8.2.2 rank():跳级排名函数 106
8.2.3 dense_rank():不跳级排名函数 107
8.3 分析函数 108
8.3.1 lag():前分析函数,返回前n行的值 108
8.3.2 lead():后分析函数,返回后n行的值 109
8.4 头尾函数 109
8.4.1 first_value():头尾函数,返回第一个值 109
8.4.2 last_value():头尾函数,返回最后一个值 110
8.5 聚合统计函数 112
8.5.1 sum():聚合统计总和 112
8.5.2 avg():聚合统计平均值 113
8.5.3 max():聚合统计优选值 113
8.5.4 min():聚合统计最小值 114
8.5.5 count():聚合统计总条数 114
8.6 其他函数 115
8.6.1 nth_value():从结果集中的第n行获取值 115
8.6.2 ntile():数据集分桶 117
8.7 本章练习 118
第4部分 MySQL数据表分区
第9章 MySQL表分区 120
9.1 分区介绍 120
9.2 分区类型 121
9.3 范围分区 121
9.4 列表分区 124
9.5 列分区 127
9.5.1 范围列分区 127
9.5.2 列表列分区 132
9.6 哈希分区 134
9.7 键分区 137
9.8 子分区 138
9.9 MySQL分区对null的处理 140
9.10 本章练习 145
第10章 MySQL分区管理 146
10.1 范围分区和列表分区的管理 146
10.1.1 添加和删除分区 146
10.1.2 拆分合并分区 149
10.2 哈希分区和键分区的管理 149
10.3 分区管理和维护操作 150
10.4 分区的 152
10.5 分区键与主键、专享键的关系 153
10.6 本章练习 156
……