[SQL] 퀴즈 모음

허재훈·2023년 4월 30일
0

SQL

목록 보기
17/17
post-thumbnail

셀프 주유가 가능하고 가격이 1500원보다 비싼 주유소 중 상호순으로 정렬하면 두번째 주유소 상호는?

  • 퀴즈 테이블 생성

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칼텍스', '영등포구');

  • 문제 : 첫글자가 ‘서울’로 시작하고 세번째 글자가 공백인 주소를 가진 주유소 중 구 이름으로 정렬했을 때 마지막 주유소 상호는?
select * from oil_price where 주소 like '서울 %' order by;

  • 문제 : 가격이 2000원보다 비싸거나 1500원보다 싼 주유소를 상표순으로 정렬했을 때 3번째 주유소 상호는?
select * from oil_price where 가격 > 2000 or 가격 < 1500 order by 상표;

  • 문제 : 상호에 ‘주유소’가 포함되지 않거나 주소에 ‘특별시’가 포함되지 않은 주유소를 가격순으로 정렬했을 때 4번째 주유소 상호는?
select * from oil_price where not 상호 like '%주유소%' or not 주소 like '%특별시%' order by 가격;

  • 문제 : 상표가 SK에너지, S-OIL, GS칼텍스 중 하나이면서 위치(구)가 은평구, 강남구, 영등포구 중 하나가 아닌 주유소 상호는?
select * from oil_price where 상표 in ('SK에너지', 'S-OIL', 'GS칼텍스') andnot in ('은평구', '강남구', '영등포구');

  • 문제 : 가격이 1498원과 1598원 사이이거나 셀프주유가 아닌 주유소 중, 위치(구) 이름이 4글자 이상인 주유소를 상호순으로 정렬했을 때 두번째 주유소 상호는?

가격이 1498원과 1598원 사이이거나 셀프주유가 아닌 주유소

select * from oil_price where (가격 between 1498 and 1598) and 셀프 = 'N';

위치(구) 이름이 4글자 이상인 주유소

select * from oil_price wherelike '%____%';

select * 
from oil_price 
where ((가격 between 1498 and 1598) and 셀프 = 'N')
      andlike '%____%'
order by 상호;

  • 문제 : 상호가 ‘주유소’로 끝나고 주소에 '시'가 포함된 주유소를 위치(구) 이름의 역순으로 정렬했을 때 세번째 주유소 상호는?
select * 
from oil_price 
where (상호 like '%주유소') and (주소 like '%시%')
order bydesc;

  • 문제 :
    주소에 ‘특별시’가 포함되지 않거나 상표가 SK에너지, S-OIL 이 아닌 주유소 중에서 상호에 ‘(주)’ 가 포함되지 않은 주유소를 가격의 역순으로 정렬했을때 3번째 주유소 상호는?
select * 
from oil_price 
where (not 주소 like '%특별시%' or not 상표 in ('SK에너지', 'S-OIL')) 
       and not 상호 like '(주)%' 
order by 가격 desc;

  • 문제 :
    위치(구) 이름에 은평구 이거나 셀프주유가 아니거나 주소에 '가' 가 포함된 주유소 중 가격이 1485원과 2000원 사이인 주유소를 상호순으로 정렬했을 때 2번째 주유소 상호는?
select * 
from oil_price 
where (='은평구' or 셀프 = 'N' or 주소 like '%가%') 
       and 가격 between 1485 and 2000 
order by 상호;

  • 문제 :
    ID가 짝수이면서 가격이 1500원보다 비싸거나, ID가 홀수이면서 상표가 'S'로 시작하는 주유소를 위치(구)이름으로 정렬했을때 5번째 주유소 상호는?
select * 
from oil_price 
where ((id%2)=0 and 가격 > 1500) or ((id%2)=1 and 상표 like 'S%') 
order by;

profile
허재

0개의 댓글