创建和更新数据库视图

MySQLMySQLBeginner
立即练习

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

简介

在这个项目中,你将学习如何在 MySQL 数据库中创建一个学生视图,并更新视图中的数据。

👀 预览

MySQL [edusys]> SELECT * FROM student WHERE ID = '70557';
+-------+---------+------+
| id    | name    | cred |
+-------+---------+------+
| 70557 | History |    0 |
+-------+---------+------+
1 row in set (0.001 sec)

🎯 任务

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

  • 如何基于现有表创建视图
  • 如何更新视图中的数据

🏆 成果

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

  • 理解数据库视图的概念以及如何创建视图
  • 使用 SQL 更新语句修改视图中的数据
  • 应用这些技能来管理和维护数据库中的数据

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/AdvancedFeaturesGroup(["Advanced Features"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/update("Data Update") mysql/AdvancedFeaturesGroup -.-> mysql/views("View Management") subgraph Lab Skills mysql/use_database -.-> lab-301426{{"创建和更新数据库视图"}} mysql/select -.-> lab-301426{{"创建和更新数据库视图"}} mysql/update -.-> lab-301426{{"创建和更新数据库视图"}} mysql/views -.-> lab-301426{{"创建和更新数据库视图"}} end

创建学生视图

在这一步中,你将学习如何基于学生表创建一个学生视图。

  1. 启动 MySQL:

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

    mysql -uroot
  3. edusys.sql 脚本中的数据导入到 MySQL:

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

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

    学生表字段 视图字段
    ID id
    name name
    tot_cred cred

    代码应如下所示:

    USE edusys
    CREATE VIEW IF NOT EXISTS student_view AS
    SELECT ID AS id, name AS name, tot_cred AS cred
    FROM student;

    这将创建一个名为 student_view 的视图,该视图从 student 表中选择 IDnametot_cred 列,并分别将它们重命名为 idnamecred

更新学生视图

在这一步中,你将学习如何更新 student_view 视图中的数据。

  1. 打开 updateView.sql 文件,并在文件中添加代码,以便在 student_view 视图中,将 id'70557' 的条目的 name 字段更新为 'History'

    UPDATE student_view
    SET name = 'History'
    WHERE id = '70557';

    这会将 student_view 视图中 id'70557' 的行的 name 字段更新为 'History'

  2. 最终代码如下:

    USE edusys
    -- 创建一个具有如下表中所示相应字段的 student_view 表
    CREATE VIEW IF NOT EXISTS student_view AS
    SELECT ID AS id, name AS name, tot_cred AS cred
    FROM student;
    
    -- 在 student_view 视图中,将 id 为 70557 的条目的 name 字段更新为 History
    UPDATE student_view
    SET name = 'History'
    WHERE id = '70557';
  3. 在 MySQL 终端中运行 SQL 脚本。

    SOURCE ~/project/updateView.sql
  4. 通过从 student 表中选择 ID'70557' 的数据来验证更新:

    SELECT * FROM student WHERE ID = '70557';

    输出应显示更新后的 name 字段:

    +-------+---------+------+
    | id    | name    | cred |
    +-------+---------+------+
    | 70557 | History |    0 |
    +-------+---------+------+
    1 row in set (0.001 sec)

恭喜!你已成功创建一个学生视图并更新了视图中的数据。

✨ 查看解决方案并练习

总结

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