国コード範囲の照会

SQLSQLBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このプロジェクトでは、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の知識を応用して、現実世界のデータ取得問題を解決する

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) 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") sql/DataManipulationandQueryingGroup -.-> sql/subqueries("Subqueries") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") subgraph Lab Skills mysql/use_database -.-> lab-301396{{"国コード範囲の照会"}} sql/select -.-> lab-301396{{"国コード範囲の照会"}} sql/insert -.-> lab-301396{{"国コード範囲の照会"}} mysql/select -.-> lab-301396{{"国コード範囲の照会"}} mysql/source -.-> lab-301396{{"国コード範囲の照会"}} sql/create_table -.-> lab-301396{{"国コード範囲の照会"}} sql/where -.-> lab-301396{{"国コード範囲の照会"}} sql/subqueries -.-> lab-301396{{"国コード範囲の照会"}} mysql/database -.-> lab-301396{{"国コード範囲の照会"}} end

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)をもっとたくさん練習することができ、あなたのスキルを向上させることができます。