MySQL数据库基础与实例教程(第2版 微课版)

案例先行--->实验驱动--->增设场景---->步骤详细---->实现案例
分享 推荐 0 收藏 6 阅读 641
孔祥盛 (作者) 978-7-115-67975-8

关于本书的内容有任何问题,请联系 许金霞

1.理论知识讲解透彻
搭建理论与实践深度融合的知识体系,培养工程思维。
2.以问题驱动为导向
遵循“概念模型→物理模型→系统实施→系统集成”的渐进路径。
3.实验丰富,步骤详细
近 100 个实验、200 个应用场景,详细解析MySQL基本原理。
4.配套丰富资源
以项目案例贯穿开发全生命周期,提供课件、教案、视频等资源。
¥69.80 ¥59.33 (8.5 折)

内容摘要

本书遵循工程教育认证的“学生中心、成果导向、持续改进”的核心理念,重构教学内容与实验体系,设计了“标准化实验框架+差异化输出成果”的双轨策略,以提升学生过程化考核的自律性。本书通过贯穿全书的项目案例,搭建理论与实践深度融合的知识体系,内容涵盖数据库开发全生命周期。同时,遵循“概念模型→物理模型→系统实施→系统集成”的渐进路径,结合迭代开发和软件测试实践,构建了“问题重现→根因剖析→技术攻关→实践验证”的闭环教学体系。
全书分为理论篇和实验篇。理论篇共10章,包括数据库设计概述、MySQL安装和配置、MySQL表管理、表记录的更新、表记录的检索、3种特殊表、SQL编程与MySQL函数、SQL编程进阶、事务机制与锁机制、MySQL知识与实用技巧汇总等内容;实验篇共10章,基于理论篇中各章的理论知识,结合数据库应用的场景设计相关实验,将理论与实践结合,提升学生的实践能力。
本书内容丰富,既适合初级、中级的MySQL用户学习,也可作为各类院校计算机相关专业的教材,还可作为广大MySQL爱好者的实用参考书。

目录

理论篇
第1章 数据库设计概述 2
1.1 数据库概述 2
1.1.1 数据库管理系统、数据库和数据库对象 2
1.1.2 关系、数据库表和电子表格 3
1.1.3 结构化查询语言SQL 4
1.1.4 数据库编码规范 4
1.2 表结构设计的重要性 5
1.3 选课系统的功能需求分析 6
1.3.1 选课系统功能需求分析 6
1.3.2 定义问题域 7
1.4 选课系统的概念数据模型设计 8
1.4.1 E-R图的表现形式及绘制工具介绍 8
1.4.2 实体 8
1.4.3 属性 8
1.4.4 关系 9
1.4.5 选课系统E-R图的设计 10
1.5 选课系统的物理数据模型设计 11
1.5.1 概念数据模型转换为物理数据模型的步骤 11
1.5.2 为E-R图中的每个实体创建一个数据库表 12
1.5.3 为每个表定义一个主键 12
1.5.4 增加外键维持实体间的一对多关系 13
1.5.5 向外键添加唯一性约束表示一对一关系 14
1.5.6 创建新表维持实体间的多对多关系 15
1.5.7 确定选课系统的表结构 15
1.5.8 为字段选择合适的数据类型 16
1.5.9 向字段添加约束 17
1.6 数据库规范化 18
1.6.1 1NF 18
1.6.2 2NF 18
1.6.3 3NF 20
1.6.4 选课系统的数据库规范化 22
1.7 课堂专题讨论:冗余数据的弊与利 22
习题  24
第2章 MySQL安装和
配置 25
2.1 MySQL概述 25
2.1.1 MySQL的特点 25
2.1.2 MySQL的使用流程 26
2.1.3 MySQL服务器和MySQL客户机相关概念 26
2.1.4 安装MySQL 27
2.1.5 通过Windows系统服务管理MySQL服务 30
2.1.6 MySQL客户机连接MySQL服务器 30
2.2 my.ini配置文件的作用 31
2.2.1 演示my.ini配置文件、会话系统变量和全局系统变量之间的关系 32
2.2.2 端口号占用问题的解决方案 34
2.3 字符集与字符序 35
2.3.1 字符集和字符序概述 35
2.3.2 查看MySQL字符集 36
2.3.3 字符集相关的会话系统变量 36
2.3.4 查看MySQL字符序 37
2.3.5 字符序相关的会话系统变量 38
2.3.6 避免中文字符乱码问题的关键步骤 39
2.3.7 中文字符乱码问题的排查与解决 40
2.4 MySQL注释 41
2.5 MySQL数据库管理 42
2.5.1 查看所有可用数据库 42
2.5.2 系统数据库 42
2.5.3 创建数据库 42
2.5.4 查看数据库结构 43
2.5.5 打开数据库 43
2.5.6 删除数据库 43
2.6 if exists和if not exists条件语句的作用 43
2.7 MySQL表管理 43
2.7.1 MyISAM和InnoDB存储引擎 44
2.7.2 创建表结构 45
2.7.3 查看所有可用数据库表 45
2.7.4 查看表结构 45
2.7.5 表记录的管理 46
2.7.6 删除表结构 46
2.8 SQL脚本文件 46
2.9 系统变量知识汇总 47
2.9.1 设置全局系统变量的值 47
2.9.2 设置会话系统变量的值 47
2.9.3 全局系统变量和会话系统
变量的数量差异 47
2.10 共享表空间与独享表空间 48
习题  48
第3章 MySQL表管理 50
3.1 数据类型 50
3.1.1 整数类型 50
3.1.2 小数类型 51
3.1.3 字符串类型 51
3.1.4 日期类型 52
3.1.5 布尔类型 53
3.1.6 理解null和is [ not ] null运算符 53
3.1.7 选择合适的数据类型 54
3.2 创建表结构 54
3.2.1 设置字段的约束 55
3.2.2 查看字段的约束 57
3.2.3 设置自增型字段 59
3.2.4 设置表的其他选项 59
3.3 复制表结构 59
3.4 修改表结构 60
3.4.1 表字段的添加、修改和删除 60
3.4.2 添加和删除约束 60
3.4.3 修改表的其他选项 60
3.4.4 修改表名 60
3.5 查看表结构和删除表结构 61
3.6 索引 61
3.6.1 课堂专题讨论—理解索引 61
3.6.2 课堂专题讨论:索引关键字的选取原则 64
3.6.3 索引与约束的关系 65
3.6.4 创建索引 65
3.6.5 查看索引 66
3.6.6 删除索引 66
3.7 N-gram模型 66
习题  67
第4章 表记录的更新 68
4.1 表记录的添加 68
4.1.1 使用insert语句添加一条记录 68
4.1.2 使用insert语句添加多条记录 71
4.1.3 使用insert…into select添加结果集 71
4.2 表记录的修改 72
4.3 表记录的删除 73
4.3.1 使用delete删除表记录 73
4.3.2 使用truncate语句清空表记录 73
4.4 表记录的替换 74
4.5 课堂专题讨论—更新操作与外键约束关系 74
4.6 MySQL特殊字符序列 74
习题  76
第5章 表记录的检索 77
5.1 运算符 77
5.1.1 算术运算符 77
5.1.2 比较运算符 78
5.1.3 逻辑运算符 80
5.2 select语句概述 82
5.2.1 字段列表 83
5.2.2 distinct关键字 83
5.2.3 limit关键字 84
5.3 使用where子句指定记录的过滤条件 85
5.4 explain命令 86
5.5 多表查询和多表连接 88
5.5.1 实现表和表之间连接的方法 88
5.5.2 内连接 89
5.5.3 左连接和右连接 90
5.5.4 多表连接 92
5.5.5 笛卡儿积 95
5.6 使用order by子句对结果集排序 95
5.7 使用聚合函数汇总结果集 96
5.8 使用group by子句对记录分组统计 98
5.8.1 group by和聚合函数的简单应用 98
5.8.2 group by子句搭配having子句使用 99
5.8.3 group by子句搭配with rollup选项 99
5.9 使用union合并结果集 99
5.10 子查询 101
5.10.1 子查询和比较运算符一起使用 101
5.10.2 子查询和in运算符一起使用 102
5.10.3 子查询与exists逻辑运算符一起使用 103
5.10.4 子查询与any运算符一起使用 103
5.10.5 子查询与all运算符一起使用 104
5.11 使用中文全文检索实现模糊查询 105
习题  106
第6章 3种特殊表 107
6.1 视图 107
6.1.1 创建视图和使用视图 107
6.1.2 查看视图 108
6.1.3 删除视图 109
6.1.4 视图在选课系统中的应用 109
6.1.5 视图的总结 111
6.2 临时表 112
6.2.1 临时表的分类 112
6.2.2 临时表的创建、查看与删除 113
6.2.3 临时表的简单使用 113
6.2.4 临时表在选课系统中的应用 114
6.2.5 临时表的使用总结 116
6.3 派生表 117
6.3.1 创建派生表的语法格式 117
6.3.2 派生表在选课系统中的应用 117
6.4 视图与临时表、派生表的本质区别 118
6.5 子查询、视图、临时表、派生表总结 119
习题  120
第7章 SQL编程与MySQL函数 121
7.1 SQL编程介绍 121
7.2 用户变量 121
7.2.1 使用set语句定义用户变量并赋值 122
7.2.2 使用select语句定义用户变量并赋值 123
7.3 begin...end语句块 124
7.4 重置结束标记 125
7.5 自定义函数 125
7.5.1 创建自定义函数的语法格式 125
7.5.2 调用自定义函数、形参与实参 126
7.5.3 删除自定义函数 127
7.5.4 创建和调用自定义函数的简单案例 127
7.5.5 查看自定义函数 128
7.6 局部变量 129
7.6.1 定义局部变量的方法 129
7.6.2 局部变量数据类型的注意事项 130
7.6.3 局部变量的赋值 130
7.6.4 局部变量的作用域 130
7.7 用户变量和局部变量的总结 131
7.8 自定义函数在选课系统中的应用—统计功能的实现 132
7.9 流程控制语句 133
7.9.1 if语句 133
7.9.2 case语句 135
7.9.3 while循环语句 136
7.10 内置函数 138
7.10.1 数学函数 138
7.10.2 字符串函数 138
7.10.3 加密函数 139
7.10.4 日期和时间函数 140
7.10.5 条件控制函数 142
7.10.6 其他实用函数 143
习题  144
第8章 SQL编程进阶 145
8.1 触发器 145
8.1.1 触发器功能 145
8.1.2 触发器种类 145
8.1.3 创建触发器的语法格式 146
8.1.4 触发程序中的old关键字与new关键字 146
8.1.5 删除触发器 147
8.1.6 触发器在选课系统中的应用—自动维护冗余字段 147
8.1.7 触发器在选课系统中的应用—模拟实现检查约束 149
8.1.8 查看触发器 153
8.1.9 触发器的使用总结 154
8.2 存储过程 154
8.2.1 创建存储过程的语法格式 154
8.2.2 in参数、out参数及inout参数 155
8.2.3 调用存储过程 155
8.2.4 删除存储过程 155
8.2.5 创建和调用存储过程的案例 155
8.2.6 查看存储过程 157
8.2.7 存储过程在选课系统中的应用—统计功能的实现 157
8.2.8 存储过程在选课系统中的应用—选课存储过程的实现 158
8.3 存储过程与自定义函数的使用总结 163
8.4 存储程序的说明 164
8.5 错误处理机制 164
8.5.1 手动抛出错误 164
8.5.2 定义错误处理程序 164
8.5.3 自定义错误触发条件 165
8.5.4 错误处理程序说明 166
8.5.5 选课存储过程的第1次迭代开发(引入错误处理机制处理外键约束错误) 166
习题  168
第9章 事务机制与锁机制 169
9.1 MySQL事务机制 169
9.1.1 数据不一致问题回顾及原因分析 169
9.1.2 事务机制的4个功能 169
9.1.3 MySQL事务机制 170
9.1.4 事务机制在选课系统中的应用—调课存储过程的实现 172
9.1.5 隐式提交 176
9.1.6 事务总结 177
9.2 锁机制 177
9.2.1 重现资源竞争问题 177
9.2.2 锁机制配合事务机制解决资源竞争问题 179
9.2.3 选课存储过程的第2次迭代开发(引入排他锁解决资源竞争问题) 180
9.2.4 调课存储过程的第1次迭代开发(引入排他锁解决资源竞争问题) 182
9.2.5 行级锁 182
9.3 死锁问题 183
9.3.1 重现死锁问题 184
9.3.2 调课存储过程的第2次迭代开发(处理死锁问题) 186
9.4 事务隔离级别 187
9.4.1 隔离级别种类 188
9.4.2 设置事务隔离级别 189
9.4.3 InnoDB锁与索引之间的关系 189
9.5 事务机制、锁机制和隔离级别总结 189
习题  190
第10章 MySQL知识与实用技巧汇总 191
10.1 理论知识汇总 191
10.1.1 概念数据模型和物理数据模型 191
10.1.2 InnoDB存储引擎与MyISAM存储引擎的区别 192
10.1.3 OLTP与OLAP 192
10.1.4 索引 192
10.1.5 SQL语句分类 193
10.1.6 事务的四大特性(ACID) 193
10.1.7 锁机制 193
10.1.8 事务隔离级别 194
10.2 MySQL实用技巧汇总 194
10.2.1 查找/获取资源信息 195
10.2.2 创建用户、分配权限、重置密码 195
10.2.3 开启远程连接功能 195
10.2.4 忘记root账户密码的解决方案 195
10.3 DBeaver的使用 196
10.4 使用mysqldump工具备份数据 196
10.5 使用mysql工具还原数据库 197
实验篇
第1章 上机实验—数据库设计概述 201
实验1-1 绘制选课系统E-R图 201
实验1-2 将选课系统E-R图转换为物理数据模型 202
第2章 上机实验—MySQL安装和配置 203
实验2-1 安装MySQL 204
实验2-2 理解my.ini配置文件的作用 204
实验2-3 字符集与字符序 204
实验2-4 中文字符乱码问题的避免和解决 204
实验2-5 演示3种MySQL注释的使用 205
实验2-6 MySQL数据库管理 206
实验2-7 演示if exists和if not exists条件语句的作用 206
实验2-8 MySQL表管理 207
实验2-9 演示SQL脚本文件的使用 207
实验2-10 演示全局系统变量和会话系统变量之间的关系 208
实验2-11 系统变量知识汇总 209
实验2-12 共享表空间与独享表空间的对比 211
实验2-13 演示数据库表和存储引擎之间的关系 212
实验2-14 重现各种中文字符乱码问题 213
第3章 上机实验—MySQL表管理 219
实验3-1 数据类型的使用注意事项 220
实验3-2 设置约束和查看约束 225
实验3-3 创建选课系统的表结构 225
实验3-4 复制表结构 228
实验3-5 修改表结构 228
实验3-6 删除表结构 231
实验3-7 索引的操作 231
实验3-8 演示InnoDB外键级联选项功能 232
实验3-9 演示MyISAM不支持外键级联删除 234
第4章 上机实验—表记录的更新 235
实验4-1 表记录的添加 236
实验4-2 update语句的用法 236
实验4-3 表记录的删除 236
实验4-4 表记录的替换 238
实验4-5 更新操作与外键约束关系 238
实验4-6 认识MySQL特殊字符序列 238
实验4-7 更新语句综合实验 238
第5章 上机实验—表记录的检索 241
实验5-1 运算符的使用 242
实验5-2 select语句的基本使用 242
实验5-3 使用where子句指定记录的过滤条件 242
实验5-4 使用explain命令展示模糊查询的执行计划 242
实验5-5 多表查询和多表连接 243
实验5-6 使用order by子句对结果集排序 243
实验5-7 使用聚合函数汇总结果集 243
实验5-8 使用group by子句对记录进行分组统计 243
实验5-9 使用union合并结果集 243
实验5-10 子查询的使用 243
实验5-11 使用中文全文索引实现模糊查询 244
实验5-12 中文全文检索停用词的使用 247
实验5-13 选课系统的综合查询 248
实验5-14 全文检索在选课系统中的应用 251
第6章 上机实验—3种特殊表 252
实验6-1 视图的使用 253
实验6-2 临时表的使用 253
实验6-3 派生表的使用 253
实验6-4 演示视图与临时表、派生表的本质区别 253
第7章 上机实验—SQL编程基础与MySQL函数 254
实验7-1 用户变量的定义与赋值 255
实验7-2 重置结束标记 255
实验7-3 自定义函数的创建、查看与删除 255
实验7-4 局部变量的定义和赋值 255
实验7-5 用户变量和局部变量的总结 255
实验7-6 自定义函数在选课系统中的应用—统计功能的实现 255
实验7-7 流程控制语句的使用 256
实验7-8 内置函数的使用 256
第8章 上机实验—SQL编程进阶 257
实验8-1 触发器在选课系统中的应用—自动维护冗余字段 258
实验8-2 触发器在选课系统中的应用—模拟实现检查约束 258
实验8-3 查看触发器的定义 258
实验8-4 使用触发器模拟实现MyISAM表的外键级联删除功能 258
实验8-5 验证同事件、同时机的触发器可以有多个 259
实验8-6 创建和调用存储过程的案例 261
实验8-7 查看存储过程 261
实验8-8 存储过程在选课系统中的应用—统计功能的实现 261
实验8-9 存储过程在选课系统中的应用—选课存储过程的实现 261
实验8-10 以转账业务为例—深入理解错误处理机制的必要性 261
实验8-11 以转账业务为例—深入理解错误处理方式exit的执行流程 262
实验8-12 以转账业务为例—深入理解错误处理方式continue的执行流程 264
实验8-13 以转账业务为例—自定义错误触发条件 265
实验8-14 以除零错误为例—错误处理机制的综合案例 266
实验8-15 选课存储过程的第1次迭代开发(引入错误处理机制处理外键约束错误) 267
第9章 上机实验—事务机制与锁机制 268
实验9-1 错误处理机制配合事务机制—解决转账业务数据不一致问题 269
实验9-2 事务机制在选课系统中的应用—调课存储过程的实现 269
实验9-3 重现资源竞争问题 269
实验9-4 锁机制配合事务机制解决资源竞争问题 269
实验9-5 选课存储过程的第2次迭代开发(引入排他锁解决资源竞争问题) 269
实验9-6 调课存储过程的第1次迭代开发(引入排他锁解决资源竞争问题) 269
实验9-7 死锁问题 269
实验9-8 事务隔离级别 269
实验9-9 记录锁和间隙锁 273
第10章 综合案例—使用Python操作选课系统数据库 276
实验10-1 使用Python调用选课存储过程 277
实验10-2 使用Python操作视图 283
实验10-3 使用Python调用自定义函数 283
实验10-4 使用Python演示全文检索 284
实验10-5 使用Python调用调课存储过程 284
实验10-6 使用Python调用统计功能的存储过程 285
实验10-7 使用Python演示update语句的使用 286
实验10-8 使用Python演示分页功能的实现 286
实验10-9 使用Python重现SQL注入问题 287
实验10-10 使用Python解决SQL注入问题 287
实验10-11 借助DeepSeek辅助开发Python Web选课系统 288

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

孔祥盛,副教授,精通Java、JavaScript、PHP、Python等编程语言,熟悉Web开发、爬虫、自动化测试、数据分析与数据挖掘、数据可视化、数据库等技术,擅长将抽象的理论知识具体化、生活化,善于将综合知识融会贯通于项目案例,主编教材《PHP基础与实例教程》 印次20余次,并获河南省普通高等教育“十四五”规划教材立项、河南省优秀教材二等奖,主编教材《MySQL数据库基础与实例教程》印次近20次。

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部