다음 SQL의 실행 결과로 옳은 것은?[도서]도서번호제목분류B1DB_설… | [SQLD] SQL 개발자 기출유형 모의고사 5회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 5회
다음 SQL의 실행 결과로 옳은 것은?

[도서]

도서번호제목분류
B1DB_설계기술
B2DB설계기술
B3봄_여름(null)
B4겨울밤(null)
B5여름밤소설
B6가을역사
SELECT 도서번호, 제목
  FROM 도서
 WHERE 제목 LIKE '%#_%' ESCAPE '#'
    OR 분류 IN ('소설', NULL)
 ORDER BY 도서번호;
1
도서번호제목
B1DB_설계
B5여름밤
2
도서번호제목
B1DB_설계
B3봄_여름
B4겨울밤
B5여름밤
3
도서번호제목
B1DB_설계
B2DB설계
B3봄_여름
B4겨울밤
B5여름밤
B6가을
4
도서번호제목
B1DB_설계
B3봄_여름
B5여름밤
해설

ESCAPE '#' 로 #_ 가 밑줄 문자 자체를 뜻하므로 제목에 _ 가 든 B1·B3 이 일치하고, IN 목록에서 소설과 같은 B5 가 더해진다.

IN 의 NULL 은 = NULL 비교라 UNKNOWN이 되어 분류가 NULL 인 B4 를 잡지 못하며, B3 은 LIKE 가 TRUE 라 OR 로 통과한다.

  • B4 를 넣은 표는 IN 목록의 NULL 이 NULL 행과 일치한다고 오해했다.
  • 여섯 행이 모두 나온 표는 _ 를 한 글자 와일드카드로 해석했다.
  • B3 을 뺀 표는 분류가 NULL 이면 OR 전체가 거짓이 된다고 본 것이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 5회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기