๐Ÿ“ŒSQL ๋ฌธ๋ฒ• - WHERE ์ ˆ ์กฐ๊ฑด๋ฌธ

sql ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์ธ where์ ˆ ์กฐ๊ฑด๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค!
avatar
2025.04.07
ยท
8 min read

WHERE ์ ˆ์€ SQL์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„ํ„ฐ๋งํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•ต์‹ฌ ๋ฌธ๋ฒ•
"์–ด๋–ค ํ–‰(Row)์„ ๊ฐ€์ ธ์˜ฌ๊นŒ?"๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ค‘์š”ํ•œ ์—ญํ• 

๋‹ค์–‘ํ•œ WHERE ์กฐ๊ฑด๋ฌธ ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜
๋ฒ”์œ„, ์ง‘ํ•ฉ, ํŒจํ„ด, NULL ์กฐ๊ฑด, ๋ณตํ•ฉ ์กฐ๊ฑด๊นŒ์ง€

โœ… WHERE ์ ˆ ๊ธฐ๋ณธ ๊ตฌ์กฐ

SELECT ์ปฌ๋Ÿผ๋ช…
FROM ํ…Œ์ด๋ธ”๋ช…
WHERE ์กฐ๊ฑด;
  • ์˜ˆ์‹œ

SELECT * FROM Book
WHERE price > 15000;

โœ… WHERE ์กฐ๊ฑด ์—ฐ์‚ฐ์ž ์ •๋ฆฌํ‘œ

์—ฐ์‚ฐ์ž

์˜๋ฏธ

์˜ˆ์‹œ ์˜ˆ๋ฌธ

=

๊ฐ™๋‹ค

publisher = '๊ตฟ์Šคํฌ์ธ '

<> ๋˜๋Š” !=

๊ฐ™์ง€ ์•Š๋‹ค

price <> 20000

>

์ดˆ๊ณผ

price > 15000

<

๋ฏธ๋งŒ

price < 10000

>=

์ด์ƒ

price >= 12000

<=

์ดํ•˜

price <= 18000

BETWEEN A AND B

A ์ด์ƒ B ์ดํ•˜ ๋ฒ”์œ„ ์กฐ๊ฑด

price BETWEEN 10000 AND 20000

IN (...)

๋ชฉ๋ก์— ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ

publisher IN ('๊ตฟ์Šคํฌ์ธ ', '๋Œ€ํ•œ๋ฏธ๋””์–ด')

NOT IN (...)

๋ชฉ๋ก์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

publisher NOT IN ('๊ตฟ์Šคํฌ์ธ ', '๋Œ€ํ•œ๋ฏธ๋””์–ด')

LIKE

๋ฌธ์ž์—ด ํŒจํ„ด ์ผ์น˜ (๋ถ€๋ถ„ ๊ฒ€์ƒ‰)

bookname LIKE '%์Šคํฌ์ธ %'

IS NULL

๊ฐ’์ด NULL์ธ ๊ฒฝ์šฐ

discount IS NULL

IS NOT NULL

๊ฐ’์ด NULL์ด ์•„๋‹Œ ๊ฒฝ์šฐ

discount IS NOT NULL


๐Ÿงญ ๋ฒ”์œ„ ์—ฐ์‚ฐ์ž

  1. BETWEEN A AND B

-- ๊ฐ€๊ฒฉ์ด 10,000์› ์ด์ƒ 20,000์› ์ดํ•˜์ธ ๋„์„œ
SELECT * FROM Book
WHERE price BETWEEN 10000 AND 20000;
  1. IN (...) / NOT IN (...)

-- ํŠน์ • ์ถœํŒ์‚ฌ์˜ ๋„์„œ๋งŒ ์กฐํšŒ
SELECT * FROM Book
WHERE publisher IN ('๊ตฟ์Šคํฌ์ธ ', '๋Œ€ํ•œ๋ฏธ๋””์–ด');

-- ํ•ด๋‹น ์ถœํŒ์‚ฌ๊ฐ€ ์•„๋‹Œ ๋„์„œ ์กฐํšŒ
SELECT * FROM Book
WHERE publisher NOT IN ('๊ตฟ์Šคํฌ์ธ ', '๋Œ€ํ•œ๋ฏธ๋””์–ด');

๐Ÿ”ค ํŒจํ„ด ๋งค์นญ: LIKE

โ€ข	% : 0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž
โ€ข	_ : ์ •ํ™•ํžˆ 1๊ฐœ์˜ ๋ฌธ์ž
-- ๋„์„œ๋ช…์— '์Šคํฌ์ธ '๊ฐ€ ํฌํ•จ๋œ ๋„์„œ ์กฐํšŒ
SELECT * FROM Book
WHERE bookname LIKE '%์Šคํฌ์ธ %';

-- '์ž๋ฃŒ'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋„์„œ
SELECT * FROM Book
WHERE bookname LIKE '์ž๋ฃŒ%';

๐Ÿ”Ž NULL ์ฒดํฌ

-- ํ• ์ธ ์ •๋ณด๊ฐ€ ์—†๋Š” ๋„์„œ
SELECT * FROM Book
WHERE discount IS NULL;

-- ํ• ์ธ ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜๋Š” ๋„์„œ
SELECT * FROM Book
WHERE discount IS NOT NULL;

โš™๏ธ ๋ณตํ•ฉ ์กฐ๊ฑด: AND, OR, NOT

-- ๊ฐ€๊ฒฉ์ด 15,000 ์ด์ƒ์ด๊ณ , ์ถœํŒ์‚ฌ๊ฐ€ '๊ตฟ์Šคํฌ์ธ '์ธ ๋„์„œ
SELECT * FROM Book
WHERE price >= 15000 AND publisher = '๊ตฟ์Šคํฌ์ธ ';

-- ๊ฐ€๊ฒฉ์ด 2๋งŒ์› ์ดํ•˜์ด๊ฑฐ๋‚˜, '์Šคํฌ์ธ '๊ฐ€ ์ œ๋ชฉ์— ํฌํ•จ๋œ ๋„์„œ
SELECT * FROM Book
WHERE price <= 20000 OR bookname LIKE '%์Šคํฌ์ธ %';

๐Ÿ’ก ์‹ค์ „ ์˜ˆ์ œ ๋ชจ์Œ

-- '๋Œ€ํ•œ๋ฏธ๋””์–ด' ์ถœํŒ์‚ฌ ๋„์„œ ์ค‘ 15000์› ์ดํ•˜
SELECT bookname, price
FROM Book
WHERE publisher = '๋Œ€ํ•œ๋ฏธ๋””์–ด' AND price <= 15000;

-- '์Šคํฌ์ธ '๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋„์„œ
SELECT bookname
FROM Book
WHERE bookname NOT LIKE '%์Šคํฌ์ธ %';

-- ํ• ์ธ ์ •๋ณด๊ฐ€ ์—†๋Š” ๋„์„œ ์ค‘ ๊ฐ€๊ฒฉ์ด ๋†’์€ ์ˆœ ์ •๋ ฌ
SELECT bookname, price
FROM Book
WHERE discount IS NULL
ORDER BY price DESC;

โœจ ๋งˆ๋ฌด๋ฆฌ

์„ค๋ช…

WHERE ์ ˆ

์กฐ๊ฑด์— ๋งž๋Š” ํ–‰(Row)์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ์ ˆ

์‚ฌ์šฉ ์œ„์น˜

SELECT, FROM ๋‹ค์Œ์— ์œ„์น˜

์ฃผ์š” ์—ฐ์‚ฐ์ž

=, <>, >, <, >=, <=, BETWEEN, IN, LIKE ๋“ฑ

NULL ์กฐ๊ฑด

IS NULL, IS NOT NULL์œผ๋กœ ํŒ๋‹จ

๋ณตํ•ฉ ์กฐ๊ฑด

AND, OR, NOT์œผ๋กœ ์กฐ๊ฑด ์กฐํ•ฉ ๊ฐ€๋Šฅ

โ€ข	LIKE '%๋‹จ์–ด%' ๋Š” ๋ฌธ์ž์—ด ํฌํ•จ ์—ฌ๋ถ€ ํ™•์ธ์— ์œ ์šฉ
โ€ข	IN (...) ๊ณผ OR ์กฐ๊ฑด์€ ๊ธฐ๋Šฅ์ƒ ๋™์ผํ•˜์ง€๋งŒ ๊ฐ€๋…์„ฑ์€ IN์ด ๋” ์ข‹์Œ
โ€ข	WHERE ์ ˆ์€ GROUP BY๋‚˜ ORDER BY๋ณด๋‹ค ๋จผ์ € ์‹คํ–‰๋จ (์‹คํ–‰ ์ˆœ์„œ ๊ธฐ์ค€)






- ์ปฌ๋ ‰์…˜ ์•„ํ‹ฐํด