删除课程安排视图数据

MySQLMySQLBeginner
立即练习

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

简介

在这个项目中,你将学习如何基于 teaches 表创建一个视图,并从该视图中删除相关数据。

👀 预览

MySQL [edusys]> SELECT * FROM teaches_view;
+-------+----------+----------+------+
| id    | courseId | semester | year |
+-------+----------+----------+------+
| 76766 | BIO-101  | Summer   | 2017 |
| 10101 | CS-101   | Fall     | 2017 |
| 83821 | CS-190   | Spring   | 2017 |
| 83821 | CS-190   | Spring   | 2017 |
| 10101 | CS-347   | Fall     | 2017 |
| 98345 | EE-181   | Spring   | 2017 |
| 22222 | PHY-101  | Fall     | 2017 |
+-------+----------+----------+------+
7 rows in set (0.000 sec)

🎯 任务

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

  • 如何从 teaches 表中创建一个包含特定字段的视图
  • 如何根据特定条件从创建的视图中删除数据

🏆 成果

完成这个项目后,你将能够:

  • 理解视图的概念以及如何创建视图
  • 通过删除匹配特定条件的记录来操作视图中的数据
  • 应用这些技能更高效地管理数据库中的数据

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/AdvancedFeaturesGroup(["Advanced Features"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql/BasicSQLCommandsGroup -.-> sql/select("SELECT statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/create_table("Table Creation") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") sql/BasicSQLCommandsGroup -.-> sql/delete("DELETE statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/delete("Data Deletion") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/DataManipulationandQueryingGroup -.-> sql/where("WHERE clause") sql/AdvancedDataOperationsGroup -.-> sql/views("Views") mysql/AdvancedFeaturesGroup -.-> mysql/views("View Management") subgraph Lab Skills sql/select -.-> lab-301330{{"删除课程安排视图数据"}} mysql/create_table -.-> lab-301330{{"删除课程安排视图数据"}} mysql/select -.-> lab-301330{{"删除课程安排视图数据"}} sql/delete -.-> lab-301330{{"删除课程安排视图数据"}} mysql/delete -.-> lab-301330{{"删除课程安排视图数据"}} sql/create_table -.-> lab-301330{{"删除课程安排视图数据"}} sql/where -.-> lab-301330{{"删除课程安排视图数据"}} sql/views -.-> lab-301330{{"删除课程安排视图数据"}} mysql/views -.-> lab-301330{{"删除课程安排视图数据"}} end

创建视图

在这一步中,你将学习如何基于 teaches 表创建一个视图。请按照以下步骤完成此操作:

  1. 打开终端并启动 MySQL 服务:

    sudo /etc/init.d/mysql start
  2. 登录到 MySQL 终端。

    mysql -uroot
  3. edusys.sql 数据导入到 MySQL 数据库中。

    SOURCE ~/project/edusys.sql;
  4. ~/project 目录中创建一个名为 teachesDump.sql 的新文件。

  5. 在该文件中添加代码以创建一个名为 teaches_view 的视图,该视图包含以下字段:

    teaches teaches_view
    ID id
    course_id courseId
    semester semester
    year year

    代码应如下所示:

    CREATE VIEW teaches_view AS
    SELECT ID AS id, course_id AS courseId, semester, year
    FROM teaches;

删除视图数据

在这一步中,你将学习如何从 teaches_view 视图中删除 year 为 2018 的数据。请按照以下步骤完成此操作:

  1. 打开 teachesDump.sql 文件,并在文件中添加代码以从 teaches_view 视图中删除 year 为 2018 的数据。

    DELETE FROM teaches_view
    WHERE year = 2018;
  2. 最终代码如下:

    CREATE VIEW teaches_view AS
    SELECT ID AS id, course_id AS courseId, semester, year
    FROM teaches;
    
    DELETE FROM teaches_view
    WHERE year = 2018;

现在,你已经完成了创建视图并删除视图中相关数据的项目。你可以在 MySQL 终端中运行 teachesDump.sql 脚本以执行 SQL 语句。

SOURCE ~/project/teachesDump.sql;

执行 SQL 语句后,你可以如下查看 teaches_view 视图中的数据:

MySQL [edusys]> SELECT * FROM teaches_view;
+-------+----------+----------+------+
| id    | courseId | semester | year |
+-------+----------+----------+------+
| 76766 | BIO-101  | Summer   | 2017 |
| 10101 | CS-101   | Fall     | 2017 |
| 83821 | CS-190   | Spring   | 2017 |
| 83821 | CS-190   | Spring   | 2017 |
| 10101 | CS-347   | Fall     | 2017 |
| 98345 | EE-181   | Spring   | 2017 |
| 22222 | PHY-101  | Fall     | 2017 |
+-------+----------+----------+------+
7 rows in set (0.000 sec)
✨ 查看解决方案并练习

总结

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