데이터 생성

CREATE TABLE tCar
(
    car VARCHAR(30) NOT NULL,   	 -- 이름
    capacity INT NOT NULL,   		 -- 배기량
    price INT NOT NULL,   		 -- 가격
    maker VARCHAR(30) NOT NULL   	 -- 제조사
);

INSERT INTO tCar (car, capacity, price, maker) VALUES ('소나타', 2000, 2500, '현대');
INSERT INTO tCar (car, capacity, price, maker) VALUES ('티볼리', 1600, 2300, '쌍용');
INSERT INTO tCar (car, capacity, price, maker) VALUES ('A8', 3000, 4800, 'Audi');
INSERT INTO tCar (car, capacity, price, maker) VALUES ('SM5', 2000, 2600, '삼성');

CREATE TABLE tMaker
(
    maker VARCHAR(30) NOT NULL,   	 -- 회사
    factory CHAR(10) NOT NULL,   	 -- 공장
    domestic CHAR(1) NOT NULL   	 -- 국산 여부. Y/N
);

INSERT INTO tMaker (maker, factory, domestic) VALUES ('현대', '부산', 'y');
INSERT INTO tMaker (maker, factory, domestic) VALUES ('쌍용', '청주', 'y');
INSERT INTO tMaker (maker, factory, domestic) VALUES ('Audi', '독일', 'n');
INSERT INTO tMaker (maker, factory, domestic) VALUES ('기아', '서울', 'y');

 

연습문제

-- 1) 두 테이블에 대한 cross join을 실시하라
select * from tCar cross join tMaker;

-- 2) 위의 결과에서 tCar의 회사명과 tMaker의 회사명이 일치하는 것만 표시하라.
select * from tCar cross join tMaker
where tCar.maker = tMaker.maker;

-- 3) 위의 결과에서 차 이름, 가격, 제조사, 공장만 표시하라.
select C.car, C.price, C.maker, M.factory from tCar C cross join tMaker M
where C.maker = M.maker;

-- 4) 2)의 결과에서 자동차 테이블의 모든 결과를 출력하고, 회사 정보는 공장 위치만 출력하라.
select C.*, M.factory from tCar C cross join tMaker M
where C.maker = M.maker;

-- 5) inner join을 활용해서 양쪽 테이블에 모두 있는 정보를 출력하라.
select * from tCar C inner join tMaker M
on C.maker = M.maker;

-- 6) 모든 자동차의 정보를 출력하고 제조사 정보가 있다면 덧붙여라.
select * from tCar C left join tMaker M
on C.maker = M.maker;

-- 6) 모든 제조사의 정보를 출력하고 자동차 정보가 있다면 덧붙여라.
select * from tCar C right join tMaker M
on C.maker = M.maker;

 

JOIN을 통해 데이터를 조회하고자 하는 경우 어떤 테이블을 기준으로 할 지,
해당 컬럼은 어느 테이블에서 가져온 것인지 소속을 명확히 해주어야 한다.

'SQL' 카테고리의 다른 글

11. [SQL] 연습문제 - EDA(2)  (0) 2024.04.09
10. [SQL] 연습문제 - EDA(1)  (0) 2024.04.09
08. [SQL] 연습문제 - SELECT ... FROM  (0) 2024.04.08
07. [SQL] CASE WHEN ... END  (0) 2024.04.08
06. [SQL] 조인  (0) 2024.04.08

+ Recent posts