mysql慕课版_MySQL数据库管理与开发(慕课版)

本教程详细讲解了MySQL数据库的管理与开发,包括数据库设计概述、MySQL的安装配置、数据库管理、表结构管理、数据操作、数据检索、视图、触发器、存储过程与函数、备份恢复以及性能优化等内容。通过实例介绍了E-R图设计、事务与锁机制,以及综合开发案例——图书馆管理系统,适合初学者和进阶者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第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章 数据库设计概述 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 为字段选择合适的数据类型 7

1.4.4 定义约束条件 8

小结 8

习题 8

第2章 MySQL概述 9

2.1 为什么选择MySQL数据库 10

2.1.1 什么是MySQL数据库 10

2.1.2 MySQL的优势 10

2.1.3 MySQL的发展史 10

2.2 MySQL特性 10

2.3 MySQL服务器的安装与配置 11

2.3.1 下载MySQL 11

2.3.2 MySQL环境的安装 13

2.3.3 启动、连接、断开和停止MySQL服务器 20

小结 23

上机指导 24

习题 25

第3章 MySQL数据库管理 26

3.1 创建数据库 27

3.1.1 通过CREATE DATABASE语句创建数据库 27

实例:创建图书馆管理系统数据库

3.1.2 通过CREATE SCHEMA语句创建数据库 27

实例:通过CREATE SCHEMA语句创建名称为db_library1的数据库

3.1.3 创建指定字符集的数据库 28

实例:创建使用GBK字符集的数据库

3.1.4 创建数据库前判断是否存在同名数据库 28

实例:创建图书馆管理系统数据库前判断是否存在同名数据库

3.2 查看数据库 29

实例:查看服务器中的所有数据库

3.3 选择数据库 29

实例:设置默认的数据库

3.4 修改数据库 30

实例:修改数据库使用的字符集

3.5 删除数据库 31

实例:删除3.1.4节创建的数据库

3.6 数据库存储引擎的应用 31

3.6.1 查询MySQL中支持的存储引擎 31

实例:查询默认的存储引擎

3.6.2 InnoDB存储引擎 33

3.6.3 MyISAM存储引擎 34

3.6.4 MEMORY存储引擎 34

3.6.5 如何选择存储引擎 35

小结 36

上机指导 36

习题 37

第4章 MySQL表结构管理 38

4.1 MySQL数据类型 39

4.1.1 数字类型 39

4.1.2 字符串类型 40

4.1.3 日期和时间数据类型 41

4.2 创建表 41

实例:创建图书馆管理系统的图书信息表

4.2.1 设置默认的存储引擎 43

实例:为图书类型表设置使用MyISAM存储引擎

4.2.2 设置自增类型字段 44

实例:为图书类型表设置自动编号

4.2.3 设置字符集 45

4.2.4 复制表结构 45

实例:为图书信息表建立副本

4.3 修改表结构 48

4.3.1 修改字段 48

实例:在图书信息表的副本中添加一个新的字段

4.3.2 修改约束条件 49

4.3.3 修改表的其他选项 50

4.3.4 修改表名 50

实例:修改图书信息表的副本为tb_books

4.4 删除表 51

实例:删除图书信息表的副本

4.5 设置索引 51

4.5.1 索引概述 51

4.5.2 创建索引 52

实例:创建考生成绩表并设置索引

实例:为图书信息表的书名字段设置索引

4.5.3 删除索引 55

实例:删除图书信息表的书名字段的索引

4.6 定义约束 56

4.6.1 定义主键约束 56

实例:创建图书馆管理系统的管理员信息表并将id字段设置为主键约束

实例:创建学生信息表并将学号和班级号设置为主键约束

4.6.2 定义候选键约束 57

实例:将图书信息表的书名字段设置为候选键约束

4.6.3 定义非空约束 58

实例:创建图书馆管理系统的管理员信息表,并为其设置非空约束

4.6.4 定义CHECK约束 58

实例:创建学生信息表,限制其age字段的值只能是7~18(不包括18)的数

实例:创建图书信息表,限制其typeid字段的值只能是类别表的id字段的值

小结 60

上机指导 60

习题 61

第5章 表记录的更新操作 62

5.1 插入表记录 63

5.1.1 使用INSERT…VALUES语句插入新记录 63

实例:向图书馆管理系统的管理员信息表中插入一条新记录

实例:向管理员信息表中插入记录的一部分

5.1.2 插入多条记录 65

实例:向管理员信息表中批量插入3条新记录

5.1.3 使用INSERT…SELECT语句插入结果集 66

实例:从图书馆管理系统的借阅表中获取部分借阅信息插入到归还表中

5.1.4 使用REPLACE语句插入新记录 68

5.2 修改表记录 69

实例:将图书馆管理系统的借阅表中的是否归还字段值设置为1

5.3 删除表记录 70

5.3.1 使用DELETE语句删除表记录 70

实例:将图书馆管理系统的管理员信息表中的名称为admin的管理员删除

5.3.2 使用TRUNCATE语句清空表记录 71

实例:清空图书馆管理系统的管理员信息表

小结 71

上机指导 72

习题 72

第6章 表记录的检索 73

6.1 基本查询语句 74

6.2 单表查询 75

6.2.1 查询所有字段 76

实例:查询图书馆管理系统的图书信息表的全部数据

6.2.2 查询指定字段 76

实例:从图书馆管理系统的图书信息表中查询图书的名称和作者

6.2.3 查询指定数据 76

实例:从图书馆管理系统的管理表中查询名称为mr的管理员

6.2.4 带IN关键字的查询 77

实例:从图书馆管理系统的图书表中查询位于左A-1或右A-1的图书信息

6.2.5 带BETWEEN AND的范围查询 78

实例:从图书馆管理系统的借阅表中查询指定时间段内的借阅信息

6.2.6 带LIKE的字符匹配查询 78

实例:对图书馆管理系统的图书信息进行模糊查询

6.2.7 用IS NULL关键字查询空值 79

实例:查询图书馆管理系统的读者类型表中name字段为空的记录

6.2.8 带AND的多条件查询 79

实例:判断输入的管理员账号和密码是否存在

6.2.9 带OR的多条件查询 80

实例:查询图书馆管理系统的管理员表中名称为mr或者mingrisoft的记录

6.2.10 用DISTINCT关键字去除结果中的重复行 80

实例:从图书馆管理系统的读者信息表中获取职业

6.2.11 用ORDER BY关键字对查询结果排序 81

实例:对图书借阅信息进行排序

6.2.12 用GROUP BY关键字分组查询 81

实例:分组统计每本图书的借阅次数(3例)

6.2.13 用LIMIT限制查询结果的数量 83

实例:查询最后被借阅的3本图书

实例:查询从编号2开始的3条记录

6.3 聚合函数查询 83

6.3.1 COUNT()函数 83

实例:统计图书馆管理系统中的读者人数

6.3.2 SUM()函数 84

实例:统计商品的销售金额

6.3.3 AVG()函数 84

实例:计算学生的平均成绩

6.3.4 MAX()函数 85

实例:计算学生表中的最高成绩

6.3.5 MIN()函数 86

实例:计算学生表中的最低成绩

6.4 连接查询 86

6.4.1 内连接查询 86

实例:使用内连接查询出图书的借阅信息

6.4.2 外连接查询 88

实例:使用左外连接获取图书的最多借阅天数

实例:使用右外连接获取图书的最多借阅天数

6.4.3 复合条件连接查询 89

实例:查询出未归还的图书借阅信息

6.5 子查询 90

6.5.1 带IN关键字的子查询 90

实例:查询被借阅过的图书信息

6.5.2 带比较运算符的子查询 91

实例:查询考试成绩为优秀的学生信息

6.5.3 带EXISTS关键字的子查询 92

实例:查询已经被借阅的图书信息

6.5.4 带ANY关键字的子查询 93

实例:查询比一年三班最低分高的全部学生信息

6.5.5 带ALL关键字的子查询 94

实例:查询比一年三班最高分高的全部学生信息

6.6 合并查询结果 95

实例:将图书信息表1和图书信息表2合并(2例)

6.7 定义表和字段的别名 96

6.7.1 为表取别名 96

实例:使用左连接查询出图书的完整信息,并为表指定别名

6.7.2 为字段取别名 96

实例:统计每本图书的借阅次数,并取别名为degree

6.8 使用正则表达式查询 97

6.8.1 匹配指定字符中的任意一个 98

实例:在图书馆管理系统中查询包括字母k、r或s的管理员信息

6.8.2 使用“*”和“ ”来匹配多个字符 99

实例:在图书馆管理系统中查询E-mail地址不正确的读者信息

小结 100

上机指导 100

习题 101

第7章 视图 102

7.1 视图概述 103

7.1.1 视图的概念 103

7.1.2 视图的作用 103

7.2 创建视图 104

7.2.1 查看创建视图的权限 104

实例:查看用户是否具有创建视图的权限

7.2.2 创建视图 104

实例:创建保存完整图书信息的视图

7.2.3 创建视图的注意事项 106

7.3 视图操作 106

7.3.1 查看视图 106

实例:查看图书视图的结构

实例:查看图书视图的详细定义

7.3.2 修改视图 108

实例:修改图书视图的结构

实例:使用ALTER语句修改图书视图的结构

7.3.3 更新视图 110

实例:更新图书视图中的数据

7.3.4 删除视图 112

实例:删除已经创建的图书视图

小结 113

上机指导 113

习题 114

第8章 触发器 115

8.1 MySQL触发器 116

8.1.1 创建MySQL触发器 116

实例:保存图书信息时,自动向日志表添加一条数据

8.1.2 创建具有多个执行语句的触发器 117

实例:删除图书信息时,分别向日志表和临时表中各添加一条数据

8.2 查看触发器 119

8.2.1 SHOW TRIGGERS 119

8.2.2 查看triggers表中的触发器信息 120

8.3 使用触发器 120

8.3.1 触发器的执行顺序 121

实例:触发器与表操作的执行顺序

8.3.2 使用触发器维护冗余数据 122

实例:使用触发器维护库存数量

8.4 删除触发器 123

实例:删除指定名称的触发器

小结 124

上机指导 124

习题 125

第9章 存储过程与存储函数 126

9.1 创建存储过程与存储函数 127

9.1.1 创建存储过程 127

实例:创建一个统计指定图书借阅次数的存储过程

9.1.2 创建存储函数 129

实例:创建一个统计图书借阅次数的存储函数

9.1.3 变量的应用 130

实例:演示局部变量的有效范围

实例:会话(全局)变量的举例

9.1.4 光标的运用 133

9.2 存储过程和存储函数的调用 134

9.2.1 调用存储过程 134

实例:调用统计图书借阅次数的存储过程

9.2.2 调用存储函数 135

实例:调用统计图书借阅次数的存储函数

9.3 查看存储过程和函数 136

9.3.1 SHOW STATUS语句 136

9.3.2 SHOW CREATE语句 136

实例:查询指定名称的存储过程

9.4 修改存储过程和函数 137

实例:修改存储过程

9.5 删除存储过程和函数 138

实例:删除统计图书借阅次数的存储过程

实例:删除统计图书借阅次数的存储函数

小结 138

上机指导 139

习题 140

第10章 备份与恢复 141

10.1 数据备份 142

10.1.1 使用mysqldump命令备份 142

实例:备份图书馆管理系统的数据库

实例:备份db_library和db_library_gbk数据库

实例:备份所有数据库

10.1.2 直接复制整个数据库目录 145

10.1.3 使用mysqlhotcopy工具快速备份 145

10.2 数据恢复 146

10.2.1 使用mysql命令还原 146

实例:还原已经备份的图书馆管理系统的数据库

10.2.2 直接复制到数据库目录 147

10.3 数据库迁移 147

10.3.1 MySQL数据库之间的迁移 147

10.3.2 不同数据库之间的迁移 148

10.4 表的导出和导入 148

10.4.1 用SELECT…INTO OUTFILE导出文本文件 148

实例:使用SELECT…INTO OUTFILE导出图书馆管理系统的图书表的记录

10.4.2 用mysqldump命令导出文本文件 150

实例:使用mysqldump命令导出图书馆管理系统的图书表的记录

10.4.3 用mysql命令导出文本文件 152

实例:使用mysql命令导出图书馆管理系统的图书表的记录

小结 153

上机指导 153

习题 155

第11章 MySQL性能优化 156

11.1 优化概述 157

11.1.1 分析MySQL数据库的性能 157

11.1.2 通过profile工具分析语句消耗的性能 157

11.2 优化查询 158

11.2.1 分析查询语句 159

实例:使用EXPLAIN语句分析一个查询语句

11.2.2 索引对查询速度的影响 160

实例:举例分析索引对查询速度的影响

11.2.3 使用索引查询 161

实例:举例分析应用LIKE关键字优化索引查询

实例:通过EXPLAIN分析使用OR关键字的查询

11.3 优化数据库结构 162

11.3.1 将字段很多的表分解成多个表 163

实例:将学生表分解为学生表和备注表

11.3.2 增加中间表 163

实例:创建包含学生表常用信息表中间表

11.3.3 优化插入记录的速度 164

11.3.4 分析表、检查表和优化表 165

11.4 优化多表查询 166

实例:演示优化多表查询

11.5 优化表设计 167

小结 168

上机指导 168

习题 169

第12章 事务与锁机制 170

12.1 事务机制 171

12.1.1 事务的概念 171

12.1.2 事务机制的必要性 171

实例:模拟银行转账验证事务的必要性

12.1.3 关闭MySQL自动提交 173

12.1.4 事务回滚 174

实例:演示事务回滚

12.1.5 事务提交 175

12.1.6 MySQL中的事务 176

实例:实现出错时回滚否则提交事务

12.1.7 回退点 178

实例:应用回退点实现部分撤销

12.2 锁机制 179

12.2.1 MySQL锁机制的基本知识 180

12.2.2 MyISAM表的表级锁 181

实例:以读方式锁定用户数据表

实例:以写方式锁定用户表

12.2.3 InnoDB表的行级锁 184

实例:通过事务实现延长行级锁的生命周期

12.2.4 死锁的概念与避免 186

12.3 事务的隔离级别 186

12.3.1 事务的隔离级别与并发问题 186

12.3.2 设置事务的隔离级别 187

小结 187

上机指导 188

习题 190

第13章 综合开发案例——图书馆管理系统 191

13.1 开发背景 192

13.2 系统分析 192

13.2.1 需求分析 192

13.2.2 可行性研究 192

13.3 JSP预备知识 193

13.3.1 JSP概述 193

13.3.2 JSP的开发及运行环境 194

13.3.3 JSP页面的基本构成 195

13.4 系统设计 195

13.4.1 系统目标 195

13.4.2 系统功能结构 196

13.4.3 系统流程图 196

13.4.4 开发环境 197

13.4.5 文件夹组织结构 197

13.5 系统预览 197

13.6 数据库设计 199

13.6.1 实体图设计 199

13.6.2 E-R图设计 201

13.6.3 数据库逻辑结构设计 201

13.7 公共模块设计 204

13.7.1 数据库连接及操作类的编写 205

13.7.2 字符串处理类的编写 207

13.7.3 配置解决中文乱码的过滤器 207

13.8 主界面设计 208

13.8.1 主界面概述 208

13.8.2 主界面的实现过程 209

13.9 管理员模块设计 210

13.9.1 管理员模块概述 210

13.9.2 编写管理员模块的实体类和Servlet控制类 210

13.9.3 系统登录的实现过程 212

13.9.4 查看管理员的实现过程 215

13.9.5 添加管理员的实现过程 218

13.9.6 设置管理员权限的实现过程 221

13.9.7 删除管理员的实现过程 224

13.10 图书借还模块设计 225

13.10.1 图书借还模块概述 225

13.10.2 编写图书借还模块的实体类和Servlet控制类 226

13.10.3 图书借阅的实现过程 227

13.10.4 图书续借的实现过程 231

13.10.5 图书归还的实现过程 234

13.10.6 图书借阅查询的实现过程 235

小结 239

附录 实验 240

实验1:安装MySQL数据库 241

实验2:创建数据库并指定使用的字符集 241

实验3:创建和修改数据表 243

实验4:使用SQL语句插入和更新记录 244

实验5:为表创建索引 246

实验6:创建并使用约束 247

实验7:模糊查询数据 249

实验8:查询和汇总数据库的数据 250

实验9:创建视图 251

实验10:创建触发器 252

实验11:创建和使用存储过程 254

实验12:备份和恢复数据库 255

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值