Right Outer Join 쿼리를 이용한 사용자 레벨 조회

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 데이터베이스, 테이블을 생성하고, 점수를 기반으로 모든 사용자의 레벨을 검색하기 위해 right outer join 쿼리를 수행하는 방법을 배우게 됩니다.

👀 미리보기

Database project preview image

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근하는 방법
  • 데이터베이스 및 테이블을 생성하는 방법
  • 테이블에 데이터를 삽입하는 방법
  • 모든 사용자의 레벨을 검색하기 위해 right outer join 쿼리를 수행하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • MySQL 데이터베이스 관리의 기본 사항 이해
  • 데이터베이스에서 테이블을 생성하고 조작
  • right outer join 과 같은 복잡한 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);

이제 테이블을 성공적으로 생성하고 데이터를 삽입했습니다.

✨ 솔루션 확인 및 연습

Right Outer Join 쿼리 실행

이 단계에서는 모든 사용자의 레벨을 검색하기 위해 right outer join 쿼리를 수행합니다.

  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;

이 쿼리는 leveluser 테이블 간에 right outer join 을 수행하고 사용자 이름과 해당 레벨 이름을 검색합니다.

  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로 표시됩니다.

축하합니다! 데이터베이스 생성, 테이블 생성, 데이터 삽입, 그리고 모든 사용자의 레벨을 검색하기 위한 right outer join 쿼리 수행을 통해 프로젝트를 성공적으로 완료했습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.