右外部結合クエリによるユーザーレベル

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

はじめに

このプロジェクトでは、データベースとテーブルを作成し、ユーザーの得点に基づいてすべてのユーザーのレベルを取得するための右外部結合クエリを実行する方法を学びます。

👀 プレビュー

Database project preview image

🎯 タスク

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

  • sudo コマンドを使用してパスワードなしで MySQL にアクセスする方法
  • データベースとテーブルを作成する方法
  • テーブルにデータを挿入する方法
  • すべてのユーザーのレベルを取得するための右外部結合クエリを実行する方法

🏆 成果

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

  • MySQL データベース管理の基本を理解する
  • データベース内のテーブルを作成して操作する
  • 右外部結合などの複雑な SQL クエリを実行してデータを取得する
  • ビデオやオーディオアプリケーションのユーザー管理など、現実世界のシナリオに SQL 知識を適用する

MySQL にアクセスしてデータベースを作成する

このステップでは、パスワードなしで sudo コマンドを使用して MySQL にアクセスし、vip データベースを作成する方法を学びます。

  1. MySQL サービスを起動する:
sudo service mysql start
  1. MySQL にアクセスする:
sudo mysql
  1. vip データベースを作成する:
CREATE SCHEMA vip CHARSET UTF8;
USE vip;

これで、vip データベースを正常に作成できました。

✨ 解答を確認して練習

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

このステップでは、leveluser のテーブルを作成し、それらにデータを挿入します。

  1. level テーブルを作成する:
CREATE TABLE level (
name VARCHAR(64) NOT NULL,
low INT NOT NULL,
high INT NOT NULL
);
  1. level テーブルにデータを挿入する:
INSERT INTO level VALUES
('L1', 0, 9),
('L2', 10, 99),
('L3', 100, 499),
('L4', 500, 999);
  1. user テーブルを作成する:
CREATE TABLE user (
name VARCHAR(32) NOT NULL,
score INT NOT NULL
);
  1. user テーブルにデータを挿入する:
INSERT INTO user VALUES
('Jane', 5),
('John', 15),
('Mary', 155),
('David', 9999);

これで、テーブルを正常に作成してデータを挿入できました。

✨ 解答を確認して練習

右外部結合クエリを実行する

このステップでは、すべてのユーザーのレベルを取得するために右外部結合クエリを実行します。

  1. getLevel.sql ファイルを開き、次のクエリを追加します。
SELECT u.name AS `User`, l.name AS `Level`
FROM `level` l
RIGHT JOIN `user` u ON u.score BETWEEN l.low AND l.high;

このクエリは、level テーブルと user テーブルの間で右外部結合を行い、ユーザー名と対応するレベル名を取得します。

  1. getLevel.sql ファイルを保存します。
✨ 解答を確認して練習

クエリを実行する

このステップでは、MySQL で getLevel.sql スクリプトを実行します。

  1. スクリプトを実行する:
SOURCE /home/labex/project/getLevel.sql;

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

MariaDB [vip]> SOURCE /home/labex/project/getLevel.sql;
+-------+-------+
| User  | Level |
+-------+-------+
| Jane  | L1    |
| John  | L2    |
| Mary  | L3    |
| David | NULL  |
+-------+-------+
4 rows in set (0.000 sec)

出力には、各ユーザーのユーザー名と対応するレベル名が表示されます。ユーザーの得点がどのレベル範囲にも含まれない場合、レベルは NULL と表示されます。

おめでとうございます!データベースとテーブルを作成し、データを挿入し、すべてのユーザーのレベルを取得するための右外部結合クエリを実行することで、正常にこのプロジェクトを完了しました。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。スキルを向上させるために、LabEx でさらに多くの実験を行うことができます。