CREATE TABLE oil_price
(
ID int,
상호 varchar(16),
주소 varchar(255),
가격 int,
셀프 char,
상표 varchar(16),
구 varchar(8)
);
INSERT INTO oil_price VALUES (1, '타이거주유소', '서울 은평구 수색로 188(중산동)', 1484, 'N', 'SK에너지', '은평구');
INSERT INTO oil_price VALUES (2, '(주)명연에너지', '서울 은평구 수색로 236(수색동)', 1485, 'Y', '현대오일뱅크', '은평구');
INSERT INTO oil_price VALUES (3, '성락주유소', '서울 영등포구 가마산로 414(신길동)', 1498, 'Y', 'S-OIL', '영등포구');
INSERT INTO oil_price VALUES (4, '(주)MS주유소', '서울특별시 영등포구 대림로 230(대림동)', 1498, 'N', '현대오일뱅크', '영등포구');
INSERT INTO oil_price VALUES (5, '쌍문주유소', '서울특별시 도봉구 도봉로 547(쌍문동)', 1509, 'Y', 'S-OIL', '도봉구');
INSERT INTO oil_price VALUES (6, '21세기주유소', '서울 동작구 시흥대로 616(신대방동)', 1598, 'Y', 'SK에너지', '동작구');
INSERT INTO oil_price VALUES (7, '살피재주유소', '서울 동작구 상도로 334(상도동)', 1635, 'N', 'SK에너지', '동작구');
INSERT INTO oil_price VALUES (8, '뉴서울(강남)', '서울 강남구 언주로 716(논현동)', 2160, 'N', 'SK에너지', '강남구');
INSERT INTO oil_price VALUES (9, '신길주유소', '서울특별시 영등포구 신길로 74(신길동)', 1498, 'Y', 'GS칼텍스', '영등포구');
✅ 셀프 주유가 가능하고 가격이 1500원보다 비싼 주유소 중 상호순으로 정렬하면 두번째 주유소 상호는?
✅ 첫글자가 ‘서울’로 시작하고 세번째 글자가 공백인 주소를 가진 주유소 중 구 이름으로 정렬했을 때 마지막 주유소 상호는?
✅ 가격이 2000원보다 비싸거나 1500원보다 싼 주유소를 상표순으로 정렬했을 때 3번째 주유소 상호는?
✅ 상호에 ‘주유소’가 포함되지 않거나 주소에 ‘특별시’가 포함되지 않은 주유소를 가격순으로 정렬했을 때 4번째 주유소 상호는?
✅ 상표가 SK에너지, S-OIL, GS칼텍스 중 하나이면서 위치(구)가 은평구, 강남구, 영등포구 중 하나가 아닌 주유소 상호는?
📌 가격이 1498원과 1598원 사이이거나 셀프주유가 아닌 주유소 중, 위치(구) 이름이 4글자 이상인 주유소를 상호순으로 정렬했을 때 두번째 주유소 상호는?
✅ 상호가 ‘주유소’로 끝나고 주소에 '시'가 포함된 주유소를 위치(구) 이름의 역순으로 정렬했을 때 세번째 주유소 상호는?
✅ 주소에 ‘특별시’가 포함되지 않거나 상표가 SK에너지, S-OIL 이 아닌 주유소 중에서 상호에 ‘(주)’ 가 포함되지 않은 주유소를 가격의 역순으로 정렬했을때 3번째 주유소 상호는?
✅ 위치(구) 이름에 은평구 이거나 셀프주유가 아니거나 주소에 '가' 가 포함된 주유소 중 가격이 1485원과 2000원 사이인 주유소를 상호순으로 정렬했을 때 2번째 주유소 상호는?
✅ ID가 짝수이면서 가격이 1500원보다 비싸거나, ID가 홀수이면서 상표가 'S'로 시작하는 주유소를 위치(구)이름으로 정렬했을때 5번째 주유소 상호는?
✅ 퀴즈 테이블 생성
CREATE TABLE refueling
(
ID int,
이름 varchar(32),
주유소 varchar(16),
주유일 date,
금액 int
);
✅ 퀴즈 데이터 생성
INSERT INTO refueling VALUES (1, '유재석', '뉴서울(강남)', '2021-10-01', 50000);
INSERT INTO refueling VALUES (2, '이미주', '뉴서울(강남)', '2021-10-01', 120000);
INSERT INTO refueling VALUES (3, '이효리', '제주주유소', '2021-10-03', 80000);
INSERT INTO refueling VALUES (4, '아이유', '타이거주유소', '2021-10-03', 80000);
INSERT INTO refueling VALUES (5, '유재석', '뉴서울(강남)', '2021-10-03', 60000);
INSERT INTO refueling VALUES (6, '강동원', '타이거주유소', '2021-10-10', 50000);
INSERT INTO refueling VALUES (7, '유재석', '쌍문주유소', '2021-10-10', 60000);
INSERT INTO refueling VALUES (8, '이미주', '타이거주유소', '2021-10-10', 50000);
INSERT INTO refueling VALUES (9, '아이유', '뉴서울(강남)', '2021-10-14', 150000);
INSERT INTO refueling VALUES (10, '아이유', '뉴서울(강남)', '2021-10-14', 120000);
INSERT INTO refueling VALUES (11, '유재석', '쌍문주유소', '2021-10-14', 80000);
INSERT INTO refueling VALUES (12, '유재석', '뉴서울(강남)', '2021-10-16', 110000);
INSERT INTO refueling VALUES (13, '이미주', '타이거주유소', '2021-10-16', 50000);
INSERT INTO refueling VALUES (14, '이효리', '제주주유소', '2021-10-20', 80000);
INSERT INTO refueling VALUES (15, '이상순', '제주주유소', '2021-10-20', 50000);
INSERT INTO refueling VALUES (16, '이상순', '타이거주유소', '2021-10-20', 140000);
select refueling.이름, celab.age
from celab
INNER JOIN refueling
ON refueling.이름 = celab.name
ORDER BY age;
select oil_price.상호, oil_price.가격
from oil_price
LEFT JOIN refueling
ON refueling.주유소 = oil_price.상호
order by 가격;
select refueling.이름, oil_price.상호
from oil_price
RIGHT JOIN refueling
ON refueling.주유소 = oil_price.상호 ORDER BY 이름;
SELECT celab.ID AS celab_ID, celab.name AS celab_name, refueling.ID AS refueling_ID, refueling.이름 AS refueling_name
FROM celab
LEFT JOIN refueling
ON celab.name = refueling.이름
UNION
SELECT celab.ID AS celab_ID, celab.name AS celab_name, refueling.ID AS refueling_ID, refueling.이름 AS refueling_name
FROM celab
RIGHT JOIN refueling ON celab.name = refueling.이름;
SELECT COUNT(*) AS 아이유_개수
FROM
(SELECT celab.ID AS celab_ID, celab.name AS celab_name, refueling.ID AS refueling_ID, refueling.이름 AS refueling_name
FROM celab
LEFT JOIN refueling
ON celab.name = refueling.이름
UNION
SELECT celab.ID AS celab_ID, celab.name AS celab_name, refueling.ID AS refueling_ID, refueling.이름 AS refueling_name
FROM celab
RIGHT JOIN refueling ON celab.name = refueling.이름) AS combined_data
WHERE combined_data.celab_name = '아이유';
select distinct celab.agency, refueling.주유소
from celab, refueling
where celab.name = refueling.이름
order by agency;
select job.name, refueling.금액
from (select celab.name, celab.job_title from celab where job_title LIKE '%가수%' OR job_title LIKE '%텔런트%') AS job, refueling
where job.name = refueling.이름
order by refueling.금액 DESC;
select oil_price.상호, oil_price.구
from oil_price
where oil_price.구 = '강남구';
select refueling.이름, refueling.금액
from (select oil_price.상호, oil_price.구 from oil_price where oil_price.구 = '강남구') AS gangnam, refueling
where refueling.주유소 = gangnam.상호
order by refueling.금액;
select oil_price.상호, oil_price.셀프 from oil_price where 상호 NOT LIKE '%주유소' AND 셀프 = 'N';
select refueling.이름, refueling.주유소, refueling.주유일
from (select oil_price.상호, oil_price.셀프 from oil_price where 상호 NOT LIKE '%주유소' AND 셀프 = 'N') AS con, refueling
where con.상호 = refueling.주유소
order by 주유일 desc;