SQLD

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

IN·EXISTS·NOT IN과 NULL

원래 이론 →

대표 계산·예제

예시·텍스트
DEPT.deptno = {10, 20, NULL}
EMP.deptno  = {10, 30}
SQL
SELECT deptno
FROM emp
WHERE deptno NOT IN (SELECT deptno FROM dept);

30 <> 10 AND 30 <> 20 AND 30 <> NULL에서 마지막 비교가 UNKNOWN이므로 전체가 TRUE가 되지 않는다. 결과가 한 건도 없을 수 있다.

안전한 미존재 검사는 NULL 의미가 명확한 NOT EXISTS를 사용한다.

SQL
SELECT e.deptno
FROM   emp e
WHERE  NOT EXISTS (
  SELECT 1
  FROM dept d
  WHERE d.deptno = e.deptno
);

서브쿼리 컬럼이 NOT NULL로 보장되거나 명시적으로 WHERE deptno IS NOT NULL을 추가하면 NOT IN과 같은 결과가 될 수 있지만, 제약과 업무 의미를 확인한다.

이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.