查询每个国家的官方语言

SQLSQLBeginner
立即练习

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

简介

在这个项目中,你将学习如何使用 MySQL 中的等值连接查询来检索每个国家的官方语言。这个项目将帮助你理解如何使用关系型数据库、执行复杂查询以及从数据库中提取特定信息。

👀 预览

+--------------------------------------+------------------+------------+
| Name                                 | Language         | IsOfficial |
+--------------------------------------+------------------+------------+
| 阿鲁巴                                | 荷兰语            | 是          |
| 阿富汗                                | 达里语            | 是          |
| 阿富汗                                | 普什图语          | 是          |
   ...
| 南非                                  | 祖鲁语            | 是          |
| 津巴布韦                              | 英语              | 是          |
+--------------------------------------+------------------+------------+
238行记录已选中 (0.002 秒)

🎯 任务

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

  • 如何使用sudo命令无密码访问 MySQL
  • 如何从 SQL 脚本将数据导入 MySQL
  • 如何编写等值连接查询来检索每个国家的官方语言
  • 如何在 MySQL 控制台中执行 SQL 脚本

🏆 成果

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

  • 理解关系型数据库和 SQL 查询的基础知识
  • 执行涉及多个表和条件的复杂查询
  • 根据给定要求从数据库中提取特定信息
  • 应用你的 SQL 知识来解决实际的数据检索问题

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) 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/DataManipulationandQueryingGroup -.-> sql/where("WHERE clause") sql/AdvancedDataOperationsGroup -.-> sql/join("JOIN operations") subgraph Lab Skills mysql/use_database -.-> lab-301400{{"查询每个国家的官方语言"}} sql/select -.-> lab-301400{{"查询每个国家的官方语言"}} sql/insert -.-> lab-301400{{"查询每个国家的官方语言"}} mysql/select -.-> lab-301400{{"查询每个国家的官方语言"}} mysql/source -.-> lab-301400{{"查询每个国家的官方语言"}} sql/create_table -.-> lab-301400{{"查询每个国家的官方语言"}} sql/where -.-> lab-301400{{"查询每个国家的官方语言"}} sql/join -.-> lab-301400{{"查询每个国家的官方语言"}} end

访问 MySQL 并导入数据

在这一步中,你将学习如何使用sudo命令无密码访问 MySQL,并将/home/labex/project/world.sql中的数据导入 MySQL。

  1. 打开一个终端并运行以下命令来启动 MySQL 服务:
sudo service mysql start
  1. 使用sudo命令无密码访问 MySQL:
sudo mysql
  1. /home/labex/project/world.sql中的数据导入 MySQL 并切换到world数据库:
SOURCE /home/labex/project/world.sql;
USE world;

检索每个国家的官方语言

在这一步中,你将学习如何使用country表和countrylanguage表之间的等值连接以及JOIN ON WHERE语法来检索每个国家的全称及其官方语言。

  1. 打开getOfficialLanguage.sql文件。
  2. 将以下 SQL 查询添加到getOfficialLanguage.sql文件中:
SELECT country.Name, countrylanguage.Language, countrylanguage.IsOfficial
FROM country
JOIN countrylanguage ON country.Code = countrylanguage.CountryCode
WHERE countrylanguage.IsOfficial = 'T';

此查询将检索以下列:

  • Name:国家的全称
  • Language:国家的官方语言
  • IsOfficial:指示该语言是否为该国的官方语言('T'表示是,'F'表示否)

该查询在CodeCountryCode列上连接country表和countrylanguage表,然后过滤结果,只包括官方语言(其中IsOfficial'T')。

运行查询

在这一步中,你将运行在上一步中创建的 SQL 脚本。

  1. 运行getOfficialLanguage.sql脚本:
SOURCE /home/labex/project/getOfficialLanguage.sql;

这将执行查询并在 MySQL 控制台中显示结果。

你应该会看到类似于以下的输出:

+--------------------------------------+------------------+------------+
| Name                                 | Language         | IsOfficial |
+--------------------------------------+------------------+------------+
| 阿鲁巴                                | 荷兰语            | 是          |
| 阿富汗                                | 达里语            | 是          |
| 阿富汗                                | 普什图语          | 是          |
| 安圭拉                               | 英语              | 是          |
| 阿尔巴尼亚                             | 阿尔巴尼亚语        | 是          |
| 安道尔                               | 加泰罗尼亚语        | 是          |
| 荷属安的列斯群岛                     | 荷兰语            | 是          |
| 荷属安的列斯群岛                     | 帕皮阿门托语        | 是          |
| 阿拉伯联合酋长国                     | 阿拉伯语            | 是          |
| 阿根廷                               | 西班牙语          | 是          |
| 亚美尼亚                             | 亚美尼亚语          | 是          |
  ...
| 南非                                  | 南非荷兰语        | 是          |
| 南非                                  | 英语              | 是          |
| 南非                                  | 科萨语            | 是          |
| 南非                                  | 祖鲁语            | 是          |
| 津巴布韦                              | 英语              | 是          |
+--------------------------------------+------------------+------------+
238行记录已选中 (0.002 秒)

至此,该项目完成。你已经成功地使用 MySQL 中的等值连接查询检索到了每个国家的官方语言。

✨ 查看解决方案并练习

总结

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