国名付きの都市名をクエリする

SQLBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、MySQL のcitycountry、およびcountrylanguageテーブルに対して等値結合クエリを実行する方法を学びます。目的は、これらのテーブルから都市名、対応する国名、および言語を取得することです。

👀 プレビュー

MariaDB [world]> SOURCE /home/labex/project/getCountryNameAndLanguage.sql;
+----------------+-------------+------------+
| CityName       | CountryName | Language   |
+----------------+-------------+------------+
| Oranjestad     | Aruba       | Dutch      |
| Oranjestad     | Aruba       | English    |
| Oranjestad     | Aruba       | Papiamento |
| Oranjestad     | Aruba       | Spanish    |
| Kabul          | Afghanistan | Balochi    |
| Qandahar       | Afghanistan | Balochi    |
| Herat          | Afghanistan | Balochi    |
| Mazar-e-Sharif | Afghanistan | Balochi    |
| Kabul          | Afghanistan | Dari       |
| Qandahar       | Afghanistan | Dari       |
+----------------+-------------+------------+
10 rows in set (0.001 sec)

🎯 タスク

このプロジェクトでは、以下を学びます。

  • sudoコマンドを使用してパスワードなしで MySQL にアクセスする方法
  • world.sqlスクリプトからのデータを MySQL にインポートする方法
  • 必要な情報をテーブルから取得するための等値結合クエリを書く方法
  • クエリ結果を最初の 10 行に制限する方法

🏆 成果

このプロジェクトを完了すると、以下ができるようになります。

  • SQL 結合の概念を理解し、それを効果的に使用する方法
  • 関係型データベースの複数のテーブルからデータを取得する方法
  • 必要に応じて SQL クエリを適用して結果をフィルタリングおよび制限する方法
  • MySQL データベースを操作する実践経験を得ること

MySQL にアクセスしてデータをインポートする

このステップでは、sudoコマンドを使用してパスワードなしで MySQL にアクセスし、提供されたworld.sqlスクリプトからのデータを MySQL にインポートする方法を学びます。

  1. MySQL サービスを起動する:
sudo service mysql start
  1. MySQL にアクセスする:
sudo mysql
  1. world.sqlスクリプトからのデータをインポートする:
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

結合クエリを実行する

このステップでは、citycountry、およびcountrylanguageテーブルから都市名、対応する国名、および言語を取得するために等値結合クエリを実行する方法を学びます。

  1. getCountryNameAndLanguage.sqlファイルを開きます。
  2. 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;

このクエリは、citycountry、およびcountrylanguageテーブル間で等値結合を行い、結果を最初の 10 行に制限します。クエリの出力には、CityNameCountryName、およびLanguageのヘッダーが含まれます。

クエリを実行する

このステップでは、MySQL でgetCountryNameAndLanguage.sqlスクリプトを実行する方法を学びます。

  1. MySQL のプロンプトで、次のコマンドを実行してスクリプトを実行します。
MariaDB [world]> SOURCE /home/labex/project/getCountryNameAndLanguage.sql;

これにより、クエリが実行され、MySQL のプロンプトに結果が表示されます。

出力は次のようになるはずです。

+----------------+-------------+------------+
| CityName       | CountryName | Language   |
+----------------+-------------+------------+
| Oranjestad     | Aruba       | Dutch      |
| Oranjestad     | Aruba       | English    |
| Oranjestad     | Aruba       | Papiamento |
| Oranjestad     | Aruba       | Spanish    |
| Kabul          | Afghanistan | Balochi    |
| Qandahar       | Afghanistan | Balochi    |
| Herat          | Afghanistan | Balochi    |
| Mazar-e-Sharif | Afghanistan | Balochi    |
| Kabul          | Afghanistan | Dari       |
| Qandahar       | Afghanistan | Dari       |
+----------------+-------------+------------+
10 rows in set (0.001 sec)

おめでとうございます!あなたは無事にこのプロジェクトを完了しました。

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたのスキルを向上させるために、LabEx でさらに多くの実験を行って練習することができます。

✨ 解答を確認して練習✨ 解答を確認して練習✨ 解答を確認して練習