[SQL-์ค๋ผํด] ์กฐ๊ฑด ๊ฒ์ ๋ฐ ํ์ ์ ๋ ฌ
WHERE ์ ์ ์ด์ฉํ ์กฐ๊ฑด ๊ฒ์
- ํ ์ด๋ธ์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ง ์ ํ์ ์ผ๋ก ๊ฒ์ํ๋ ๊ธฐ๋ฅ
- where ์ ์ ์กฐ๊ฑด๋ฌธ์ ์นผ๋ผ ์ด๋ฆ, ์ฐ์ฐ์, ์์, ์ฐ์ ํํ์์ ๊ฒฐํฉํ์ฌ ๋ค์ํ ํํ๋ก ํํ ๊ฐ๋ฅ
- where์ ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ํ์ : ๋ฌธ์, ์ซ์, ๋ ์ง
๋ฌธ์, ๋ ์ง ํ์ ์ ์์ ๊ฐ์ ์์ ๋ฐ์ดํ( ' ' )๋ก ๋ฌถ์ด์ ํํ
์ซ์ ๊ทธ๋๋ก ์ฌ์ฉ
์์ ๊ฐ์์ ์๋ฌธ์๋ ๋์๋ฌธ์ ๊ตฌ๋ณ
๋น๊ต ์ฐ์ฐ์
- ์ซ์, ๋ฌธ์, ๋ ์ง์ ํฌ๊ธฐ๋ ์์๋ฅผ ๋น๊ตํ๋ ์ฐ์ฐ์
์ฐ์ฐ์ | ์๋ฏธ |
= | ๊ฐ๋ค |
!=, <> | ๊ฐ์ง ์๋ค |
> | ํฌ๋ค |
>= | ํฌ๊ฑฐ๋ ๊ฐ๋ค |
< | ์๋ค |
<= | ์๊ฑฐ๋ ๊ฐ๋ค |
๋ ผ๋ฆฌ ์ฐ์ฐ์
- ์ฌ๋ฌ ๊ฐ์ ์กฐ๊ฑด์ ๊ฒฐํฉํ ๊ฒฝ์ฐ ์ฌ์ฉ
์ฐ์ฐ์ | ์๋ฏธ |
AND | ๋ชจ๋ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋, ์ฐธ ๊ฐ์ ๋ฐํ |
OR | ๋ชจ๋ ์กฐ๊ฑด ์ค ํ๋๊ฐ ์ฐธ์ผ ๋, ์ฐธ ๊ฐ์ ๋ฐํ |
NOT | ์กฐ๊ฑด๊ณผ ๋ฐ๋๋๋ ๊ฒฐ๊ณผ ๋ฐํ |
SQL ์ฐ์ฐ์
- SQL ์ธ์ด์์๋ง ์ ๊ณต
- ๋ชจ๋ ๋ฐ์ดํฐ ํ์ ์ ๋ํด ์ฌ์ฉ ๊ฐ๋ฅ
์ฐ์ฐ์ | ์๋ฏธ |
BETWEEN a AND b | a์ b์ ์ฌ์ด ๊ฐ, a b๋ ํฌํจ |
IN(a, b, c, ... n) | a, b, c ... n ์ค์ ํ๋์ ์ผ์นํ๋ฉด ์ฐธ |
LIKE | ๋ฌธ์ ํจํด๊ณผ ๋ถ๋ถ์ ์ผ๋ก ์ผ์น( % _ )ํ๋ฉด ์ฐธ |
IS NULL | NULL์ด๋ฉด ์ฐธ |
> BETWEEN ์ฐ์ฐ์
โช BETWEEN a AND b ํน์ ์นผ๋ผ์ ๋ฐ์ดํฐ ๊ฐ์ด ํํ๊ฐ a์ ์ํ๊ฐ b ์ฌ์ด์ ํฌํจ๋๋ ํ์ ๊ฒ์
โช AND ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ ๊ฐ์ ์งํฉ ์ถ๋ ฅ
( weight between 50 and 70 ์ weight >= 50 and weight <= 70 ๊ฐ์ ์๋ฏธ)
> IN ์ฐ์ฐ์
โช IN(a, b, c, ... ) ํน์ ์นผ๋ผ์ ๋ฐ์ดํฐ ๊ฐ์ด a, b, c, ... ๊ฐ ์ค์ ํ๋๋ผ๋ ์ผ์นํ๋ฉด ์ฐธ
โช OR ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ ๊ฒ๊ณผ ๊ฐ์ ์งํฉ ์ถ๋ ฅ
(grade in('1', '2, '3', '4') ์ grade '1' or grade '2' or grade '3' or grade '4' ๊ฐ์ ์๋ฏธ)
> LIKE ์ฐ์ฐ์
โช ์นผ๋ผ์ ์ ์ฅ๋ ๋ฌธ์์ด ์ค์์ LIKE ์ฐ์ฐ์์์ ์ง์ ํ ๋ฌธ์ ํจํด๊ณผ ๋ถ๋ถ์ ์ผ๋ก ์ผ์นํ๋ฉด ์ฐธ
โช %์ _ ๋ฅผ ์์ผ๋ ๋ฌธ์๋ก ์ฌ์ฉ
% : ์์์ ๊ธธ์ด์ ๋ฌธ์์ด(์๋ฆฌ์ ์๊ด x) / ์๋์ฐ *์ ๋์ผ
_ : ์์์ ํ ๋ฌธ์(์๋ฆฌ์ ํ์๋ฆฌ) / ์๋์ฐ ?์ ๋์ผ
ex) ์ฑ์ด '๊น'์จ => name LIKE '๊น%' / ์ด๋ฆ 3๊ธ์, ์ฑ์ '๊น', ๋ง์ง๋ง ๊ธ์ '์' => name LIKE '๊น_์'
โช NOT LIKE : ๋ฌธ์ ํจํด๊ณผ ์ผ์นํ์ง ์๋ ํ ๊ฒ์
โช ESCAPE : LIKE์ฐ์ฐ์์์ ์ฌ์ฉํ๋ ์์ด๋ ๋ฌธ์(% _) ์์ฒด๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด ๊ฒ์ํ ๋,
์์ผ๋ ๋ฌธ์๋ฅผ ์ผ๋ฐ ๋ฌธ์์ฒ๋ผ ์ทจ๊ธํ๊ธฐ ์ํ ์ต์
ํด๋น๋๋ ์์ผ๋ ๋ฌธ์ ์์ ์ญ์ฌ๋์ฌ(\) ๊ธฐํธ ์ ๊ณ , ESCAPE ์ต์ ์ฌ์ฉ
ex) ํฉ๋ณด_๋ก ์์ํ๋ ์ด๋ฆ = name LIKE 'ํฉ๋ณด\_%' ESCAPE '\'
> NULL ์ฐ์ฐ์
โช NULL : ๋ฏธํ์ธ ๊ฐ์ด๋ ์์ง ์ ์ฉ๋์ง ์์ ๊ฐ, ์ฐ์ ์/ํจ์ ์ ์ฉ์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ NULL
โช NULL ๋น๊ต๋ฅผ ์ ํด 'IS (NOT) NULL' ์ฐ์ฐ์ ์ฌ์ฉ
( = NULL ์ NULL์ด๋ผ๋ ๋ฌธ์ ๋ฐ์ดํฐ ๊ฐ์ง ํ ๊ฒ์)
โช IS NULL : NULL์ ํฌํจํ๋ ํ ๊ฒ์
โช IS NOT NULL : NULL์ด ์๋ ํ ๊ฒ์
์ฐ์ฐ์ ์ฐ์ ์์
- where์ ์์ ๋ ๊ฐ ์ด์์ ์ฐ์ฐ์ ๊ฒฐํฉํ์ฌ ์กฐ๊ฑด์ ๊ตฌ์ฑ ์, ๊ฒฐ๊ณผ ๊ฐ์ ์ฐ์ฐ์ ์ฐ์ ์์์ ๋ฐ๋ผ ๊ฒฐ์
- ์ฐ์ ์์ ๋ -> ๋ฎ, ๋์ผํ ์ฐ์ ์์ ๊ฐ์ง ๊ฒฝ์ฐ ์ผ -> ์ค , ๊ดํธ()๋ฅผ ํตํด ์ฐ์ ์์ ๋ณ๊ฒฝ ๊ฐ๋ฅ
์ฐ์ ์์ | ์ฐ์ฐ์ |
1 | ๋น๊ต ์ฐ์ฐ์( =, !=, ^=, <>, >=, <, <= ) SQL ์ฐ์ฐ์( BETWEEN, IN, LIKE, IS NULL) |
2 | NOT |
3 | AND |
4 | OR |
์งํฉ ์ฐ์ฐ์
- ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ ํ์งํฉ์ ๋ํด ํ ์ด๋ธ์ ๋ถ๋ถ ์งํฉ์ ๊ฒฐ๊ณผ๋ก ๋ฐํ
- ํฉ๋ณ ๊ฐ๋ฅ ์กฐ๊ฑด (์งํฉ ์ฐ์ฐ์ ๋์์ด ๋๋ ๋ ํ ์ด๋ธ)
1. ์นผ๋ผ(์ด) ์๊ฐ ๊ฐ์์ผ ํ๋ค.
2. ๋์๋๋ ์นผ๋ผ๋ผ๋ฆฌ ๋ฐ์ดํฐ ํ์ ์ด ๊ฐ์์ผ ํ๋ค
select ๋ช
๋ น๋ฌธ1
[ union | union all | intersect | minus ]
select ๋ช
๋ น๋ฌธ2;
์งํฉ ์ฐ์ฐ์ | ์๋ฏธ |
UNION | ๋ ์งํฉ์ ๋ํด ์ค๋ณต๋๋ ํ์ ์ ์ธํ ํฉ์งํฉ |
UNION ALL | ๋ ์งํฉ์ ๋ํด ์ค๋ณต๋๋ ํ์ ํฌํจํ ํฉ์งํฉ |
MINUS | ๋ ์งํฉ ๊ฐ์ ์ฐจ์งํฉ |
INTERSECT | ๋ ์งํฉ ๊ฐ์ ๊ต์งํฉ |
> UNION / UNION ALL
โช ํฉ์งํฉ
โช UNION : ๋ ๊ฐ์ ํ ์ด๋ธ์ ์ํ๋ฉด์ ์ค๋ณต๋๋ ํ์ ์ ์ธํ ์งํฉ์ ๊ฒฐ๊ณผ ์งํฉ์ผ๋ก ๋ฐํ
โช UNION ALL : ์ค๋ณต๋๋ ํ์ ์ ์ธํ์ง ์๊ณ ๋ชจ๋ ์ถ๋ ฅ
(UNION์ ์ค๋ณต๋๋ ํ์ ์ ์ธ์ํค๊ธฐ ์ํด ๋ด๋ถ ์ ๋ ฌ ์์ ๋ฐ์ / UNION ALL์ด ์ฒ๋ฆฌ ์๋ ๋น ๋ฆ)
> INTERSECT
โช ๊ต์งํฉ
โช ๋ ๊ฐ์ ํ ์ด๋ธ์ ๋ชจ๋ ์ํ๋ ํ ์งํฉ์ ๊ฒฐ๊ณผ ์งํฉ์ผ๋ก ๋ฐํ
> MINUS
โช ์ฐจ์งํฉ
โช ํ ์ด๋ธ A, B์์ Aํ ์ด๋ธ์ ์ํ์ง๋ง, B ํ ์ด๋ธ์๋ ์ํ์ง ์๋ ํ ์งํฉ ๊ฒฐ๊ณผ ๋ฐํ
โช ํ ์ด๋ธ์ ์์๊ฐ ๋ฐ๋๋ฉด ์ถ๋ ฅ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง
์ ๋ ฌ
- ์ผ๋ฐ์ ์ผ๋ก SQL ๋ช ๋ น๋ฌธ์์ ๊ฒ์๋ ๊ฒฐ๊ณผ๋ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ๋ ์์๋๋ก ์ถ๋ ฅ
- ORDER BY ํตํด ์ ๋ ฌ ์์ ์ง์
- asc ์ค๋ฆ์ฐจ์ / desc ๋ด๋ฆผ์ฐจ์
โช asc ์ค๋ฆ์ฐจ์ : ์ํ๋ฒณ - a ~ z / ํ๊ธ - ใฑ ~ ใ
์ซ์ - ๊ฐ์ฅ ์์ ๊ฐ ~ ํฐ ๊ฐ
๋ ์ง - ๊ณผ๊ฑฐ์ ๋ ์ง์ (์ค๋๋, ๋ ์ง๊ฐ ๋น ๋ฅธ)
NULL - ๊ฐ์ฅ ๋ง์ง๋ง
โช desc ๋ด๋ฆผ์ฐจ์ : ์ํ๋ฒณ - z ~ a / ํ๊ธ - ใ ~ ใฑ
์ซ์ - ํฐ ๊ฐ ~ ๊ฐ์ฅ ์์ ๊ฐ
๋ ์ง - ์ต๊ทผ์ ๋ ์ง์
NULL - ๋งจ ์ฒ์
select [distinct] { *|์นผ๋ผ๋ช
[๋ณ์นญ] }
from ํ
์ด๋ธ๋ช
[where ์กฐ๊ฑด]
[order by {์นผ๋ผ๋ช
| ํํ์} [asc | desc]]
> ๋ค์ค ์นผ๋ผ์ ์ด์ฉํ ์ ๋ ฌ
- order by ์ ์์ ์ง์ ํ ์ฒซ ๋ฒ์งธ ์นผ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋จผ์ ์ ๋ ฌ -> ๋ ๋ฒ์งธ ์นผ๋ผ ๊ธฐ์ค์ผ๋ก ๋ค์ ์ ๋ ฌ
> ์นผ๋ผ ์์น๋ฅผ ์ด์ฉํ ์ ๋ ฌ
- select ์ ์์ ๋์ด๋ ์นผ๋ผ์ ์์น๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฌ ๋์ ์นผ๋ผ ์ง์
select name, studno, tel
from student
order by 1; # select ์ ์ ์ฒซ๋ฒ์งธ๋ก ๋์ด๋ name ์นผ๋ผ
์ฐธ๊ณ ๋์ : ์ค๋ผํด ์ค์ฌ์ SQL๋ฐฐ์ํฐ, ์ฐ์ฉํ ์ธ ๊ณต์ , ์๋ฅ์ถํ์ฌ, 2007๋