生物课程校友搜索

MySQLMySQLBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个项目中,你将学习如何查找选修了特定系(在本案例中为生物系)所提供课程的学生。这是教师在计算学生成绩时经常需要执行的一项常见任务。

👀 预览

MySQL [edusys]> SOURCE /home/labex/project/multiTableQuery.sql
+-------+--------+-----------+-------+
| ID    | name   | course_id | grade |
+-------+--------+-----------+-------+
| 98988 | 田中   | BIO-101   | A     |
| 98988 | 田中   | BIO-301   | NULL  |
+-------+--------+-----------+-------+
2 rows in set (0.002 sec)

🎯 任务

在这个项目中,你将学习:

  • 如何使用 sudo 命令启动并访问 MySQL 数据库
  • 如何将 SQL 文件(edusys.sql)导入到 MySQL 数据库中
  • 如何编写一个 SQL 查询,通过连接多个表(studentcoursetakes)来检索所需信息
  • 如何运行 SQL 查询并显示结果表

🏆 成果

完成本项目后,你将能够:

  • 理解如何处理多个数据库表以检索特定信息
  • 编写涉及连接表和过滤数据的复杂 SQL 查询
  • 将你的 SQL 知识应用于实际场景,例如在课程管理系统中搜索学生记录

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") subgraph Lab Skills mysql/use_database -.-> lab-301288{{"生物课程校友搜索"}} mysql/select -.-> lab-301288{{"生物课程校友搜索"}} mysql/source -.-> lab-301288{{"生物课程校友搜索"}} mysql/database -.-> lab-301288{{"生物课程校友搜索"}} end

启动 MySQL 并访问数据库

在这一步中,你将学习如何启动 MySQL 数据库,并使用 sudo 命令在无需密码的情况下访问它。

  1. 启动 MySQL 服务:
sudo service mysql start
  1. 使用 sudo 命令访问 MySQL 数据库:
sudo mysql

现在你已成功启动并访问了 MySQL 数据库。

导入 edusys.sql 文件

在这一步中,你将学习如何将 edusys.sql 文件导入到 MySQL 数据库中。

  1. 确保你处于 MySQL 提示符下:
MariaDB [(none)]>
  1. 导入 edusys.sql 文件:
MariaDB [(none)]> SOURCE /home/labex/project/edusys.sql;

edusys.sql 文件现已导入到 MySQL 数据库中。

编写 SQL 查询

在这一步中,你将编写 SQL 查询,以查找所有选修了生物系所提供课程的学生的学生 ID、姓名、课程 ID 和成绩。

  1. 打开 multiTableQuery.sql 文件并添加以下 SQL 查询:
SELECT
    s.ID,
    s.name,
    c.course_id,
    t.grade
FROM
    takes t
    JOIN student s ON t.ID = s.ID
    JOIN course c ON t.course_id = c.course_id
WHERE
    s.dept_name = 'Biology';

此查询连接 studentcoursetakes 表,以检索选修了生物系课程的学生的所需信息。

运行 SQL 查询

在这一步中,你将运行存储在 multiTableQuery.sql 文件中的 SQL 查询。

  1. 确保你处于 MySQL 提示符下:
MariaDB [edusys]>
  1. 运行 SQL 脚本:
MariaDB [edusys]> SOURCE /home/labex/project/multiTableQuery.sql;

查询将执行,结果表将显示出来,列标题为 IDnamecourse_idgrade

+-------+--------+-----------+-------+
| ID    | name   | course_id | grade |
+-------+--------+-----------+-------+
| 98988 | 田中   | BIO-101   | A     |
| 98988 | 田中   | BIO-301   | NULL  |
+-------+--------+-----------+-------+
2 rows in set (0.002 sec)
✨ 查看解决方案并练习

总结

恭喜你!你已完成此项目。你可以在 LabEx 中练习更多实验以提升技能。