MySQL数据库管理与开发(慕课版 第2版)

MySQL数据库管理与开发
分享 推荐 0 收藏 1 阅读 98
赛奎春 (作者) 978-7-115-67058-8

关于本书的内容有任何问题,请联系 田紫微

1.AIGC结合MySQL数据库高效编程:通过AIGC帮助分析实例、编写实例,以及解决问题、规范代码
2. 配套资源丰富,包含慕课、试卷、课件、源代码等资源
3. 产教融合,企业实战案例
¥69.80 ¥59.33 (8.5 折)
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

内容摘要

本书系统全面地介绍了MySQL数据库应用开发所涉及的各类知识。全书共分为16章,内容包括数据库设计概述、MySQL概述、MySQL数据类型与运算符、MySQL存储引擎、MySQL数据库管理、MySQL表结构管理、MySQL函数、表记录的更新操作、表记录的检索、视图、触发器、存储过程与存储函数、备份与恢复、MySQL性能优化、事务与锁机制、综合开发案例——基于Python Flask的Go购甄选商城。本书最后还附有12个实验。全书内容与实例紧密结合,有助于读者理解知识、应用知识,学以致用。 近年来,AIGC技术高速发展,成为各行各业高质量发展和生产效率提升的重要推动力。本书将AIGC技术融入理论学习、实例编写、复杂系统开发等环节,帮助读者提升编程效率。 本书既可以作为高等院校数据库相关课程的教材,也可以供相关技术人员学习参考。

目录

第 1章 数据库设计概述 1
1.1 数据库概述 2
1.1.1 数据库与数据库管理系统 2
1.1.2 数据模型 3
1.1.3 结构化查询语言SQL 3
1.2 数据库的体系结构 3
1.2.1 数据库三级模式结构 3
1.2.2 三级模式之间的映射 4
1.3 E-R图 4
1.3.1 实体和属性 4
 实例:设计图书馆管理系统的图书实体图
1.3.2 关系 5
1.3.3 E-R图的设计原则 5
 实例:设计图书馆管理系统的E-R图
1.4 数据库设计 6
1.4.1 为实体建立数据表 6
 实例:根据图书实体建立图书数据表
1.4.2 为表建立主键或外键 7
1.4.3 为字段选择合适的数据类型 8
1.4.4 定义约束条件 9
小结 9
习题 9
第 2章 MySQL概述 10
2.1 为什么选择MySQL数据库 11
2.1.1 什么是MySQL数据库 11
2.1.2 MySQL的优势 11
2.1.3 MySQL的发展史 11
2.2 MySQL特性 11
2.3 MySQL服务器的安装与配置 12
2.3.1 下载MySQL 12
2.3.2 MySQL环境的安装 13
2.3.3 启动、连接、断开和停止MySQL服务器 17
2.4 MySQL常用图形管理工具 22
小结 22
上机指导 22
习题 24
第3章 MySQL数据类型与
运算符 25
3.1 MySQL数据类型 26
3.1.1 数字类型 26
 实例:查询指定数据类型的字段值
3.1.2 字符串类型 27
3.1.3 日期和时间数据类型 28
 实例:获取当前的系统时间
3.2 MySQL运算符 29
3.2.1 算术运算符 30
 实例:使用算术运算符进行运算
3.2.2 比较运算符 30
 实例:使用“=”运算符查询记录
3.2.3 逻辑运算符 35
 实例:使用“&&”运算符进行逻辑运算
3.2.4 位运算符 37
3.2.5 运算符的优先级 37
小结 38
上机指导 38
习题 39
第4章 MySQL存储引擎 40
4.1 MySQL架构 41
4.2 存储引擎的应用 41
4.2.1 查询MySQL中支持的存储
引擎 42
 实例:查询默认的存储引擎
4.2.2 InnoDB存储引擎 43
4.2.3 MyISAM存储引擎 44
4.2.4 MEMORY存储引擎 45
4.2.5 如何选择存储引擎 46
小结 46
上机指导 46
习题 51
第5章 MySQL数据库管理 52
5.1 创建数据库 53
5.1.1 通过CREATE DATABASE语句创建数据库 53
 实例:创建图书馆管理系统数据库
5.1.2 通过CREATE SCHEMA语句创建数据库 53
 实例:通过CREATE SCHEMA语句创建名称为db_shop的数据库
5.1.3 创建指定字符集的数据库 54
 实例:创建使用gbk字符集的数据库
5.1.4 创建数据库前判断是否存在同名数据库 54
 实例:创建图书馆管理系统数据库前判断是否存在同名数据库
5.2 查看数据库 55
 实例:查看服务器中的所有数据库
5.3 选择数据库 55
 实例:设置默认的数据库
5.4 修改数据库 56
 实例:修改数据库使用的字符集
5.5 删除数据库 57
 实例:删除名称为db_sales的数据库
小结 57
上机指导 57
习题 58
第6章 MySQL表结构管理 59
6.1 创建表 60
 实例:创建图书馆管理系统的图书信息表
6.1.1 设置默认的存储引擎 61
 实例:为图书类型表设置使用MyISAM存储引擎
6.1.2 设置自增类型字段 62
 实例:为图书类型表设置自动编号
6.1.3 设置字符集 63
6.1.4 复制表结构 63
 实例:为图书信息表建立副本
6.2 修改表结构 66
6.2.1 修改字段 66
 实例:在图书信息表的副本中添加一个新的字段
6.2.2 修改约束条件 67
6.2.3 修改表的其他选项 69
6.2.4 修改表名 69
 实例:修改图书信息表的副本为tb_books
6.3 删除表 70
 实例:删除图书信息表的副本
6.4 设置索引 70
6.4.1 索引概述 70
6.4.2 创建索引 71
 实例:创建考生成绩表并设置索引
 实例:为图书信息表的书名字段设置索引
6.4.3 删除索引 73
 实例:删除图书信息表的书名字段的索引
6.5 定义约束 74
6.5.1 定义主键约束 74
 实例:创建图书馆管理系统的管理员信息表并将id字段设置为主键约束
 实例:创建学生信息表并将学号和班级号设置为主键约束
6.5.2 定义候选键约束 76
 实例:将图书信息表的书名字段设置为候选键约束
6.5.3 定义非空约束 77
 实例:创建图书馆管理系统的管理员信息表,并为其设置非空约束
6.5.4 定义CHECK约束 77
 实例:创建学生信息表,限制其age字段的值只能是7~18(不包括18)的数
 实例:创建图书信息表,限制其del字段的值只能是0或1
小结 79
上机指导 79
习题 79
第7章 MySQL函数 81
7.1 MySQL函数概述 82
7.2 数学函数 82
7.2.1 ABS(x)函数 83
 实例:使用ABS(x)函数获取数字绝对值
7.2.2 RAND()函数 84
 实例:运用RAND()函数获取两个随机数
7.2.3 FLOOR(x)函数 84
 实例:应用FLOOR(x)函数求小于或等于指定数字的最大整数
7.2.4 PI()函数 84
 实例:使用PI()函数获取圆周率
7.2.5 TRUNCATE(x,y)函数 85
 实例:使用TRUNCATE(x,y)函数获取指定小数位数
7.2.6 ROUND(x)函数和ROUND(x,y)函数 85
 实例:使用ROUND(x)函数和ROUND(x,y)函数处理数字
7.2.7 SQRT(x)函数 86
 实例:使用SQRT(x)函数求指定数字的平方根
7.3 字符串函数 86
7.3.1 INSERT(s1,x,len,s2)函数 87
 实例:使用INSERT()函数进行字符串替换
7.3.2 UPPER(s),UCASE(s)函数 88
 实例:使用UPPER(s)函数和UCASE(s)函数将字母转换为大写
7.3.3 LEFT(s,n)函数 88
 实例:应用LEFT()函数返回指定字符串的前4个字符
7.3.4 RTRIM(s)函数 88
 实例:应用RTRIM函数去掉指定字符串结尾处的空格
7.3.5 SUBSTRING(s,n,len)函数 89
 实例:使用SUBSTRING()函数截取字符串
7.3.6 REVERSE(s)函数 89
 实例:使用REVERSE()函数反转字符串
7.3.7 FIELD(s,s1,s2,…)函数 90
 实例:应用FIELD函数查找字符串
7.4 日期和时间函数 90
7.4.1 CURDATE()函数和
CURRENT_DATE()函数 91
 实例:使用CURDATE()和
CURRENT_DATE()函数获取当前日期
7.4.2 CURTIME()函数和
CURRENT_TIME()函数 92
 实例:使用CURTIME()和
CURRENT_TIME()函数获取当前时间
7.4.3 NOW()函数 92
 实例:使用5个函数获取当前日期和时间
7.4.4 DATEDIFF(d1,d2)函数 92
 实例:使用DATEDIFF()函数计算两个日期的间隔天数
7.4.5 ADDDATE(d,n)函数 93
 实例:使用ADDDATE(d,n)函数返回指定日期加上6天的日期
7.4.6 ADDDATE(d,
INTERVAL expr type)函数 93
 实例:返回指定日期加上1年2个月后的日期
7.4.7 SUBDATE(d,n)函数 94
 实例:使用SUBDATE(d,n)函数返回指定日期减去6天后的日期
7.5 条件判断函数 94
 实例:使用CASE WHEN语句执行分支操作
7.6 系统信息函数 95
 实例:演示4个系统信息函数的用法
7.7 加密函数 96
 实例:使用MD5(str)函数为指定字符串加密
7.8 其他函数 96
 实例:使用FORMAT(x,n)函数对数字进行格式化
小结 97
上机指导 98
习题 98
第8章 表记录的更新操作 99
8.1 插入表记录 100
8.1.1 使用INSERT…VALUES语句插入新记录 100
 实例:向图书馆管理系统的管理员信息表中插入一条新记录
 实例:向管理员信息表中插入记录的一部分
8.1.2 插入多条记录 102
 实例:向管理员信息表中批量插入多条记录
8.1.3 使用INSERT…SELECT语句插入结果集 103
 实例:从图书馆管理系统的借阅表中获取部分借阅信息插入到归还表中
8.1.4 使用REPLACE语句插入新记录 105
8.2 修改表记录 106
 实例:将图书馆管理系统的借阅表中的是否归还字段值设置为1
8.3 删除表记录 107
8.3.1 使用DELETE语句删除表记录 107
 实例:将图书馆管理系统的管理员信息表中的指定管理员删除
8.3.2 使用TRUNCATE语句清空表记录 108
 实例:清空图书馆管理系统的管理员信息表
小结 109
上机指导 109
习题 110
第9章 表记录的检索 111
9.1 基本查询语句 112
9.2 单表查询 114
9.2.1 查询所有字段 114
 实例:查询图书馆管理系统的图书信息表的全部数据
9.2.2 查询指定字段 114
 实例:从图书馆管理系统的图书信息表中查询图书的名称和作者
9.2.3 查询指定数据 115
 实例:从图书馆管理系统的管理表中查询名称为mr的管理员
9.2.4 带IN关键字的查询 115
 实例:从图书馆管理系统的图书信息表中查询指定id的图书信息
9.2.5 带BETWEEN AND的范围查询 115
 实例:从图书馆管理系统的图书信息表中查询录入时间在指定时间段内的图书信息
9.2.6 带LIKE的字符匹配查询 116
 实例:对图书馆管理系统的图书信息进行模糊查询
9.2.7 用IS NULL关键字查询空值 117
 实例:查询图书馆管理系统的读者类型表中name字段为空的记录
9.2.8 带AND的多条件查询 117
 实例:判断输入的管理员账号和密码是否存在
9.2.9 带OR的多条件查询 118
 实例:查询图书馆管理系统的管理员表中指定名称的记录
9.2.10 用DISTINCT关键字去除
结果中的重复行 118
 实例:使用DISTINCT关键字去除图书信息表中指定字段的重复记录
9.2.11 用ORDER BY关键字对查询结果排序 119
 实例:对图书借阅信息进行排序
9.2.12 用GROUP BY关键字分组
查询 119
 实例:分组统计每本图书的借阅次数
9.2.13 用LIMIT限制查询结果的
数量 121
 实例:查询最后被借阅的3本图书
 实例:查询从编号2开始的3条记录
9.3 聚合函数查询 121
9.3.1 COUNT()函数 121
 实例:统计图书馆管理系统中的图书类型的个数
9.3.2 SUM()函数 122
 实例:统计商品的销售金额
9.3.3 AVG()函数 122
 实例:计算学生的平均成绩
9.3.4 MAX()函数 123
 实例:计算学生表中的最高成绩
9.3.5 MIN()函数 123
 实例:计算学生表中的最低成绩
9.4 连接查询 124
9.4.1 内连接查询 124
 实例:使用内连接查询出图书的借阅信息
9.4.2 外连接查询 125
 实例:使用左外连接获取图书的最多借阅天数
 实例:对两个数据表进行右外连接
9.4.3 复合条件连接查询 127
 实例:查询出未归还的图书借阅信息
9.5 子查询 127
9.5.1 带IN关键字的子查询 128
 实例:查询被借阅过的图书信息
9.5.2 带比较运算符的子查询 128
 实例:查询考试成绩为优秀的学生信息
9.5.3 带EXISTS关键字的子查询 130
 实例:查询已经被借阅的图书信息
9.5.4 带ANY关键字的子查询 130
 实例:查询比指定班级最低分高的全部学生信息
9.5.5 带ALL关键字的子查询 132
 实例:查询比指定班级最高分高的全部学生信息
9.6 合并查询结果 132
 实例:将图书信息表1和图书信息表2合并
9.7 定义表和字段的别名 134
9.7.1 为表取别名 134
 实例:使用左连接查询出图书的完整信息,并为表指定别名
9.7.2 为字段取别名 134
 实例:统计每本图书的借阅次数,并取别名为times
9.8 使用正则表达式查询 135
9.8.1 匹配指定字符中的任意一个 136
 实例:在图书馆管理系统中查询包括字母t、k或h的管理员信息
9.8.2 使用“*”和“+”来匹配
多个字符 137
 实例:在图书馆管理系统中查询指定的管理员信息
小结 137
上机指导 137
习题 139
第 10章 视图 140
10.1 视图概述 141
10.1.1 视图的概念 141
10.1.2 视图的作用 141
10.2 创建视图 142
10.2.1 查看创建视图的权限 142
 实例:查看用户是否具有创建视图的权限
10.2.2 创建视图 142
 实例:创建保存完整图书信息的视图
10.2.3 创建视图的注意事项 144
10.3 视图操作 144
10.3.1 查看视图 144
 实例:查看图书视图的结构
 实例:查看图书视图的详细定义
10.3.2 修改视图 146
 实例:修改图书视图的结构
 实例:使用ALTER语句修改图书视图的
结构
10.3.3 更新视图 148
 实例:更新图书视图中的数据
10.3.4 删除视图 150
 实例:删除已经创建的图书视图
小结 150
上机指导 150
习题 151
第 11章 触发器 152
11.1 MySQL触发器 153
11.1.1 创建MySQL触发器 153
 实例:保存图书信息时,自动向日志表添加一条数据
11.1.2 创建具有多个执行语句的
触发器 154
 实例:删除图书信息时,分别向日志表和临时表中各添加一条数据
11.2 查看触发器 156
11.2.1 SHOW TRIGGERS 156
11.2.2 查看triggers表中的触发器
信息 157
11.3 使用触发器 157
11.3.1 触发器的执行顺序 158
 实例:触发器与表操作的执行顺序
11.3.2 使用触发器维护冗余数据 159
 实例:使用触发器维护库存数量
11.4 删除触发器 160
 实例:删除指定名称的触发器
小结 161
上机指导 161
习题 162
第 12章 存储过程与存储函数 163
12.1 创建存储过程与存储函数 164
12.1.1 创建存储过程 164
 实例:创建一个统计指定图书借阅次数的存储过程
12.1.2 创建存储函数 166
 实例:创建一个统计图书借阅次数的存储
函数
12.1.3 变量的应用 167
 实例:演示局部变量的有效范围
 实例:全局变量的举例
12.1.4 光标的运用 170
12.2 存储过程和存储函数的调用 171
12.2.1 调用存储过程 171
 实例:调用统计图书借阅次数的存储过程
12.2.2 调用存储函数 172
 实例:调用统计图书借阅次数的存储函数
12.3 查看存储过程和函数 173
12.3.1 SHOW STATUS语句 173
12.3.2 SHOW CREATE语句 173
 实例:查询指定名称的存储过程
12.4 修改存储过程和函数 173
 实例:修改存储过程
12.5 删除存储过程和函数 174
 实例:删除统计图书借阅次数的存储过程
 实例:删除统计图书借阅次数的存储函数
小结 175
上机指导 175
习题 177
第 13章 备份与恢复 178
13.1 数据备份 179
13.1.1 使用mysqldump命令备份 179
 实例:备份图书馆管理系统的数据库
 实例:备份db_library和db_shop数据库
 实例:备份所有数据库
13.1.2 直接复制整个数据库目录 182
13.1.3 使用mysqlhotcopy工具快速
备份 182
13.2 数据恢复 183
13.2.1 使用mysql命令还原 183
 实例:还原已经备份的图书馆管理系统的数据库
13.2.2 直接复制到数据库目录 184
13.3 数据库迁移 184
13.3.1 MySQL数据库之间的迁移 184
13.3.2 不同数据库之间的迁移 185
13.4 表的导出和导入 185
13.4.1 用SELECT…INTO OUTFILE
导出文本文件 185
 实例:导出db_shop数据库中的商品信息表的记录
13.4.2 用mysqldump命令导出
文本文件 187
 实例:使用mysqldump命令导出图书馆管理系统的图书表的记录
13.4.3 用mysql命令导出文本文件 188
 实例:使用mysql命令导出图书馆管理系统的图书表的记录
小结 189
上机指导 189
习题 191
第 14章 MySQL性能优化 192
14.1 优化概述 193
14.1.1 分析MySQL数据库的性能 193
14.1.2 通过profile工具分析语句
消耗性能 193
14.2 优化查询 194
14.2.1 分析查询语句 195
 实例:使用EXPLAIN语句分析一个查询
语句
14.2.2 索引对查询速度的影响 196
 实例:举例分析索引对查询速度的影响
14.2.3 使用索引查询 197
 实例:举例分析应用LIKE关键字优化索引查询
 实例:通过EXPLAIN分析使用OR关键字的查询
14.3 优化数据库结构 198
14.3.1 将字段很多的表分解成
多个表 198
 实例:将学生表分解为学生表和生日信息表
14.3.2 增加中间表 199
 实例:创建包含学生常用信息的中间表
14.3.3 优化插入记录的速度 200
14.3.4 分析表、检查表和优化表 200
 实例:分析指定数据表
14.4 优化多表查询 202
 实例:演示优化多表查询
14.5 优化表设计 203
小结 203
上机指导 203
习题 204
第 15章 事务与锁机制 205
15.1 事务机制 206
15.1.1 事务的概念 206
15.1.2 事务机制的必要性 206
 实例:模拟银行转账验证事务的必要性
15.1.3 关闭MySQL自动提交 208
15.1.4 事务回滚 209
 实例:演示事务回滚
15.1.5 事务提交 210
15.1.6 MySQL中的事务 211
 实例:实现出错时回滚否则提交事务
15.1.7 回退点 212
 实例:应用回退点实现部分撤销
15.2 锁机制 214
15.2.1 MySQL锁机制的基本知识 214
15.2.2 MyISAM表的表级锁 216
 实例:以读方式锁定用户数据表
 实例:以写方式锁定用户数据表
15.2.3 InnoDB表的行级锁 219
 实例:通过事务实现延长行级锁的生命周期
15.2.4 死锁的概念与避免 220
15.3 事务的隔离级别 220
15.3.1 事务的隔离级别与并发问题 221
15.3.2 设置事务的隔离级别 221
小结 222
上机指导 222
习题 224
第 16章 综合开发案例——基于Python Flask的Go购甄选商城 225
16.1 需求分析 226
16.2 系统设计 226
16.2.1 系统功能结构 226
16.2.2 系统业务流程 227
16.2.3 系统预览 227
16.3 系统开发必备 231
16.3.1 系统开发环境 231
16.3.2 文件夹组织结构 231
16.4 技术准备 232
16.4.1 Flask-SQLAlchemy扩展 232
16.4.2 Flask-Migrate扩展 234
16.5 数据库设计 236
16.5.1 数据库概要说明 236
16.5.2 创建数据表 236
16.5.3 数据表关系 239
16.6 会员注册模块设计 240
16.6.1 会员注册模块概述 240
16.6.2 会员注册页面 241
16.6.3 验证并保存注册信息 246
16.7 会员登录模块设计 247
16.7.1 会员登录模块概述 247
16.7.2 创建会员登录页面 248
16.7.3 保存会员登录状态 251
16.7.4 会员退出功能 252
16.8 首页模块设计 252
16.8.1 首页模块概述 252
16.8.2 实现显示最新上架商品功能 252
16.8.3 实现显示打折商品功能 255
16.8.4 实现显示热门商品功能 256
16.9 购物车模块设计 257
16.9.1 购物车模块概述 258
16.9.2 实现显示商品详细信息功能 260
16.9.3 实现添加购物车功能 261
16.9.4 实现查看购物车功能 262
16.9.5 实现保存订单功能 263
16.9.6 实现查看订单功能 264
16.10 后台功能模块设计 265
16.10.1 后台登录模块设计 265
16.10.2 商品管理模块设计 267
16.10.3 销量排行榜模块设计 275
16.10.4 会员管理模块设计 276
16.10.5 订单管理模块设计 277
小结 279
习题 279
附录 实验 280
实验1:安装MySQL数据库 281
实验2:创建数据库并指定使用的
字符集 281
实验3:创建和修改数据表 282
实验4:使用SQL语句插入和更新记录 284
实验5:为表创建索引 285
实验6:创建并使用约束 287
实验7:模糊查询数据 288
实验8:查询和汇总数据库的数据 289
实验9:创建视图 290
实验10:创建触发器 291
实验11:创建和使用存储过程 293
实验12:备份和恢复数据库 294

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

赛奎春,明日科技,已经在我社出版多本程序设计类书籍,包括“技术方案宝典”、“开发技术大全”、“自学手册”、“参考大全”等多个系列,大都取得比较好的市场反响。

相关图书

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