介绍
在这个项目中,你将学习如何在 MySQL 中对 city、country 和 countrylanguage 表执行等值连接查询。目标是从这些表中检索城市名称、对应的国家名称和语言。
👀 预览
MariaDB [world]> SOURCE /home/labex/project/getCountryNameAndLanguage.sql;
+----------------+-------------+------------+
| CityName | CountryName | Language |
+----------------+-------------+------------+
| 奥兰治斯塔德 | 阿鲁巴 | 荷兰语 |
| 奥兰治斯塔德 | 阿鲁巴 | 英语 |
| 奥兰治斯塔德 | 阿鲁巴 | 帕皮阿门托语 |
| 奥兰治斯塔德 | 阿鲁巴 | 西班牙语 |
| 喀布尔 | 阿富汗 | 俾路支语 |
| 坎大哈 | 阿富汗 | 俾路支语 |
| 赫拉特 | 阿富汗 | 俾路支语 |
| 马扎里沙里夫 | 阿富汗 | 俾路支语 |
| 喀布尔 | 阿富汗 | 达里语 |
| 坎大哈 | 阿富汗 | 达里语 |
+----------------+-------------+------------+
10 rows in set (0.001 sec)
🎯 任务
在这个项目中,你将学习:
- 如何使用
sudo命令无密码访问 MySQL - 如何将
world.sql脚本中的数据导入 MySQL - 如何编写等值连接查询以从表中检索所需信息
- 如何将查询结果限制为前 10 行
🏆 成果
完成这个项目后,你将能够:
- 理解 SQL 连接的概念以及如何有效地使用它们
- 从关系数据库中的多个表中检索数据
- 根据需要应用 SQL 查询来过滤和限制结果
- 获得使用 MySQL 数据库的实践经验
访问 MySQL 并导入数据
在这一步中,你将学习如何使用 sudo 命令无密码访问 MySQL,并将提供的 world.sql 脚本中的数据导入 MySQL。
- 启动 MySQL 服务:
sudo service mysql start
- 访问 MySQL:
sudo mysql
- 从
world.sql脚本导入数据:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;
执行连接查询
在这一步中,你将学习如何执行一个等值连接查询,以便从 city、country 和 countrylanguage 表中检索城市名称、对应的国家名称和语言。
- 打开
getCountryNameAndLanguage.sql文件。 - 将以下代码添加到
getCountryNameAndLanguage.sql文件中:
SELECT ci.Name AS CityName, co.Name AS CountryName, col.Language
FROM city AS ci
JOIN country AS co ON ci.CountryCode = co.Code
JOIN countrylanguage AS col ON co.Code = col.CountryCode
LIMIT 10;
此查询在 city、country 和 countrylanguage 表之间执行等值连接,并将结果限制为前 10 行。查询输出包括 CityName、CountryName 和 Language 标题。
运行查询
在这一步中,你将学习如何在 MySQL 中运行 getCountryNameAndLanguage.sql 脚本。
- 在 MySQL 提示符下,运行以下命令来执行脚本:
MariaDB [world]> SOURCE /home/labex/project/getCountryNameAndLanguage.sql;
这将执行查询并在 MySQL 提示符中显示结果。
输出应类似于以下内容:
+----------------+-------------+------------+
| CityName | CountryName | Language |
+----------------+-------------+------------+
| 奥兰治斯塔德 | 阿鲁巴 | 荷兰语 |
| 奥兰治斯塔德 | 阿鲁巴 | 英语 |
| 奥兰治斯塔德 | 阿鲁巴 | 帕皮阿门托语 |
| 奥兰治斯塔德 | 阿鲁巴 | 西班牙语 |
| 喀布尔 | 阿富汗 | 俾路支语 |
| 坎大哈 | 阿富汗 | 俾路支语 |
| 赫拉特 | 阿富汗 | 俾路支语 |
| 马扎里沙里夫 | 阿富汗 | 俾路支语 |
| 喀布尔 | 阿富汗 | 达里语 |
| 坎大哈 | 阿富汗 | 达里语 |
+----------------+-------------+------------+
10 rows in set (0.001 sec)
恭喜!你已成功完成该项目。
总结
恭喜!你已完成这个项目。你可以在 LabEx 中练习更多实验来提升你的技能。
