第1章 理解SQL 1
1.1 数据库基础 1
1.1.1 什么是数据库 1
1.1.2 表 2
1.1.3 列和数据类型 3
1.1.4 行 3
1.1.5 NULL 4
1.1.6 主键 4
1.2 什么是SQL 5
1.3 试一试 5
1.4 总结 5
第2章 MariaDB入门 6
2.1 什么是MariaDB 6
2.1.1 客户端/服务器软件 7
2.1.2 MySQL兼容性 7
2.2 MariaDB工具 8
2.2.1 mysql命令行 8
2.2.2 MySQL Workbench 9
2.3 总结 10
第3章 让MariaDB运行起来 11
3.1 数据库连接 11
3.2 选择数据库 12
3.3 了解数据库和表 12
3.4 总结 15
第4章 检索数据 16
4.1 SELECT语句 16
4.2 检索单独的列 16
4.3 检索多列 17
4.4 检索所有列 18
4.5 检索不同的行 19
4.6 限定结果 20
4.7 完全限定表名 22
4.8 注释 22
4.9 总结 23
第5章 对检索的数据排序 24
5.1 数据排序 24
5.2 以多列为标准排序 26
5.3 指定排序方向 27
5.4 总结 29
第6章 过滤数据 30
6.1 WHERE子句 30
6.2 WHERE子句操作符 31
6.2.1 检查单一值 31
6.2.2 检查不匹配 32
6.2.3 检查区间值 33
6.2.4 空值检查 34
6.3 总结 35
第7章 高级数据过滤 36
7.1 组合WHERE子句 36
7.1.1 AND操作符 36
7.1.2 OR操作符 37
7.1.3 理解优先级顺序 38
7.2 IN操作符 39
7.3 NOT操作符 40
7.4 总结 41
第8章 使用通配符过滤 42
8.1 LIKE操作符 42
8.1.1 百分号(%)通配符 43
8.1.2 下划线(_)通配符 44
8.2 使用通配符的技巧 45
8.3 总结 45
第9章 正则表达式搜索 46
9.1 理解正则表达式 46
9.2 使用正则表达式 47
9.2.1 基本字符匹配 47
9.2.2 执行OR匹配 48
9.2.3 匹配多个字符中的一个 49
9.2.4 匹配范围 50
9.2.5 匹配特殊字符 51
9.2.6 匹配字符类 52
9.2.7 匹配多个实例 53
9.2.8 锚点 54
9.3 总结 55
第10章 创建计算字段 56
10.1 计算字段 56
10.2 拼接字段 57
10.3 执行算术运算 59
10.4 总结 61
第11章 数据操作函数 62
11.1 理解函数 62
11.2 使用函数 62
11.2.1 文本操作函数 63
11.2.2 日期和时间操作函数 64
11.2.3 数值操作函数 67
11.3 总结 67
第12章 数据汇总 68
12.1 聚合函数 68
12.1.1 AVG()函数 69
12.1.2 COUNT()函数 70
12.1.3 MAX()函数 71
12.1.4 MIN()函数 71
12.1.5 SUM()函数 72
12.2 聚合不同值 73
12.3 组合聚合函数 74
12.4 总结 74
第13章 数据分组 75
13.1 理解数据分组 75
13.2 创建分组 76
13.3 过滤分组 77
13.4 分组和排序 79
13.5 SELECT子句顺序 80
13.6 总结 81
第14章 子查询 82
14.1 子查询简介 82
14.2 通过子查询过滤 82
14.3 使用子查询作为计算字段 85
14.4 总结 87
第15章 多表连接 88
15.1 连接 88
15.1.1 理解关系表 88
15.1.2 为什么使用连接 89
15.2 创建连接 90
15.2.1 WHERE子句的重要性 91
15.2.2 内连接 93
15.2.3 连接多个表 94
15.3 总结 95
第16章 创建高级连接 96
16.1 表别名 96
16.2 不同类型的连接 97
16.2.1 自连接 97
16.2.2 自然连接 98
16.2.3 外连接 99
16.3 带聚合函数的连接 100
16.4 连接和连接条件 101
16.5 总结 101
第17章 联合查询 102
17.1 理解联合查询 102
17.2 创建联合查询 102
17.2.1 UNION 103
17.2.2 UNION规则 104
17.2.3 包含还是移除重复行 104
17.2.4 对联合查询结果排序 105
17.3 总结 106
第18章 全文本搜索 107
18.1 理解全文本搜索 107
18.2 使用全文本搜索 108
18.2.1 启用全文本搜索支持 108
18.2.2 执行全文本搜索 109
18.2.3 查询扩展 111
18.2.4 布尔文本搜索 113
18.2.5 全文本搜索注意事项 116
18.3 总结 116
第19章 插入数据 117
19.1 理解数据插入 117
19.2 插入完整行 117
19.3 插入多行 120
19.4 插入检索到的数据 121
19.5 总结 123
第20章 更新和删除数据 124
20.1 更新数据 124
20.2 删除数据 126
20.3 更新和删除数据的准则 127
20.4 总结 127
第21章 创建和操作表 128
21.1 创建表 128
21.1.1 基本表创建 128
21.1.2 使用NULL值 130
21.1.3 再论主键 131
21.1.4 使用Auto INCREMENT 131
21.1.5 指定默认值 132
21.1.6 引擎类型 133
21.2 更新表 134
21.3 删除表 135
21.4 重命名表 136
21.5 总结 136
第22章 视图 137
22.1 理解视图 137
22.1.1 为何使用视图 138
22.1.2 视图规则及限制条件 138
22.2 使用视图 139
22.2.1 使用视图简化连接 139
22.2.2 使用视图重新格式化检索的数据 140
22.2.3 使用视图过滤不需要的数据 141
22.2.4 使用视图创建计算字段 142
22.2.5 更新视图 143
22.3 总结 143
第23章 存储过程 144
23.1 理解存储过程 144
23.2 为什么使用存储过程 145
23.3 使用存储过程 145
23.3.1 执行存储过程 145
23.3.2 创建存储过程 146
23.3.3 删除存储过程 147
23.3.4 使用参数 148
23.3.5 构建智能存储过程 151
23.3.6 检查存储过程 153
23.4 总结 153
第24章 游标 154
24.1 理解游标 154
24.2 使用游标 154
24.2.1 创建游标 155
24.2.2 打开和关闭游标 155
24.2.3 使用游标数据 156
24.3 总结 160
第25章 触发器 161
25.1 理解触发器 161
25.2 创建触发器 161
25.3 删除触发器 162
25.4 使用触发器 163
25.4.1 INSERT触发器 163
25.4.2 DELETE触发器 164
25.4.3 UPDATE触发器 166
25.4.4 更多触发器相关信息 166
25.5 总结 166
第26章 管理事务处理 167
26.1 理解事务处理 167
26.2 控制事务 169
26.2.1 使用ROLLBACK 169
26.2.2 使用COMMIT 169
26.2.3 使用保存点 170
26.2.4 修改默认提交行为 171
26.3 总结 171
第27章 全球化和本地化 172
27.1 理解字符集和排序规则 172
27.2 使用字符集和排序规则 172
27.3 总结 174
第28章 安全管理 175
28.1 理解访问控制 175
28.2 用户管理 176
28.2.1 创建用户账户 176
28.2.2 删除用户账户 177
28.2.3 设置访问权限 177
28.2.4 修改密码 180
28.3 总结 181
第29章 数据库维护 182
29.1 数据备份 182
29.2 执行数据库维护 182
29.3 诊断启动问题 183
29.4 检查日志文件 184
29.5 总结 184
第30章 提升性能 185
30.1 关于提升性能 185
30.2 总结 186
附录A 开始使用MariaDB 187
附录B 样例表 189
附录C MariaDB数据类型 195
附录D MariaDB保留字 199