はじめに
このプロジェクトでは、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 データベースにインポートする方法を学びます。
- ターミナルを開き、次のコマンドを実行して 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 と同じ公式言語を持つ国を取得する
このステップでは、国コード FRO の国と同じ公式言語を話すすべての国を取得するための SQL クエリを書きます。
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 | Danish |
| FRO | Danish |
| FRO | Faroese |
| GRL | Danish |
+-------------+----------+
4 rows in set (0.002 sec)
このクエリは、国コード FRO の国と同じ公式言語を話す国を正常に取得しました。
おめでとうございます!複数行サブクエリ操作を使って国コード範囲を照会するプロジェクトを完了しました。
まとめ
おめでとうございます!このプロジェクトを完了しました。あなたは実験(Lab)をもっとたくさん練習することができ、あなたのスキルを向上させることができます。
