SQL 데이터베이스 생성 및 Non-Equijoin 쿼리

MySQLBeginner
지금 연습하기

소개

이 프로젝트에서는 데이터베이스, 테이블을 생성하고 데이터를 삽입하는 방법을 배우게 됩니다. 그런 다음, 데이터베이스의 정보를 기반으로 모든 사용자의 레벨을 검색하기 위해 비등가 조인 (non-equijoin) 쿼리를 실행합니다.

👀 미리보기

Database project preview

🎯 과제

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

  • 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접근하는 방법
  • vip 데이터베이스를 생성하는 방법
  • leveluser 테이블을 생성하고 데이터를 삽입하는 방법
  • 모든 사용자의 레벨을 검색하는 SQL 쿼리를 작성하는 방법

🏆 성과

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

  • 데이터베이스 및 테이블 생성 프로세스 이해
  • 테이블에 데이터 삽입 경험 습득
  • 여러 테이블에서 데이터를 검색하기 위해 비등가 조인 쿼리를 실행하는 방법 학습
  • 실제 문제 해결을 위해 SQL 지식 적용

MySQL 접속 및 데이터베이스 생성

이 단계에서는 비밀번호 없이 sudo 명령을 사용하여 MySQL 에 접속하고 vip 데이터베이스를 생성하는 방법을 배우게 됩니다.

  1. MySQL 서비스 시작:
sudo service mysql start
  1. sudo 명령을 사용하여 MySQL 에 접속:
sudo mysql
  1. 제공된 문자 집합 (charset) 으로 vip 데이터베이스 생성:
CREATE SCHEMA vip CHARSET UTF8;
  1. vip 데이터베이스 사용:
USE 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);

사용자 레벨 조회

이 단계에서는 vip 데이터베이스의 정보를 기반으로 모든 사용자의 레벨을 검색하는 방법을 배우게 됩니다.

  1. 다음 코드를 getLevel.sql 파일에 추가합니다:

    SELECT u.name AS `User`, l.name AS `Level`
    FROM `user` u, `level` l
    WHERE u.score BETWEEN l.low AND l.high;
    
  2. 파일을 저장하고 닫습니다.

  3. MySQL 에서 getLevel.sql 스크립트를 실행합니다:

    SOURCE /home/labex/project/getLevel.sql;
    

출력 결과는 다음과 같아야 합니다:

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

축하합니다! 프로젝트를 완료했습니다.

요약

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

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습