はじめに
このプロジェクトでは、MySQL で等値結合クエリを使用して各国の公式言語を取得する方法を学びます。このプロジェクトは、関係型データベースの使い方、複雑なクエリの実行、およびデータベースから特定の情報を抽出する方法を理解するのに役立ちます。
👀 プレビュー
+--------------------------------------+------------------+------------+
| Name | Language | IsOfficial |
+--------------------------------------+------------------+------------+
| Aruba | Dutch | T |
| Afghanistan | Dari | T |
| Afghanistan | Pashto | T |
...
| South Africa | Zulu | T |
| Zimbabwe | English | T |
+--------------------------------------+------------------+------------+
238 rows in set (0.002 sec)
🎯 タスク
このプロジェクトでは、以下を学びます。
sudoコマンドを使用してパスワードなしで MySQL にアクセスする方法- SQL スクリプトから MySQL にデータをインポートする方法
- 各国の公式言語を取得するための等値結合クエリを書く方法
- MySQL コンソールで SQL スクリプトを実行する方法
🏆 成果
このプロジェクトを完了すると、以下ができるようになります。
- 関係型データベースと SQL クエリの基本を理解する
- 複数のテーブルと条件を含む複雑なクエリを実行する
- 与えられた要件に基づいてデータベースから特定の情報を抽出する
- SQL の知識を適用して現実世界のデータ取得問題を解決する
MySQL にアクセスしてデータをインポートする
このステップでは、sudoコマンドを使用してパスワードなしで MySQL にアクセスし、/home/labex/project/world.sqlからのデータを MySQL にインポートする方法を学びます。
- ターミナルを開き、次のコマンドを実行して MySQL サービスを起動します。
sudo service mysql start
sudoコマンドを使用してパスワードなしで MySQL にアクセスします。
sudo mysql
/home/labex/project/world.sqlからのデータを MySQL にインポートし、worldデータベースに切り替えます。
SOURCE /home/labex/project/world.sql;
USE world;
各国の公式言語を取得する
このステップでは、country テーブルと countrylanguage テーブルの間の等値結合と JOIN ON WHERE 構文を使用して、各国の正式名称とその公式言語を取得する方法を学びます。
getOfficialLanguage.sqlファイルを開きます。getOfficialLanguage.sqlファイルに次の SQL クエリを追加します。
SELECT country.Name, countrylanguage.Language, countrylanguage.IsOfficial
FROM country
JOIN countrylanguage ON country.Code = countrylanguage.CountryCode
WHERE countrylanguage.IsOfficial = 'T';
このクエリでは、次の列が取得されます。
Name:国の正式名称Language:国の公式言語IsOfficial:その言語が国の公式言語であるかどうかを示す ('T'は真、'F'は偽)
クエリは、Code 列と CountryCode 列で country テーブルと countrylanguage テーブルを結合し、その後、結果をフィルタリングして公式言語のみを含めます (ここで IsOfficial が 'T' の場合)。
クエリを実行する
このステップでは、前のステップで作成した SQL スクリプトを実行します。
getOfficialLanguage.sqlスクリプトを実行します。
SOURCE /home/labex/project/getOfficialLanguage.sql;
これにより、クエリが実行され、MySQL コンソールに結果が表示されます。
以下に似た出力が表示されるはずです。
+--------------------------------------+------------------+------------+
| Name | Language | IsOfficial |
+--------------------------------------+------------------+------------+
| Aruba | Dutch | T |
| Afghanistan | Dari | T |
| Afghanistan | Pashto | T |
| Anguilla | English | T |
| Albania | Albaniana | T |
| Andorra | Catalan | T |
| Netherlands Antilles | Dutch | T |
| Netherlands Antilles | Papiamento | T |
| United Arab Emirates | Arabic | T |
| Argentina | Spanish | T |
| Armenia | Armenian | T |
...
| South Africa | Afrikaans | T |
| South Africa | English | T |
| South Africa | Xhosa | T |
| South Africa | Zulu | T |
| Zimbabwe | English | T |
+--------------------------------------+------------------+------------+
238 rows in set (0.002 sec)
これでプロジェクトは完了です。MySQL で等値結合クエリを使用して、各国の公式言語を正常に取得しました。
まとめ
おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。
