SQL

[SQL] SQL NOT IN vs NOT EXISTS ์ฐจ์ด ์ •๋ฆฌ

U__q 2026. 3. 14. 03:14
728x90

๐Ÿ“ NOT IN

NOT IN์€ ์ง€์ •๋œ ๊ฐ’ ๋ชฉ๋ก์— ํฌํ•จ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ถ€์„œ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ง์›์„ ์กฐํšŒํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

SELECT *
FROM EMP
WHERE DEPTNO NOT IN (
    SELECT DEPTNO
    FROM DEPT
);
EMP ํ…Œ์ด๋ธ”์˜ DEPTNO๊ฐ€ DEPT ํ…Œ์ด๋ธ”์˜ DEPTNO ๋ชฉ๋ก์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰,

EMP.DEPTNO ≠ DEPT.DEPTNO

์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

๐Ÿ“ NOT EXISTS

NOT EXISTS๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ TRUE๊ฐ€ ๋˜๋Š” ์กฐ๊ฑด๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฐ™์€ ์˜ˆ์ œ๋ฅผ NOT EXISTS๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 
SELECT *
FROM EMP A
WHERE NOT EXISTS (
    SELECT 1
    FROM DEPT B
    WHERE A.DEPTNO = B.DEPTNO
);
 

EMP ํ…Œ์ด๋ธ”์˜ DEPTNO์™€ ๊ฐ™์€ ๊ฐ’์ด DEPT ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ฒฐ๊ณผ์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“ NOT IN vs NOT EXISTS ์ฐจ์ด

NOT IN๊ณผ NOT EXISTS์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š” NULL ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด DEPT ํ…Œ์ด๋ธ”์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

DEPTNO

10
20
NULL

์ด ๊ฒฝ์šฐ ๋‹ค์Œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด

 
SELECT *
FROM EMP
WHERE DEPTNO NOT IN (
    SELECT DEPTNO
    FROM DEPT
);
 

์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL์—์„œ ๊ฐ’ != NULL 

๋น„๊ต ๊ฒฐ๊ณผ๋Š” TRUE๋„ FALSE๋„ ์•„๋‹Œ UNKNOWN์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

๋ฐ˜๋ฉด NOT EXISTS๋Š” NULL์˜ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 
SELECT *
FROM EMP A
WHERE NOT EXISTS (
SELECT 1
FROM DEPT B
WHERE A.DEPTNO = B.DEPTNO
);
 

์ด ๊ฒฝ์šฐ ์ •์ƒ์ ์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ์กฐํšŒ๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“ ์„ฑ๋Šฅ ์ฐจ์ด

์ผ๋ฐ˜์ ์œผ๋กœ NOT EXISTS๊ฐ€ NOT IN๋ณด๋‹ค ๋” ์•ˆ์ •์ ์ธ ์„ฑ๋Šฅ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

๊ทธ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

NOT IN: ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ „์ฒด์™€ ๋น„๊ต

NOT EXISTS: ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ์ฆ‰์‹œ ํƒ์ƒ‰ ์ข…๋ฃŒ

 

๋”ฐ๋ผ์„œ,  ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์„์ˆ˜๋ก NOT EXISTS๊ฐ€ ๋” ํšจ์œจ์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ“ ์ •๋ฆฌ

๊ตฌ๋ถ„ NOT IN NOT EXISTS
๋น„๊ต ๋ฐฉ์‹ ๊ฐ’ ๋ชฉ๋ก ๋น„๊ต ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
NULL ์˜ํ–ฅ ์žˆ์Œ ์—†์Œ
์„ฑ๋Šฅ ๋А๋ฆด ์ˆ˜ ์žˆ์Œ ๋น„๊ต์  ์•ˆ์ •์ 
์‹ค๋ฌด ์‚ฌ์šฉ ์ œํ•œ์  ๋งŽ์ด ์‚ฌ์šฉ
728x90