课程信息视图

SQLSQLBeginner
立即练习

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

简介

在本项目中,你将学习如何在MySQL中创建和使用数据库视图。数据库视图是虚拟表,它提供了对基础数据的定制化视角,使你能够向用户隐藏某些数据处理过程,并简化数据访问。

👀 预览

MariaDB [edusys]> SELECT * FROM comp_spring_2018_taylor;
+-----------+-------------+
| course_id | room_number |
+-----------+-------------+
| CS-319    | 3128        |
+-----------+-------------+
1 row in set (0.00 sec)

🎯 任务

在本项目中,你将学习:

  • 如何启动MySQL服务器并导入数据库
  • 如何定义一个视图,该视图显示在特定学期、地点和系所提供的所有主课程的房间号
  • 如何定义一个视图,该视图过滤前一个视图的结果,只包括位于特定建筑物中的课程

🏆 成果

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

  • 理解数据库视图的概念和好处
  • 创建自定义视图以简化数据访问并隐藏不必要的复杂性
  • 应用你对SQL查询的知识,在实际场景中定义和使用视图

启动MySQL并导入数据库

在这一步中,你将学习如何启动MySQL服务器并导入edusys.sql数据库。

  1. 使用以下命令启动MySQL服务器:
sudo service mysql start
  1. 使用以下命令访问MySQL命令行界面:
sudo mysql
  1. 使用以下命令导入edusys.sql数据库:
source /home/labex/project/edusys.sql;

这将把edusys数据库导入到你的MySQL服务器中。

定义 comp_spring_2018 视图

在这一步中,你将学习如何定义 comp_spring_2018 视图。

  1. ~/project 目录中创建 comp_spring_2018_taylor.sql 文件。
  2. 使用以下SQL查询向该文件中添加代码以创建 comp_spring_2018 视图:
CREATE VIEW comp_spring_2018 AS
SELECT course.course_id, building, room_number
FROM section, course
WHERE course.course_id = section.course_id AND semester = 'Spring' AND year = 2018 AND dept_name = 'Comp. Sci.';

此视图将显示2018年春季学期由 “计算机科学” 系提供的所有课程的 course_idbuildingroom_number

定义 comp_spring_2018_taylor 视图

在这一步中,你将学习如何定义 comp_spring_2018_taylor 视图。

  1. 打开 comp_spring_2018_taylor.sql 文件。
  2. 在上一步添加的代码之后,使用以下SQL查询创建 comp_spring_2018_taylor 视图:
CREATE VIEW comp_spring_2018_taylor AS
SELECT course_id, room_number
FROM comp_spring_2018
WHERE building = 'Taylor';

此视图将显示2018年春季学期由 “计算机科学” 系提供且位于 “泰勒” 楼的所有课程的 课程ID房间号

验证解决方案

要验证解决方案,你可以运行以下SQL查询:

source /home/labex/project/comp_spring_2018_taylor.sql;
SELECT * FROM comp_spring_2018_taylor;

这应该会显示以下输出:

+-----------+-------------+
| course_id | room_number |
+-----------+-------------+
| CS-319    | 3128        |
+-----------+-------------+
1 row in set (0.00 sec)

恭喜!你已成功完成该项目。

✨ 查看解决方案并练习

总结

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