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

SQLSQLBeginner
今すぐ練習

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

はじめに

このプロジェクトでは、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データベースを操作する実践経験を得ること

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"]) sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) 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") mysql/DatabaseFunctionsandDataTypesGroup -.-> mysql/database("DB Function - Info Retrieval") sql/AdvancedDataOperationsGroup -.-> sql/join("JOIN operations") subgraph Lab Skills mysql/use_database -.-> lab-301382{{"国名付きの都市名をクエリする"}} sql/select -.-> lab-301382{{"国名付きの都市名をクエリする"}} sql/insert -.-> lab-301382{{"国名付きの都市名をクエリする"}} mysql/select -.-> lab-301382{{"国名付きの都市名をクエリする"}} mysql/source -.-> lab-301382{{"国名付きの都市名をクエリする"}} sql/create_table -.-> lab-301382{{"国名付きの都市名をクエリする"}} sql/where -.-> lab-301382{{"国名付きの都市名をクエリする"}} mysql/database -.-> lab-301382{{"国名付きの都市名をクエリする"}} sql/join -.-> lab-301382{{"国名付きの都市名をクエリする"}} end

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でさらに多くの実験を行って練習することができます。