在 MySQL 中创建数据库视图

MySQLMySQLBeginner
立即练习

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

简介

在这个项目中,你将学习如何基于 edusys 数据库中的 student 表创建一个数据库视图。该视图将包含 student 表中的 IDnamedept_name 列,提供一个简化且聚焦的学生数据视图。

👀 预览

MySQL [edusys]> DESC student_view;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| ID         | int(11)     | NO   |     | NULL    |       |
| name       | varchar(20) | NO   |     | NULL    |       |
| dept_name  | varchar(20) | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
3 rows in set (0.002 sec)

🎯 任务

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

  • 如何启动 MySQL 服务器并登录到 MySQL 终端
  • 如何将 SQL 脚本中的数据导入到 MySQL 数据库
  • 如何使用 CREATE VIEW 语句创建数据库视图
  • 如何使用 DESC 语句验证创建的视图的结构

🏆 成果

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

  • 理解设置 MySQL 数据库环境的过程
  • 创建自定义数据库视图以简化数据访问和展示
  • 应用 SQL 语句来管理和操作数据库对象

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) mysql(("MySQL")) -.-> mysql/SystemManagementToolsGroup(["System Management Tools"]) mysql(("MySQL")) -.-> mysql/AdvancedFeaturesGroup(["Advanced Features"]) mysql/BasicKeywordsandStatementsGroup -.-> mysql/use_database("Database Selection") sql/BasicSQLCommandsGroup -.-> sql/select("SELECT statements") sql/BasicSQLCommandsGroup -.-> sql/insert("INSERT INTO statements") mysql/BasicKeywordsandStatementsGroup -.-> mysql/select("Data Retrieval") mysql/BasicKeywordsandStatementsGroup -.-> mysql/source("External Code Execution") sql/BasicSQLCommandsGroup -.-> sql/create_table("CREATE TABLE statements") sql/AdvancedDataOperationsGroup -.-> sql/views("Views") mysql/SystemManagementToolsGroup -.-> mysql/mysqladmin("Admin Utility") mysql/AdvancedFeaturesGroup -.-> mysql/views("View Management") subgraph Lab Skills mysql/use_database -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} sql/select -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} sql/insert -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} mysql/select -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} mysql/source -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} sql/create_table -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} sql/views -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} mysql/mysqladmin -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} mysql/views -.-> lab-301416{{"在 MySQL 中创建数据库视图"}} end

启动 MySQL 并导入数据

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

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

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

    mysql -uroot
  3. edusys.sql 脚本导入数据:

    SOURCE ~/project/edusys.sql

创建 student_view 视图

在这一步中,你将创建一个名为 student_view 的视图,该视图包含 student 表中的 IDnamedept_name 列。

  1. ~/project 目录中创建一个名为 studentView.sql 的新文件。

  2. studentView.sql 文件中添加创建 student_view 视图的代码区域:

    USE edusys;
    CREATE VIEW student_view AS
    SELECT ID, name, dept_name
    FROM student;
  3. 在 MySQL 终端中运行 SQL 脚本:

    SOURCE /home/labex/project/studentView.sql
  4. 验证 student_view 视图的结构:

    DESC student_view;

    输出应如下所示:

    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | ID         | int(11)     | NO   |     | NULL    |       |
    | name       | varchar(20) | NO   |     | NULL    |       |
    | dept_name  | varchar(20) | YES  |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+
    3 rows in set (0.002 sec)
✨ 查看解决方案并练习

总结

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