城市名称及所属国家

SQLSQLBeginner
立即练习

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

简介

在本项目中,你将学习如何使用等值连接查询从 MySQL 数据库中检索城市名称及其对应的国家名称。本项目将帮助你理解 SQL 查询的基础知识以及如何处理关系型数据库。

👀 预览

MariaDB [world]> SOURCE /home/labex/project/getCountryName.sql;
+----------------+-------------+
| CityName       | CountryName |
+----------------+-------------+
| 奥兰治斯塔德     | 阿鲁巴       |
| 喀布尔         | 阿富汗      |
| 坎大哈         | 阿富汗      |
| 赫拉特         | 阿富汗      |
| 马扎里沙里夫     | 阿富汗      |
| 罗安达         | 安哥拉      |
| 万博           | 安哥拉      |
| 洛比托         | 安哥拉      |
| 本格拉         | 安哥拉      |
| 纳米贝         | 安哥拉      |
+----------------+-------------+
10 rows in set (0.001 sec)

🎯 任务

在本项目中,你将学习:

  • 如何使用 sudo 命令无密码访问 MySQL
  • 如何将 SQL 文件中的数据导入 MySQL 数据库
  • 如何编写等值连接查询以从多个表中检索数据
  • 如何简化表名并在 SQL 查询中使用别名
  • 如何在 MySQL 中运行 SQL 脚本

🏆 成果

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

  • 理解 SQL 查询的基本结构和语法
  • 执行等值连接操作以从多个表中检索数据
  • 简化表名并使用别名使你的 SQL 查询更具可读性
  • 在 MySQL 数据库中导入和管理数据
  • 运行 SQL 脚本来执行复杂查询

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) 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") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") sql/AdvancedDataOperationsGroup -.-> sql/join("JOIN operations") subgraph Lab Skills mysql/use_database -.-> lab-301298{{"城市名称及所属国家"}} sql/select -.-> lab-301298{{"城市名称及所属国家"}} sql/insert -.-> lab-301298{{"城市名称及所属国家"}} mysql/select -.-> lab-301298{{"城市名称及所属国家"}} mysql/source -.-> lab-301298{{"城市名称及所属国家"}} sql/create_table -.-> lab-301298{{"城市名称及所属国家"}} sql/where -.-> lab-301298{{"城市名称及所属国家"}} mysql/database -.-> lab-301298{{"城市名称及所属国家"}} sql/join -.-> lab-301298{{"城市名称及所属国家"}} end

访问 MySQL 并导入数据

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

  1. 启动 MySQL 服务:
sudo service mysql start
  1. 访问 MySQL:
sudo mysql
  1. world.sql 文件导入数据:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

这将把 world.sql 文件中的数据导入到 MySQL 数据库中。

检索城市名称和国家名称

在本步骤中,你将学习如何使用等值连接查询来检索城市名称及其完整的国家名称。

  1. /home/labex/project 目录中创建 getCountryName.sql 文件。
  2. 将以下代码添加到 getCountryName.sql 文件中:
SELECT ci.Name AS 'CityName', co.Name AS 'CountryName'
FROM city AS ci
JOIN country AS co ON ci.CountryCode = co.Code
LIMIT 10;

此查询将从 citycountry 表中检索城市名称及其对应的国家名称,并将输出限制为前 10 条记录。

运行脚本

在本步骤中,你将学习如何在 MySQL 中运行 getCountryName.sql 脚本。

  1. 在 MySQL 中运行脚本:
MariaDB [world]> SOURCE /home/labex/project/getCountryName.sql;

这将执行脚本并显示结果:

+----------------+-------------+
| CityName       | CountryName |
+----------------+-------------+
| 奥兰治斯塔德     | 阿鲁巴       |
| 喀布尔         | 阿富汗      |
| 坎大哈         | 阿富汗      |
| 赫拉特         | 阿富汗      |
| 马扎里沙里夫     | 阿富汗      |
| 罗安达         | 安哥拉      |
| 万博           | 安哥拉      |
| 洛比托         | 安哥拉      |
| 本格拉         | 安哥拉      |
| 纳米贝         | 安哥拉      |
+----------------+-------------+
10 rows in set (0.001 sec)

结果表有两列:CityNameCountryName,分别显示城市名称及其对应的国家名称。

✨ 查看解决方案并练习

总结

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