介绍
在本项目中,你将学习如何使用 MySQL 中的多行子查询操作,检索与国家代码为“FRO”的国家使用相同官方语言的国家。
👀 预览
MariaDB [world]> SOURCE /home/labex/project/getCountryCode.sql;
+-------------+----------+
| CountryCode | Language |
+-------------+----------+
| DNK | 丹麦语 |
| FRO | 丹麦语 |
| FRO | 法罗语 |
| GRL | 丹麦语 |
+-------------+----------+
4 rows in set (0.002 sec)
🎯 任务
在本项目中,你将学习:
- 如何使用
sudo命令无密码访问 MySQL - 如何将
world.sql文件中的数据导入 MySQL 数据库 - 如何使用多行子查询编写 SQL 查询以检索所需信息
- 如何在 MySQL 命令行界面中运行 SQL 查询
🏆 成果
完成本项目后,你将能够:
- 理解 SQL 中多行子查询的概念
- 使用复杂的 SQL 查询从数据库中检索特定数据
- 应用你的 SQL 知识解决实际的数据检索问题
访问 MySQL 并导入数据
在这一步中,你将学习如何使用 sudo 命令访问 MySQL,并将 world.sql 数据导入到 world 数据库中。
- 打开终端并运行以下命令启动 MySQL 服务:
sudo service mysql start
- 使用
sudo命令访问 MySQL 命令行界面:
sudo mysql
- 将
world.sql数据导入到 MySQL 数据库:
MariaDB [None]> SOURCE /home/labex/project/world.sql;
这会将 world.sql 文件中的数据导入到 MySQL 数据库中。
现在你已成功访问 MySQL 并导入了必要的数据。让我们进入下一步。
检索与 FRO 使用相同官方语言的国家
在这一步中,你将编写一个 SQL 查询,以检索所有与国家代码为 FRO 的国家使用相同官方语言的国家。
- 打开
getCountryCode.sql文件并添加以下 SQL 查询:
SELECT cl1.CountryCode, cl1.Language
FROM countrylanguage AS cl1
WHERE cl1.Language IN (
-- 子查询,用于检索国家代码为 'FRO' 且 IsOfficial = 'T' 的国家的语言
SELECT cl2.Language
FROM countrylanguage AS cl2
WHERE cl2.CountryCode = 'FRO' AND cl2.IsOfficial = 'T'
)
AND cl1.CountryCode IN (
-- 子查询,用于检索与 FRO 具有相同语言且 IsOfficial = 'T' 的国家的 CountryCode
SELECT cl3.CountryCode
FROM countrylanguage AS cl3
WHERE cl3.Language IN (
-- 子查询,用于检索国家代码为 'FRO' 且 IsOfficial = 'T' 的国家的语言
SELECT cl4.Language
FROM countrylanguage AS cl4
WHERE cl4.CountryCode = 'FRO' AND cl4.IsOfficial = 'T'
)
AND cl3.IsOfficial = 'T'
);
此查询使用多行子查询来检索与国家代码为 FRO 的国家使用相同官方语言的国家。
- 保存
getCountryCode.sql文件。
现在你已经创建了用于检索所需信息的 SQL 查询。在下一步中,你将在 MySQL 中运行该查询。
运行 SQL 查询
在这一步中,你将运行存储在 getCountryCode.sql 文件中的 SQL 查询。
- 运行存储在
getCountryCode.sql文件中的 SQL 查询:
MariaDB [world]> SOURCE /home/labex/project/getCountryCode.sql;
这将执行 SQL 查询并在终端中显示结果。
输出应类似于以下内容:
+-------------+----------+
| CountryCode | Language |
+-------------+----------+
| DNK | 丹麦语 |
| FRO | 丹麦语 |
| FRO | 法罗语 |
| GRL | 丹麦语 |
+-------------+----------+
4 rows in set (0.002 sec)
该查询已成功检索到与国家代码为 FRO 的国家使用相同官方语言的国家。
恭喜你!你已完成使用多行子查询操作查询国家代码范围的项目。
总结
恭喜你!你已完成本项目。你可以在 LabEx 中练习更多实验来提升你的技能。
