国コード範囲の照会

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

はじめに

このプロジェクトでは、MySQL における複数行サブクエリ操作を使って、国コード「FRO」の国と同じ公式言語を話す国を取得する方法を学びます。

👀 プレビュー

MariaDB [world]> SOURCE /home/labex/project/getCountryCode.sql;
+-------------+----------+
| CountryCode | Language |
+-------------+----------+
| DNK         | Danish   |
| FRO         | Danish   |
| FRO         | Faroese  |
| GRL         | Danish   |
+-------------+----------+
4 rows in set (0.002 sec)

🎯 タスク

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

  • sudo コマンドを使ってパスワードなしで MySQL にアクセスする方法
  • world.sql ファイルからのデータを MySQL データベースにインポートする方法
  • 複数行サブクエリを使って SQL クエリを書き、必要な情報を取得する方法
  • MySQL コマンドラインインターフェイスで SQL クエリを実行する方法

🏆 成果

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

  • SQL における複数行サブクエリの概念を理解する
  • 複雑な SQL クエリを使ってデータベースから特定のデータを取得する
  • SQL の知識を応用して、現実世界のデータ取得問題を解決する

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

このステップでは、sudo コマンドを使って MySQL にアクセスし、world.sql のデータを world データベースにインポートする方法を学びます。

  1. ターミナルを開き、次のコマンドを実行して MySQL サービスを起動します。
sudo service mysql start
  1. sudo コマンドを使って MySQL コマンドラインインターフェイスにアクセスします。
sudo mysql
  1. world.sql のデータを MySQL データベースにインポートします。
MariaDB [None]> SOURCE /home/labex/project/world.sql;

これにより、world.sql ファイルのデータが MySQL データベースにインポートされます。

これで、正常に MySQL にアクセスして必要なデータをインポートできました。次のステップに進みましょう。

FRO と同じ公式言語を持つ国を取得する

このステップでは、国コード FRO の国と同じ公式言語を話すすべての国を取得するための SQL クエリを書きます。

  1. 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 の国と同じ公式言語を話す国を取得するために複数行サブクエリを使用しています。

  1. getCountryCode.sql ファイルを保存します。

これで、必要な情報を取得するための SQL クエリを作成しました。次のステップでは、MySQL でクエリを実行します。

SQL クエリを実行する

このステップでは、getCountryCode.sql ファイルに格納されている SQL クエリを実行します。

  1. getCountryCode.sql ファイルに格納されている SQL クエリを実行します。
MariaDB [world]> SOURCE /home/labex/project/getCountryCode.sql;

これにより、SQL クエリが実行され、結果がターミナルに表示されます。

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

+-------------+----------+
| CountryCode | Language |
+-------------+----------+
| DNK         | Danish   |
| FRO         | Danish   |
| FRO         | Faroese  |
| GRL         | Danish   |
+-------------+----------+
4 rows in set (0.002 sec)

このクエリは、国コード FRO の国と同じ公式言語を話す国を正常に取得しました。

おめでとうございます!複数行サブクエリ操作を使って国コード範囲を照会するプロジェクトを完了しました。

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたは実験(Lab)をもっとたくさん練習することができ、あなたのスキルを向上させることができます。

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