介绍
在本项目中,你将学习如何在 MySQL 中创建一个存储过程,以检索学分大于 3 的课程。本项目将帮助你理解在数据库管理系统中使用存储过程的基础知识。
👀 预览
MariaDB [edusys]> CALL getCourses();
+-----------+----------------------------+------------+---------+
| course_id | title | dept_name | credits |
+-----------+----------------------------+------------+---------+
| BIO-101 | Intro. to Biology | Biology | 4 |
| BIO-301 | Genetics | Biology | 4 |
| CS-101 | Intro. to Computer Science | Comp. Sci. | 4 |
| CS-190 | Game Design | Comp. Sci. | 4 |
| PHY-101 | Physical Principles | Physics | 4 |
+-----------+----------------------------+------------+---------+
5 rows in set (0.000 sec)
🎯 任务
在本项目中,你将学习:
- 如何使用
sudo命令无密码访问 MySQL - 如何将数据导入 MySQL 数据库
- 如何创建一个存储过程以从表中检索特定数据
- 如何测试存储过程以确保其按预期工作
🏆 成果
完成本项目后,你将能够:
- 理解在数据库中使用存储过程的目的和好处
- 创建自己的存储过程以执行特定的数据检索任务
- 对存储过程进行故障排除和测试,以确保它们正常运行
- 将本项目中获得的知识应用于构建更复杂的数据库驱动应用程序
访问 MySQL 并导入数据库
在本步骤中,你将学习如何使用sudo命令无密码访问 MySQL,并将/home/labex/project/edusys.sql中的数据导入 MySQL。
- 启动 MySQL 服务:
sudo service mysql start
- 使用
sudo命令访问 MySQL:
sudo mysql
- 将
/home/labex/project/edusys.sql中的数据导入 MySQL 并切换到edusys数据库:
MariaDB [None]> SOURCE /home/labex/project/edusys.sql;
创建 getCourses 存储过程
在本步骤中,你将创建一个名为 getCourses 的存储过程,该存储过程从 course 表中检索 credits 字段值大于 3 的课程。
- 打开
getCourses.sql文件。 - 将以下代码添加到
getCourses.sql文件中:
-- 创建 getCourses 存储过程
DELIMITER //
CREATE PROCEDURE getCourses()
BEGIN
-- 从 course 表中检索 credits 字段大于 3 的课程
SELECT course_id, title, dept_name, credits
FROM course
WHERE credits > 3;
END //
DELIMITER ;
- 保存并关闭文件。
测试 getCourses 存储过程
在本步骤中,你将测试 getCourses 存储过程,以确保它按预期工作。
- 在 MySQL 中运行
getCourses.sql脚本:
MariaDB [edusys]> SOURCE /home/labex/project/getCourses.sql;
- 调用
getCourses存储过程:
MariaDB [edusys]> CALL getCourses();
+-----------+----------------------------+------------+---------+
| course_id | title | dept_name | credits |
+-----------+----------------------------+------------+---------+
| BIO-101 | Intro. to Biology | Biology | 4 |
| BIO-301 | Genetics | Biology | 4 |
| CS-101 | Intro. to Computer Science | Comp. Sci. | 4 |
| CS-190 | Game Design | Comp. Sci. | 4 |
| PHY-101 | Physical Principles | Physics | 4 |
+-----------+----------------------------+------------+---------+
5 rows in set (0.000 sec)
输出显示 getCourses 存储过程按预期工作,检索出了所有学分大于 3 的课程。
总结
恭喜你!你已经完成了这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。
