๐SQL ๋ฌธ๋ฒ - WHERE ์ ์กฐ๊ฑด๋ฌธ
WHERE
์ ์ SQL์์ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ ๋ ์ฌ์ฉํ๋ ํต์ฌ ๋ฌธ๋ฒ
"์ด๋ค ํ(Row)์ ๊ฐ์ ธ์ฌ๊น?"๋ฅผ ๊ฒฐ์ ํ๋ ์ค์ํ ์ญํ
๋ค์ํ WHERE ์กฐ๊ฑด๋ฌธ ์ฐ์ฐ์์ ํจ๊ป
๋ฒ์, ์งํฉ, ํจํด, NULL ์กฐ๊ฑด, ๋ณตํฉ ์กฐ๊ฑด๊น์ง
โ WHERE ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
SELECT ์ปฌ๋ผ๋ช
FROM ํ
์ด๋ธ๋ช
WHERE ์กฐ๊ฑด;
์์
SELECT * FROM Book
WHERE price > 15000;
โ WHERE ์กฐ๊ฑด ์ฐ์ฐ์ ์ ๋ฆฌํ
์ฐ์ฐ์ | ์๋ฏธ | ์์ ์๋ฌธ |
= | ๊ฐ๋ค |
|
<> ๋๋ != | ๊ฐ์ง ์๋ค |
|
> | ์ด๊ณผ |
|
< | ๋ฏธ๋ง |
|
>= | ์ด์ |
|
<= | ์ดํ |
|
BETWEEN A AND B | A ์ด์ B ์ดํ ๋ฒ์ ์กฐ๊ฑด |
|
IN (...) | ๋ชฉ๋ก์ ํฌํจ๋๋ ๊ฒฝ์ฐ |
|
NOT IN (...) | ๋ชฉ๋ก์ ํฌํจ๋์ง ์๋ ๊ฒฝ์ฐ |
|
LIKE | ๋ฌธ์์ด ํจํด ์ผ์น (๋ถ๋ถ ๊ฒ์) |
|
IS NULL | ๊ฐ์ด NULL์ธ ๊ฒฝ์ฐ |
|
IS NOT NULL | ๊ฐ์ด NULL์ด ์๋ ๊ฒฝ์ฐ |
|
๐งญ ๋ฒ์ ์ฐ์ฐ์
BETWEEN A AND B
-- ๊ฐ๊ฒฉ์ด 10,000์ ์ด์ 20,000์ ์ดํ์ธ ๋์
SELECT * FROM Book
WHERE price BETWEEN 10000 AND 20000;
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)์ ํํฐ๋งํ๋ ์ |
์ฌ์ฉ ์์น |
|
์ฃผ์ ์ฐ์ฐ์ | =, <>, >, <, >=, <=, BETWEEN, IN, LIKE ๋ฑ |
NULL ์กฐ๊ฑด |
|
๋ณตํฉ ์กฐ๊ฑด |
|
โข LIKE '%๋จ์ด%' ๋ ๋ฌธ์์ด ํฌํจ ์ฌ๋ถ ํ์ธ์ ์ ์ฉ
โข IN (...) ๊ณผ OR ์กฐ๊ฑด์ ๊ธฐ๋ฅ์ ๋์ผํ์ง๋ง ๊ฐ๋
์ฑ์ IN์ด ๋ ์ข์
โข WHERE ์ ์ GROUP BY๋ ORDER BY๋ณด๋ค ๋จผ์ ์คํ๋จ (์คํ ์์ ๊ธฐ์ค)