都市名とその国

SQLSQLBeginner
今すぐ練習

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

はじめに

このプロジェクトでは、等値結合クエリを使用してMySQLデータベースから都市名とそれに対応する国名を取得する方法を学びます。このプロジェクトは、SQLクエリの基本と関係型データベースの操作方法を理解するのに役立ちます。

👀 プレビュー

MariaDB [world]> SOURCE /home/labex/project/getCountryName.sql;
+----------------+-------------+
| CityName       | CountryName |
+----------------+-------------+
| Oranjestad     | Aruba       |
| Kabul          | Afghanistan |
| Qandahar       | Afghanistan |
| Herat          | Afghanistan |
| Mazar-e-Sharif | Afghanistan |
| Luanda         | Angola      |
| Huambo         | Angola      |
| Lobito         | Angola      |
| Benguela       | Angola      |
| Namibe         | Angola      |
+----------------+-------------+
10 rows in set (0.001 sec)

🎯 タスク

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

  • sudo コマンドを使用してパスワードなしでMySQLにアクセスする方法
  • SQLファイルからデータをMySQLデータベースにインポートする方法
  • 複数のテーブルからデータを取得するための等値結合クエリを書く方法
  • SQLクエリでテーブル名を簡略化してエイリアスを使用する方法
  • MySQLでSQLスクリプトを実行する方法

🏆 成果

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

  • SQLクエリの基本構造と構文を理解する
  • 複数のテーブルからデータを取得するための等値結合操作を実行する
  • テーブル名を簡略化してエイリアスを使用してSQLクエリを読みやすくする
  • MySQLデータベースにデータをインポートして管理する
  • 複雑なクエリを実行するためのSQLスクリプトを実行する

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sql(("SQL")) -.-> sql/AdvancedDataOperationsGroup(["Advanced Data Operations"]) mysql(("MySQL")) -.-> mysql/DatabaseFunctionsandDataTypesGroup(["Database Functions and Data Types"]) mysql(("MySQL")) -.-> mysql/BasicKeywordsandStatementsGroup(["Basic Keywords and Statements"]) sql(("SQL")) -.-> sql/BasicSQLCommandsGroup(["Basic SQL Commands"]) sql(("SQL")) -.-> sql/DataManipulationandQueryingGroup(["Data Manipulation and Querying"]) 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-301298{{"都市名とその国"}} sql/select -.-> lab-301298{{"都市名とその国"}} sql/insert -.-> lab-301298{{"都市名とその国"}} mysql/select -.-> lab-301298{{"都市名とその国"}} mysql/source -.-> lab-301298{{"都市名とその国"}} sql/create_table -.-> lab-301298{{"都市名とその国"}} sql/where -.-> lab-301298{{"都市名とその国"}} mysql/database -.-> lab-301298{{"都市名とその国"}} sql/join -.-> lab-301298{{"都市名とその国"}} end

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

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

  1. MySQLサービスを起動します。
sudo service mysql start
  1. MySQLにアクセスします。
sudo mysql
  1. world.sql ファイルのデータをインポートします。
MariaDB [(none)]> SOURCE /home/labex/project/world.sql;

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

都市名と国名を取得する

このステップでは、等値結合クエリを使用して都市名とその完全な国名を取得する方法を学びます。

  1. /home/labex/project ディレクトリに getCountryName.sql ファイルを作成します。
  2. getCountryName.sql ファイルに以下のコードを追加します。
SELECT ci.Name AS 'CityName', co.Name AS 'CountryName'
FROM city AS ci
JOIN country AS co ON ci.CountryCode = co.Code
LIMIT 10;

このクエリは、city テーブルと country テーブルから都市名とそれに対応する国名を取得し、出力を最初の10件に制限します。

スクリプトを実行する

このステップでは、MySQLで getCountryName.sql スクリプトを実行する方法を学びます。

  1. MySQLでスクリプトを実行します。
MariaDB [world]> SOURCE /home/labex/project/getCountryName.sql;

これにより、スクリプトが実行され、結果が表示されます。

+----------------+-------------+
| CityName       | CountryName |
+----------------+-------------+
| Oranjestad     | Aruba       |
| Kabul          | Afghanistan |
| Qandahar       | Afghanistan |
| Herat          | Afghanistan |
| Mazar-e-Sharif | Afghanistan |
| Luanda         | Angola      |
| Huambo         | Angola      |
| Lobito         | Angola      |
| Benguela       | Angola      |
| Namibe         | Angola      |
+----------------+-------------+
10 rows in set (0.001 sec)

結果のテーブルには2つの列があります。CityNameCountryName で、都市名とそれに対応する国名が表示されます。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabExでさらに多くの実験を行って練習してください。