소개
이 프로젝트에서는 데이터베이스, 테이블을 생성하고 테이블에 데이터를 삽입하는 방법을 배우게 됩니다. 또한, 데이터에 대한 자체 조인 쿼리를 수행하여 도시에 속한 주 (province) 를 찾는 방법도 배우게 됩니다.
👀 미리보기

🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
sudo명령을 사용하여 비밀번호 없이 MySQL 서비스를 시작하고 MySQL 에 접근하는 방법.- 데이터베이스, 테이블을 생성하고 테이블에 데이터를 삽입하는 방법.
- 각 도시의 주를 찾기 위해
division테이블에 대한 자체 조인 쿼리를 작성하는 방법. - MySQL 에서 자체 조인 쿼리 스크립트를 실행하는 방법.
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- MySQL 에서 데이터베이스, 테이블을 생성하고 데이터를 삽입하는 기본 작업을 이해합니다.
- 자체 조인 쿼리를 수행하여 테이블에서 관련 정보를 검색합니다.
- SQL 쿼리에 대한 지식을 실제 문제 해결에 적용합니다.
MySQL 서비스 시작 및 MySQL 접속
이 단계에서는 MySQL 서비스를 시작하고 sudo 명령을 사용하여 비밀번호 없이 MySQL 에 접근하는 방법을 배우게 됩니다.
- MySQL 서비스 시작:
sudo service mysql start
- MySQL 접근:
sudo mysql
이제 비밀번호 없이 MySQL 프롬프트에 접근할 수 있습니다.
데이터베이스, 테이블 생성 및 데이터 삽입
이 단계에서는 데이터베이스, 테이블을 생성하고 테이블에 데이터를 삽입하는 방법을 배우게 됩니다.
division데이터베이스 생성:
CREATE DATABASE division;
division데이터베이스 사용:
USE division;
division테이블 생성:
CREATE TABLE division (
id INT PRIMARY KEY,
name VARCHAR(22),
province_id INT
);
division테이블에 데이터 삽입:
INSERT INTO division VALUES
(1, 'Ontario', NULL),
(2, 'Toronto', 1),
(3, 'Quebec', NULL),
(4, 'Montreal', 3);
Self-Join 쿼리 작성
이 단계에서는 division 테이블에 대한 self-join 쿼리를 작성하여 도시가 속한 주 (province) 를 찾는 방법을 배우게 됩니다.
/home/labex/project디렉토리에getProvince.sql이라는 새 파일을 생성합니다.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 테이블에 대한 self-join 을 수행하며, 여기서 city 테이블은 province_id 열을 기반으로 province 테이블과 조인됩니다. WHERE 절은 province_id가 null 이 아닌 도시만 결과에 포함되도록 합니다.
결과 테이블은 City 및 Province로 레이블이 지정된 열을 갖게 됩니다.
Self-Join 쿼리 실행
이 단계에서는 MySQL 에서 self-join 쿼리 스크립트를 실행하는 방법을 배우게 됩니다.
- MySQL 프롬프트로 돌아갑니다:
sudo mysql
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)
이 출력은 self-join 쿼리에 의해 검색된 도시와 해당 주를 보여줍니다.
축하합니다! 데이터베이스, 테이블 생성, 데이터 삽입, 그리고 각 도시의 주를 찾기 위한 self-join 쿼리 실행을 통해 프로젝트를 성공적으로 완료했습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



