第1章 初识数据库 1
1.1 数据库入门 1
1.1.1 数据库的概念 1
1.1.2 SQL简介 2
1.1.3 常见的数据库产品 3
1.2 MySQL在Windows系统中的安装与配置 5
1.2.1 MySQL的下载 5
1.2.2 MySQL的安装 6
1.2.3 MySQL的配置 9
1.3 MySQL目录结构 15
1.4 MySQL的使用 16
1.4.1 启动和停止MySQL服务 17
1.4.2 登录和退出MySQL数据库 19
1.4.3 MySQL的相关命令 21
1.5 MySQL客户端工具 23
1.6 本章小结 25
1.7 习题 25
第2章 数据库和表的基本操作 27
2.1 MySQL支持的数据类型 27
2.1.1 数值类型 27
2.1.2 字符串类型 28
2.1.3 日期和时间类型 29
2.2 数据库的基本操作 32
2.2.1 创建和查看数据库 32
2.2.2 使用数据库 34
2.2.3 修改数据库 35
2.2.4 删除数据库 35
2.3 数据表的基本操作 36
2.3.1 创建数据表 36
2.3.2 查看数据表 37
2.3.3 修改数据表 39
2.3.4 删除数据表 43
2.4 本章小结 43
2.5 习题 43
第3章 表中数据的基本操作 45
3.1 插入数据 45
3.1.1 为所有列插入数据 45
3.1.2 为指定列插入数据 49
3.1.3 批量插入数据 51
3.2 更新数据 54
3.3 删除数据 56
3.3.1 使用DELETE删除数据 57
3.3.2 使用TRUNCATE删除数据 58
3.4 本章小结 59
3.5 习题 59
第4章 单表查询 61
4.1 基础查询 61
4.1.1 创建数据表和表结构的说明 61
4.1.2 查询所有字段 64
4.1.3 查询指定字段 66
4.2 条件查询 67
4.2.1 带关系运算符的查询 67
4.2.2 带AND关键字的查询 68
4.2.3 带OR关键字的查询 69
4.2.4 带IN或NOT IN关键字的查询 70
4.2.5 带IS NULL或IS NOT NULL关键字的查询 71
4.2.6 带BETWEEN AND关键字的查询 72
4.2.7 带LIKE关键字的查询 73
4.2.8 带DISTINCT关键字的查询 76
4.3 高级查询 76
4.3.1 排序查询 76
4.3.2 聚合函数 79
4.3.3 分组查询 85
4.3.4 HAVING子句 87
4.3.5 LIMIT分页 88
4.4 本章小结 89
4.5 习题 89
第5章 数据的完整性 91
5.1 实体完整性 91
5.1.1 主键约束 91
5.1.2 唯一约束 97
5.1.3 自动增长列 99
5.2 索引 102
5.2.1 普通索引 102
5.2.2 唯一索引 105
5.3 域完整性 107
5.3.1 非空约束 107
5.3.2 默认值约束 109
5.4 引用完整性 111
5.4.1 外键的概念 112
5.4.2 添加外键约束 113
5.4.3 删除外键约束 115
5.5 本章小结 116
5.6 习题 117
第6章 多表查询 118
6.1 表与表之间的关系 118
6.1.1 一对一 118
6.1.2 一对多和多对一 120
6.1.3 多对多 121
6.2 合并结果集 123
6.2.1 使用UNION关键字合并 123
6.2.2 使用UNION ALL关键字合并 125
6.3 连接查询 125
6.3.1 创建数据表和表结构的说明 125
6.3.2 笛卡儿积 127
6.3.3 内连接 129
6.3.4 外连接 131
6.3.5 多表连接 133
6.3.6 自然连接 134
6.3.7 自连接 137
6.4 子查询 137
6.4.1 子查询作为查询条件 137
6.4.2 子查询作为表 139
6.5 本章小结 140
6.6 习题 140
第7章 常用函数 142
7.1 字符串函数 142
7.1.1 ASCII()函数 143
7.1.2 CONCAT()函数 144
7.1.3 INSERT()函数 144
7.1.4 LEFT()函数 145
7.1.5 RIGHT()函数 146
7.1.6 LENGTH()函数 146
7.2 数学函数 147
7.2.1 ABS()函数 147
7.2.2 MOD()函数 148
7.2.3 PI()函数 148
7.2.4 RAND()函数 148
7.2.5 ROUND()函数 149
7.2.6 TRUNCATE()函数 150
7.3 日期和时间函数 150
7.3.1 DAY()函数 151
7.3.2 WEEK()函数 151
7.3.3 MONTH()函数 152
7.3.4 YEAR()函数 153
7.3.5 NOW()函数 153
7.4 格式化函数 154
7.4.1 FORMAT()函数 154
7.4.2 DATE FORMAT()函数 154
7.5 系统信息函数 155
7.5.1 DATABASE()函数 155
7.5.2 USER()或SYSTEM_USER()函数 156
7.5.3 VERSION()函数 156
7.6 本章小结 157
7.7 习题 157
第8章 视图 159
8.1 视图的概念 159
8.2 视图的操作 160
8.2.1 数据准备 160
8.2.2 创建视图 162
8.2.3 查看视图 165
8.2.4 修改视图 167
8.2.5 更新视图 169
8.2.6 删除视图 172
8.3 本章小结 173
8.4 习题 173
第9章 存储过程 174
9.1 存储过程概述 174
9.1.1 存储过程的概念 174
9.1.2 存储过程的优缺点 174
9.2 存储过程的相关操作 174
9.2.1 数据准备 175
9.2.2 创建存储过程 177
9.2.3 查看存储过程 180
9.2.4 修改存储过程 184
9.2.5 删除存储过程 185
9.2.6 局部变量的使用 185
9.2.7 定义条件和处理程序 186
9.2.8 光标的使用 188
9.2.9 流程控制 189
9.2.10 事件调度器 193
9.3 本章小结 195
9.4 习题 195
第10章 触发器 197
10.1 触发器概述 197
10.1.1 触发器的概念及优点 197
10.1.2 触发器的作用 197
10.2 触发器的操作 198
10.2.1 数据准备 198
10.2.2 创建触发器 199
10.2.3 查看触发器 202
10.2.4 使用触发器 204
10.2.5 删除触发器 205
10.3 小案例 206
10.4 本章小结 209
10.5 习题 209
第11章 数据库事务 210
11.1 事务的管理 210
11.1.1 事务的概念和使用 210
11.1.2 事务的回滚 214
11.1.3 事务的属性 215
11.1.4 事务的隔离级别 216
11.2 分布式事务 223
11.2.1 分布式事务的原理 223
11.2.2 分布式事务的语法和使用 223
11.3 本章小结 227
11.4 习题 227
第12章 MySQL高级操作 228
12.1 数据的备份与还原 228
12.1.1 数据的备份 228
12.1.2 数据的还原 235
12.2 权限管理 239
12.2.1 MySQL的权限 239
12.2.2 授予权限 240
12.2.3 查看权限 241
12.2.4 收回权限 241
12.3 MySQL分区 242
12.3.1 分区概述 242
12.3.2 分区类型详解 243
12.4 本章小结 249
12.5 习题 249
第13章 综合案例 251
13.1 数据准备 251
13.2 综合练习 257
13.3 本章小结 271