具体描述
编辑推荐
1. 教材厚度适合高校中的学时要求。
2. 讲解方式符合教学:采用普通高等院校传统教学模式,采用基础知识讲解、经典案例分析、综合案例应用的写法。
3. 慕课的形式深受老师欢迎。
4. 配套资源比一般教科书丰富,包括教学视频、自测题库、案例代码、PPT课件、习题答案、拓展案例等。 内容简介
本书系统全面地介绍了有关MySQL数据库应用开发所涉及的各类知识。全书共分13章,内容包括数据库设计概述、MySQL概述、MySQL数据库管理、MySQL表结构管理、表记录的更新操作、表记录的检索、视图、触发器、存储过程与存储函数、备份与恢复、MySQL性能优化、事务与锁机制、综合开发案例——图书馆管理系统。本书最后还附有12个实验。全书每章内容都与实例紧密结合,有助于学生理解知识、应用知识,实现学以致用的目的。
本书为慕课版教材,各章节主要内容配备了以二维码为载体的微课,并在人邮学院(www.rymooc.com)平台上提供了慕课。此外,本书还提供了课程资源包。资源包中提供了本书所有实例、上机指导、综合案例的源代码、制作精良的电子课件PPT、重点及难点教学视频、自测题库(包括选择题、填空题、操作题题库及自测试卷等内容),以及拓展综合案例和拓展实验。其中,源代码全部经过精心测试,能够在Windows XP、Windows 7系统下编译和运行。 目录
第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
MySQL数据库管理与开发(慕课版) 一、 课程概述: 《MySQL数据库管理与开发(慕课版)》是一门面向广大计算机科学与技术、软件工程、信息管理等相关专业的学习者精心设计的在线课程。本课程旨在为学员提供全面、系统且深入的MySQL数据库知识体系,涵盖从基础概念到高级应用的各个层面。通过理论讲解、实例演示、实践练习等多元化的教学手段,帮助学员掌握MySQL数据库的安装配置、日常管理、SQL语言的精通运用,以及如何进行高效的数据库设计与开发,最终培养具备独立完成数据库相关任务的能力。 本课程特别强调理论与实践的结合,既讲解数据库原理和规范,又注重在实际操作中加深理解。慕课形式的灵活性使得学习者可以根据自身节奏进行学习,碎片化时间得到充分利用。课程内容紧密贴合业界实际需求,旨在培养出能够直接投入工作岗位的实用型人才。 二、 课程目标: 完成本课程的学习后,学员将能够: 1. 理解数据库基本概念与原理: 深入理解关系型数据库、表、字段、记录、索引、视图、触发器等核心概念,掌握数据库管理系统的基本工作原理。 2. 熟练掌握MySQL的安装与配置: 能够根据不同操作系统环境,正确安装、配置和启动MySQL服务器,并进行基本的安全加固。 3. 精通SQL语言: 熟练运用SQL语言进行数据查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)等基本操作,掌握多表连接、子查询、聚合函数、分组、排序等高级查询技巧。 4. 掌握数据库设计与优化: 理解数据库范式,能够根据实际需求进行合理的数据库结构设计,并掌握索引创建、查询优化、性能调优等关键技术。 5. 学会数据库的日常管理: 掌握用户权限管理、数据备份与恢复、日志管理、性能监控等数据库日常维护操作,确保数据库的安全稳定运行。 6. 进行简单的数据库开发: 了解存储过程、函数、视图、触发器等数据库对象,并能结合编程语言(如PHP, Java, Python等)进行数据库应用程序的开发。 7. 解决实际数据库问题: 能够分析和解决开发与管理过程中遇到的常见数据库问题,具备独立排查故障的能力。 三、 课程内容详解: 第一部分:数据库基础与MySQL入门 第一章:数据库系统概述 数据库的产生背景与发展历程。 数据库、数据库管理系统(DBMS)与数据库系统的定义及关系。 数据模型:层次模型、网状模型、关系模型。 关系型数据库的基本概念:表(Table)、记录(Record)、字段(Field)、主键(Primary Key)、外键(Foreign Key)、索引(Index)。 SQL(Structured Query Language)简介:SQL的地位、特点与分类(DDL, DML, DCL, TCL)。 慕课特色: 通过生动形象的比喻和图示,帮助初学者快速建立对数据库的整体认知。 第二章:MySQL数据库系统安装与配置 MySQL介绍:版本特点、优势与应用领域。 不同操作系统(Windows, Linux, macOS)下的MySQL安装方法详解。 MySQL服务器的启动、停止与重启。 MySQL配置文件解析:`my.cnf`/`my.ini`的关键配置项介绍。 MySQL客户端工具的安装与使用:MySQL Workbench, Navicat, DBeaver等。 慕课特色: 提供详细的安装脚本和操作视频,演示每一步骤,避免安装过程中的常见错误。 第三章:MySQL数据类型与约束 MySQL支持的常用数据类型:数值型(INT, DECIMAL)、字符串型(VARCHAR, TEXT)、日期时间型(DATETIME, TIMESTAMP)、布尔型(BOOLEAN)。 数据类型的选择原则与注意事项。 数据完整性约束:NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, DEFAULT。 约束的创建、修改与删除。 慕课特色: 针对不同业务场景,讲解何时选择何种数据类型,以及如何设计有效的约束来保证数据质量。 第二部分:SQL语言精通 第四章:基本数据查询(SELECT) `SELECT`语句的基本语法:指定列、``通配符。 `FROM`子句:指定数据来源表。 `WHERE`子句:条件查询,逻辑运算符(AND, OR, NOT),比较运算符(=, >, <, >=, <=, !=, <>)。 运算符优先级与嵌套查询。 慕课特色: 大量互动式查询练习,通过实际案例引导学员写出复杂的查询语句。 第五章:数据排序与分页 `ORDER BY`子句:升序(ASC)与降序(DESC)排序。 多列排序。 `LIMIT`子句:实现数据分页,`OFFSET`关键字。 慕课特色: 讲解分页在Web应用中的重要性,并演示如何用SQL实现高效分页。 第六章:聚合函数与分组查询 常用聚合函数:`COUNT()`, `SUM()`, `AVG()`, `MAX()`, `MIN()`。 `GROUP BY`子句:对数据进行分组统计。 `HAVING`子句:对分组后的结果进行过滤。 `ROLLUP`与`CUBE`:多维度分组统计(高级)。 慕课特色: 结合报表统计、用户行为分析等场景,展示聚合函数与分组查询的强大功能。 第七章:多表连接查询(JOIN) 连接的类型:内连接(INNER JOIN)、左外连接(LEFT JOIN/LEFT OUTER JOIN)、右外连接(RIGHT JOIN/RIGHT OUTER JOIN)、全外连接(FULL OUTER JOIN)。 `ON`子句:指定连接条件。 `USING`子句:简化连接条件。 多表连接的实践案例:订单与用户、商品与分类等。 慕课特色: 通过图解和实际数据,清晰展示不同JOIN类型的工作原理,帮助学员避免连接错误。 第八章:子查询(Subquery) 什么是子查询,子查询的分类(标量子查询、行子查询、表子查询)。 在`WHERE`子句中使用子查询(`IN`, `NOT IN`, `=`, `!=`, `>`, `<`, `>=`, `<=`, `EXISTS`, `NOT EXISTS`)。 在`SELECT`子句中使用子查询。 在`FROM`子句中使用子查询(派生表)。 慕课特色: 讲解何时以及如何有效地使用子查询,并对比与JOIN的性能差异。 第九章:数据操纵(DML) `INSERT`语句:单行插入、多行插入、插入查询结果。 `UPDATE`语句:更新单行、多行、带条件更新。 `DELETE`语句:删除单行、多行、带条件删除。 `TRUNCATE TABLE`语句:快速删除表内所有数据。 慕课特色: 强调数据修改操作的风险性,教授如何安全有效地执行DML操作,并进行事务管理。 第三部分:数据库设计与开发 第十章:数据库设计基础 数据库设计的重要性与流程。 实体-关系模型(ERM):实体、属性、关系、基数。 数据库范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)及其意义。 反范式化设计:何时以及如何应用。 慕课特色: 引导学员从业务需求出发,绘制ER图,并将其转化为物理数据库模型。 第十一章:视图(View)与索引(Index) 视图的定义、作用与优点。 创建、修改与删除视图。 视图的优缺点分析。 索引的概念、作用与类型:B-tree索引、Hash索引、全文索引。 索引的创建、删除与管理。 何时创建索引,何时避免创建索引。 `EXPLAIN`命令:分析SQL语句的执行计划,理解索引的使用情况。 慕课特色: 深入讲解`EXPLAIN`的使用,帮助学员理解索引如何提升查询性能,并教授如何根据查询语句优化索引策略。 第十二章:存储过程(Stored Procedure)与函数(Function) 存储过程与函数的定义、作用与区别。 创建、调用、修改与删除存储过程和函数。 参数传递:IN, OUT, INOUT。 变量、流程控制语句(IF, CASE, LOOP, WHILE)。 慕课特色: 提供实际应用场景,如批量数据处理、复杂业务逻辑封装,演示存储过程和函数的编写。 第十三章:触发器(Trigger)与事件(Event) 触发器的定义、作用与类型(BEFORE/AFTER INSERT/UPDATE/DELETE)。 创建、修改与删除触发器。 触发器的应用场景:数据同步、日志记录、复杂数据校验。 MySQL事件调度器:创建、管理定时执行的任务。 慕课特色: 通过具体示例,展示触发器如何实现数据之间的自动化关联和约束。 第四部分:数据库管理与安全 第十四章:用户与权限管理 MySQL的用户账户系统。 创建、删除用户。 用户认证方式:密码加密。 权限的授予(GRANT)与撤销(REVOKE):全局权限、数据库权限、表权限、列权限。 角色(Role)的概念与管理(MySQL 8.0+)。 慕课特色: 强调安全的重要性,教授如何遵循最小权限原则,建立安全的用户权限体系。 第十五章:数据备份与恢复 备份的重要性与策略:冷备份、热备份。 逻辑备份工具:`mysqldump`的使用。 物理备份工具:`XtraBackup`(简介)。 数据恢复方法:全量恢复、增量恢复。 慕课特色: 提供实际的备份脚本,并演示不同场景下的恢复过程,帮助学员建立可靠的备份恢复计划。 第十六章:数据库性能监控与调优 MySQL性能指标:连接数、查询速度、CPU/内存/磁盘IO。 性能监控工具:`SHOW PROCESSLIST`, `SHOW GLOBAL STATUS`, `SHOW ENGINE INNODB STATUS`, Performance Schema, Slow Query Log。 常见的性能瓶颈分析与定位。 SQL语句优化技巧回顾。 数据库参数调优:`innodb_buffer_pool_size`, `query_cache_size` (已废弃), `tmp_table_size`等。 慕课特色: 引导学员学会使用工具诊断性能问题,并提供具体的调优案例和建议。 第十七章:事务与并发控制 事务(Transaction)的概念:ACID特性。 MySQL事务的实现(InnoDB引擎)。 事务的隔离级别:READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE。 并发控制:锁(Lock)机制。 死锁(Deadlock)的产生与避免。 慕课特色: 深入浅出地讲解事务与并发控制的原理,帮助学员理解多用户环境下数据的一致性保证。 第四部分:高级应用与实战 第十八章:MySQL与其他技术的结合 使用PHP/Java/Python等语言进行MySQL数据库的连接与操作。 Web开发中的常见数据库应用模式。 ORM(Object-Relational Mapping)框架简介。 慕课特色: 提供不同语言的数据库连接示例代码,帮助学员将数据库知识应用于实际的应用程序开发。 第十九章:数据库安全策略与最佳实践 SQL注入攻击的原理与防范。 数据加密技术:字段加密、传输加密。 数据库访问控制与审计。 安全加固的常用措施。 慕课特色: 总结课程中的安全知识点,并提供全面的安全实践指南。 第二十章:综合实战项目 从零开始设计并实现一个小型Web应用(如博客系统、在线商城的部分功能),贯穿数据库设计、SQL编写、数据操作、用户管理等所有课程内容。 慕课特色: 通过完整的项目案例,巩固学员所学知识,提升解决实际问题的能力。 四、 学习方式与评价: 本课程采用视频讲解、课后习题、在线测验、互动论坛等多种学习方式。学员可以通过在线平台随时随地观看教学视频,完成配套的编程练习和知识点巩固测试。课程设有定期的单元测验和期末考试,以评估学员的学习成果。积极参与论坛讨论和完成实践项目,将有助于学员更深入地理解和掌握数据库技术。 五、 适用人群: 计算机科学与技术、软件工程、信息管理等相关专业的在校学生。 希望系统学习MySQL数据库的开发者、运维工程师。 需要进行数据分析、数据处理的业务人员。 对数据库技术感兴趣的零基础学习者。 《MySQL数据库管理与开发(慕课版)》将是您迈向数据库技术领域的坚实一步,助您在数字化时代掌握核心竞争力。