책 내용 질문하기
정보처리기사 실기 데이터베이스 129페이지 8번 질문 드립니다.
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
129
조회수
410
작성일
2019-04-01
작성자
탈퇴*원
첨부파일

답안에서 마지막 줄인 학과명 IS NULL;이 왜 나오게 되었는지 설명좀 부탁드리겠습니다

답변
2019-04-02 11:28:08

안녕하세요 길벗수험서 운영팀입니다.

 

left outer join의 결과를 예측해보시기 바랍니다.

 

SELECT 학교.학교명, 지역

FROM 학교 LEFT OUTER JOIN 학과 ON 학교.학교명 = 학과.학교명

WHERE 학과명 Is Null;

 

학교명과 지역을 출력하는데, 학교.학교명 = 학과.학교명(+) 상태입니다.

즉, 학교 테이블에 포함되어있지 않은 학과 테이블의 학교명이 포함된 결과가 출력된다는 말이죠.

이때 해당 학교명은 '지역'이 존재하지 않으므로 해당 학교명의 튜플들은 '지역' 필드가 널로 추가가 됩니다.

 

때문에 아래 SQL 결과를 보면 

SELECT *

FROM 학교 LEFT OUTER JOIN 학과2 ON 학교.학교명 = 학과2.학교명;


(왼쪽 학교명은 학교.학교명, 오른쪽 학교명은 학과.학교명)

이러한 결과가 나옵니다.

 

위에서 학과명이 NULL인 것을 찾으면 문제의 결과가 출력되게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-04-02 11:28:08

    안녕하세요 길벗수험서 운영팀입니다.

     

    left outer join의 결과를 예측해보시기 바랍니다.

     

    SELECT 학교.학교명, 지역

    FROM 학교 LEFT OUTER JOIN 학과 ON 학교.학교명 = 학과.학교명

    WHERE 학과명 Is Null;

     

    학교명과 지역을 출력하는데, 학교.학교명 = 학과.학교명(+) 상태입니다.

    즉, 학교 테이블에 포함되어있지 않은 학과 테이블의 학교명이 포함된 결과가 출력된다는 말이죠.

    이때 해당 학교명은 '지역'이 존재하지 않으므로 해당 학교명의 튜플들은 '지역' 필드가 널로 추가가 됩니다.

     

    때문에 아래 SQL 결과를 보면 

    SELECT *

    FROM 학교 LEFT OUTER JOIN 학과2 ON 학교.학교명 = 학과2.학교명;


    (왼쪽 학교명은 학교.학교명, 오른쪽 학교명은 학과.학교명)

    이러한 결과가 나옵니다.

     

    위에서 학과명이 NULL인 것을 찾으면 문제의 결과가 출력되게 되죠.

     

    행복한 하루되세요 :)

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.