배운 쿼리
/*
16. 전국의 CGV 극장의 이름과 규모를 조회하되 규모는 스크린 수가 5보다 작으면 '소', 5보다
크거나 같고 10보 작으면 '중', 10보다 크거나 같으면 '대'로 표시하는 SQL문을 작성해 주세요.
[관련내용] case 문, like
17. 출신지가 프랑스나 이탈리아 이면서 직업이 촬영이거나 편집인 영화인을 조회하는
SQL문을 작성해 주세요.
[관련내용] and 조건, or 조건, in 조건
18. 2010년 ~ 2020년 기간중 연도별로 상영된 영화의 수를 조회하는 SQL문을 작성해 주세요.
[관련내용] count() 함수, between a and b 구문
19. 한국인 중에서 직업이 배우인 사람의 이름을 조회하되, 개인정보 보호를 위해서 이름
중간에 '*' 처리를 통하여 이름이 전체적으로 노출되지 않도록 처리해 주세요.(단, 이름은
적어도 2개 이상의 문자이고 외자인 경우 성만 표시하며 4자인 경우는 성과 맨 마지막만
보여주며, 그 이상인 이름의 경우는 첫 성만 보여주고 나머지는 마스크(*) 처리해 주세요.)
[관련내용] length()함수, trim()함수, char_length()함수, rpad()함수, substring()함수
20. 한국인 이면서 '배'씨 성을 가진 사람 중에 '준'으로 끝나는 이름을 가진 영화인을 조회하는
SQL문을 작성해 주세요.(이름은 3자인 영확인을 구하세요.)
[관련내용] like 문, 와일드카드 _
*/
# 16. 전국의 CGV 극장의 이름과 규모를 조회하되 규모는 스크린 수가 5보다 작으면 '소', 5보다
# 크거나 같고 10보 작으면 '중', 10보다 크거나 같으면 '대'로 표시하는 SQL문을 작성해 주세요.
# [관련내용] case 문, like
select sido,
gugun,
screen_name,
case when screen_count < 5 then '소'
when screen_count < 10 then '중'
else '대'
end as gyumo,
screen_count
from screen
where screen_name like '%CGV%'
order by screen_count
;
# 17. 출신지가 프랑스나 이탈리아 이면서 직업이 촬영이거나 편집인 영화인을 조회하는
# SQL문을 작성해 주세요.
# [관련내용] and 조건, or 조건, in 조건
select *
from actor
where country in ('프랑스', '이탈리아') and
domain in ('촬영', '편집')
;
# 18. 2010년 ~ 2020년 기간중 연도별로 상영된 영화의 수를 조회하는 SQL문을 작성해 주세요.
# [관련내용] count() 함수, between a and b 구문
select pub_year,
count(*)
from movie
where pub_year between 2010 and 2020
group by pub_year
;
# 19. 한국인 중에서 직업이 배우인 사람의 이름을 조회하되, 개인정보 보호를 위해서 이름
# 중간에 '*' 처리를 통하여 이름이 전체적으로 노출되지 않도록 처리해 주세요.(단, 이름은
# 적어도 2개 이상의 문자이고 외자인 경우 성만 표시하며 4자인 경우는 성과 맨 마지막만
# 보여주며, 그 이상인 이름의 경우는 첫 성만 보여주고 나머지는 마스크(*) 처리해 주세요.)
# [관련내용] length()함수, trim()함수, char_length()함수, rpad()함수, substring()함수
select name,
CASE
WHEN CHAR_LENGTH(TRIM(name)) = 2 THEN CONCAT(SUBSTRING(name, 1, 1), '*')
WHEN CHAR_LENGTH(TRIM(name)) = 3 THEN CONCAT(SUBSTRING(name, 1, 1), '*', SUBSTRING(name, 3, 1))
WHEN CHAR_LENGTH(TRIM(name)) = 4 THEN CONCAT(SUBSTRING(name, 1, 1), '**', SUBSTRING(name, 4, 1))
ELSE RPAD(SUBSTRING(name, 1, 1), CHAR_LENGTH(TRIM(name)), '*')
END AS new_name
from actor
where country = '한국' and
domain = '배우' and
CHAR_LENGTH(TRIM(name)) > 1
;
# 20. 한국인 이면서 '배'씨 성을 가진 사람 중에 '준'으로 끝나는 이름을 가진 영화인을 조회하는
# SQL문을 작성해 주세요.(이름은 3자인 영확인을 구하세요.)
# [관련내용] like 문, 와일드카드 _
select *,
char_length(trim(name))
from actor
where name like '배%준'
;