3 정답
SELECT movie_name, REPLACE(director, ',', '/') directors
FROM box_office
실행결과
해설 예를 들어, 2019년 개봉된 <백두산>이라는 영화의 감독은 2명으로, director 칼럼에 ‘이해준, 김병서’라는 데이터가 저장되어 있습니다. 여기서 콤마를 ‘/’로 변경해야 하는데, 매개변수로 입력된 문자열에서 특정 문자를 다른 문자로 대체하려면 문자형 함수 REPLACE()를 사용합니다. 따라서 REPLACE(director, ',', '/')는 director 칼럼 값에서 콤마(,)를 ‘/’로 변환합니다. 물론 나머지 문자 값은 저장된 그대로 조회되죠. 또한 콤마가 없는 경우에도 변환을 수행하지 않으므로 저장된 값이 그대로 조회됩니다.
4 정답
SELECT movie_name, release_date
FROM box_office
WHERE YEAR(release_date) = 2019
AND INSTR(movie_name, ':') > 0;
실행결과
해설 2019년에 개봉한 영화를 조회하려면 YEAR() 함수를 사용해 WHERE 절의 조건을 YEAR(release_date) = 2019라고 주면 됩니다. 그리고 영화 제목에 ‘:’이 들어간 영화를 찾아야 하는데, 이는 문자열에서 특정 문자를 찾는 문자형 함수 INSTR()을 사용하면 됩니다. WHERE 절의 두 번째 조건에 기술된 INSTR(movie_name, ':')은 movie_name 칼럼 값에서 ‘:’ 문자의 시작 위치를 반환합니다. 만약 해당 문자를 찾으면 위치가 숫자로 반환되고, 찾지 못하면 0을 반환하겠죠. 따라서 INSTR(movie_name, ':')이 반환하는 값이 0보다 크다는 것은 해당 문자가 있다는 의미이므로 영화 제목에 ‘:’ 문자가 들어간 건을 검색하는 조건이 됩니다.