データベース管理と SQL セルフジョイン

MySQLMySQLBeginner
オンラインで実践に進む

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

はじめに

このプロジェクトでは、データベース、テーブルを作成し、テーブルにデータを挿入する方法を学びます。また、データに対してセルフジョインクエリを実行して、都市が所属する省を見つける方法も学びます。

👀 プレビュー

Database project preview

🎯 タスク

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

  • MySQL サービスを起動し、パスワードなしでsudoコマンドを使用して MySQL にアクセスする方法。
  • データベース、テーブルを作成し、テーブルにデータを挿入する方法。
  • divisionテーブルに対してセルフジョインクエリを書いて、各都市の省を見つける方法。
  • MySQL でセルフジョインクエリスクリプトを実行する方法。

🏆 成果

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

  • MySQL におけるデータベース、テーブルの作成とデータ挿入の基本操作を理解する。
  • セルフジョインクエリを実行して、テーブルから関連情報を取得する。
  • SQL クエリの知識を応用して、現実世界の問題を解決する。

MySQL サービスを起動して MySQL にアクセスする

このステップでは、MySQL サービスを起動し、パスワードなしでsudoコマンドを使用して MySQL にアクセスする方法を学びます。

  1. MySQL サービスを起動する:
sudo service mysql start
  1. MySQL にアクセスする:
sudo mysql

これで、パスワードなしで MySQL プロンプトにアクセスできるようになります。

データベース、テーブルを作成してデータを挿入する

このステップでは、データベース、テーブルを作成し、テーブルにデータを挿入する方法を学びます。

  1. divisionデータベースを作成する:
CREATE DATABASE division;
  1. divisionデータベースを使用する:
USE division;
  1. divisionテーブルを作成する:
CREATE TABLE division (
  id INT PRIMARY KEY,
  name VARCHAR(22),
  province_id INT
);
  1. divisionテーブルにデータを挿入する:
INSERT INTO division VALUES
(1, 'Ontario', NULL),
(2, 'Toronto', 1),
(3, 'Quebec', NULL),
(4, 'Montreal', 3);

セルフジョインクエリを書く

このステップでは、divisionテーブルに対してセルフジョインクエリを書いて、都市が所属する省を見つける方法を学びます。

  1. /home/labex/projectディレクトリにgetProvince.sqlという名前の新しいファイルを作成します。

  2. getProvince.sqlファイルに、次のクエリを追加します。

SELECT city.name AS City, province.name AS Province
FROM division AS city
JOIN division AS province ON city.province_id = province.id
WHERE city.province_id IS NOT NULL;

このクエリは、divisionテーブルに対してセルフジョインを行います。ここでは、cityテーブルとprovinceテーブルがprovince_id列を基に結合されます。WHERE句により、province_idが NULL でない都市のみが結果に含まれるようになっています。

結果のテーブルには、CityProvinceという列名が付けられます。

セルフジョインクエリを実行する

このステップでは、MySQL でセルフジョインクエリスクリプトを実行する方法を学びます。

  1. MySQL プロンプトに戻る:
sudo mysql
  1. getProvince.sqlスクリプトを実行する:
SOURCE /home/labex/project/getProvince.sql;

以下の出力が表示されるはずです。

MariaDB [division]> SOURCE /home/labex/project/getProvince.sql;
+----------+----------+
| City     | Province |
+----------+----------+
| Toronto  | Ontario  |
| Montreal | Quebec   |
+----------+----------+
2 rows in set (0.000 sec)

この出力は、セルフジョインクエリによって取得された都市とそれに対応する省を示しています。

おめでとうございます!データベースを作成し、テーブルを作成し、データを挿入し、各都市の省を見つけるためのセルフジョインクエリを実行することで、このプロジェクトを成功裏に完了しました。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。あなたは実験(Lab)をもっとたくさん行って技術力を向上させることができます。