[SQL-์ค๋ผํด] ์๋ธ์ฟผ๋ฆฌ(๋จ์ผํ, ๋ค์คํ, ์ํธ์ฐ๊ด, ์ค์นผ๋ผ, ์ธ๋ผ์ธ ๋ทฐ)
์๋ธ์ฟผ๋ฆฌ
- ํ๋์ SQL ๋ช ๋ น๋ฌธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ค๋ฅธ SQL ๋ช ๋ น๋ฌธ์ ์ ๋ฌํ๊ธฐ ์ํด
๋ ๊ฐ ์ด์์ SQL ๋ช ๋ น๋ฌธ์ ํ๋์ SQL๋ช ๋ น๋ฌธ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ
- ์๋ธ์ฟผ๋ฆฌ์ ๋จผ์ ์ฐพ๊ณ ์ถ์ ๋ฐ์ดํฐ ์ค
- ์๋ธ์ฟผ๋ฆฌ๋ ๊ดํธ๋ก ๋๋ฌ์ธ์ผ ํจ
- ์๋ธ์ฟผ๋ฆฌ๋ ๋น๊ต ์ฐ์ฐ์ ์ค๋ฅธ์ชฝ์ ์์น
์ฒ๋ฆฌ๊ณผ์
1. ์๋ธ์ฟผ๋ฆฌ๋ ๋ฉ์ธ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ธฐ ์ ์ ํ๋ฒ์ฉ ์คํ๋จ
2. ์๋ธ์ฟผ๋ฆฌ์์ ์คํ๋ ๊ฒฐ๊ณผ๊ฐ ๋ฉ์ธ ์ฟผ๋ฆฌ์ ์ ๋ฌ๋์ด ์ต์ข ์ ์ธ ๊ฒฐ๊ณผ ์ถ๋ ฅ
๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ์์ ๋จ ํ๋์ ํ๋ง ๊ฒ์ํ์ฌ ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋ฐํํ๋ ์ง์๋ฌธ
- ๋ฉ์ธ์ฟผ๋ฆฌ์ WHERE์ ์์ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๋น๊ตํ ๊ฒฝ์ฐ์ธ๋
๋ฐ๋์ ๋จ์ผํ ๋น๊ต ์ฐ์ฐ์ ์ค ํ๋๋ง ์ฌ์ฉ
- ๋จ์ผํ ๋น๊ต ์ฐ์ฐ์ : =, >, >=, <, <=
- ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ก ํ๋์ ํ๋ง ์ถ๋ ฅ
- ๋ฐฉ๋ฒ 1 : ์๋ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์์ ๊ธฐ๋ณธํค๋ ๊ณ ์ ํค๋ฅผ '=' ๋น๊ต ํ๋ ๋ฐฉ์
- ๋ฐฉ๋ฒ 2 : ์๋ธ์ฟผ๋ฆฌ SELECT์ ์์ ์ ์ฒด ์งํฉ์ ๋์์ผ๋ก ๊ทธ๋ฃน ํจ์ ์ฌ์ฉ
๋ค์คํ ์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ์์ ๋ฐํ๋๋ ๊ฒฐ๊ณผ ํ์ด ํ๋ ์ด์์ผ ๋ ์ฌ์ฉ
- ๋ฉ์ธ์ฟผ๋ฆฌ์ WHERE์ ์์ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ์ ๋น๊ตํ ๊ฒฝ์ฐ์๋
๋ค์คํ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด ๋น๊ต
- ๋ค์คํ ๋น๊ต ์ฐ์ฐ์ : IN, ANY, SOME, ALL, EXISTS
- ๋ค์คํ ๋น๊ต ์ฐ์ฐ์๋ ๋จ์ผํ ๋น๊ต ์ฐ์ฐ์์ ๊ฒฐํฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
์ข ๋ฅ | ์๋ฏธ |
IN | ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์ด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์ค์์ ํ๋๋ผ๋ ์ผ์นํ๋ฉด ์ฐธ = ๋น๊ต๋ง ๊ฐ๋ฅ |
ANY, SOME | ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์ด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์ค์์ ํ๋ ์ด์ ์ผ์นํ๋ฉด ์ฐธ = ์ <, > ๋ฒ์ ๋น๊ต๋ ๊ฐ๋ฅ |
ALL | ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์ด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์ค์์ ๋ชจ๋ ๊ฐ์ด ์ผ์นํ๋ฉด ์ฐธ |
EXISTS | ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์ด ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ ์ค์์ ๋ง์กฑํ๋ ๊ฐ์ด ํ๋๋ผ๋ ์กด์ฌํ๋ฉด ์ฐธ |
> IN
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์์ ์๋ธ์ฟผ๋ฆฌ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ ํ๋๋ผ๋ ์ผ์นํ๋ฉด ๋ฉ์ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ด ์ฐธ์ด ๋๋ ์ฐ์ฐ์
- ' = ' ์ฐ์ฐ์๋ฅผ OR๋ก ์ฐ๊ฒฐํ ๊ฒ๊ณผ ๊ฐ์ ์๋ฏธ
> ANY
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์์ ์๋ธ์ฟผ๋ฆฌ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ ํ๋๋ผ๋ ์ผ์นํ๋ฉด ๋ฉ์ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ด ์ฐธ์ด ๋๋ ์ฐ์ฐ์
- > , < ๊ณผ ๊ฐ์ ๋ฒ์ ๋น๊ต๋ ๊ฐ๋ฅ (IN ์ฐ์ฐ์๋ = ๋น๊ต๋ง ๊ฐ๋ฅ)
โช > ANY (์๋ธ์ฟผ๋ฆฌ) : ์๋ธ์ฟผ๋ฆฌ์ ์ต์ ๊ฐ๋ณด๋ค ํฌ๋ฉด (์๋ธ์ฟผ๋ฆฌ ์ค์ ํ๋๋ผ๋ ํฌ๋ฉด -> ์ต์๋ณด๋ค ํฌ๋ฉด)
โช < ANY (์๋ธ์ฟผ๋ฆฌ) : ์๋ธ์ฟผ๋ฆฌ์ ์ต๋ ๊ฐ๋ณด๋ค ์์ผ๋ฉด (์๋ธ์ฟผ๋ฆฌ ์ค์ ํ๋๋ผ๋ ์์ผ๋ฉด -> ์ต๋๋ณด๋ค ์์ผ๋ฉด)
> ALL
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋น๊ต ์กฐ๊ฑด์์ ์๋ธ์ฟผ๋ฆฌ์ ์ถ๋ ฅ ๊ฒฐ๊ณผ์ ๋ชจ๋ ์ผ์นํ๋ฉด ๋ฉ์ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ด ์ฐธ์ด ๋๋ ์ฐ์ฐ์
โช > ALL (์๋ธ์ฟผ๋ฆฌ) : ์๋ธ์ฟผ๋ฆฌ์ ์ต๋ ๊ฐ๋ณด๋ค ํฌ๋ฉด (์๋ธ์ฟผ๋ฆฌ ์ค์ ๋ชจ๋๋ณด๋ค ํฌ๋ฉด -> ์ต๋๋ณด๋ค ํฌ๋ฉด)
โช < ALL (์๋ธ์ฟผ๋ฆฌ) : ์๋ธ์ฟผ๋ฆฌ์ ์ต์ ๊ฐ๋ณด๋ค ์์ผ๋ฉด (์๋ธ์ฟผ๋ฆฌ ์ค ๋ชจ๋๋ณด๋ค ์์ผ๋ฉด -> ์ต์๋ณด๋ค ์์ผ๋ฉด)
> EXISTS
- ์๋ธ์ฟผ๋ฆฌ์์ ๊ฒ์๋ ๊ฒฐ๊ณผ๊ฐ ํ๋๋ผ๋ ์กด์ฌํ๋ฉด ๋ฉ์ธ์ฟผ๋ฆฌ ์กฐ๊ฑด์ ์ด ์ฐธ์ด ๋๋ ์ฐ์ฐ์
- ์๋ธ์ฟผ๋ฆฌ์์ ๊ฒ์๋ ๊ฒฐ๊ณผ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ๋ฉ์ธ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์ ์ ๊ฑฐ์ง
> NOT EXISTS
- EXISTS์ ์๋ฐ๋๋ ์ฐ์ฐ์
- ์๋ธ์ฟผ๋ฆฌ์์ ๊ฒ์๋ ๊ฒฐ๊ณผ๊ฐ ํ๋๋ผ๋ ์กด์ฌํ์ง ์์ผ๋ฉด ๋ฉ์ธ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์ ์ด ์ฐธ์ด ๋๋ ์ฐ์ฐ์
๋ค์ค ์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ
- ์๋ธ์ฟผ๋ฆฌ์์ ์ฌ๋ฌ ๊ฐ์ ์นผ๋ผ ๊ฐ์ ๊ฒ์ํ์ฌ ๋ฉ์ธ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์ ๊ณผ ๋น๊ตํ๋ ์๋ธ์ฟผ๋ฆฌ
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ์กฐ๊ฑด์ ์์๋ ์๋ธ์ฟผ๋ฆฌ์ ์นผ๋ผ ์๋งํผ ์ง์ ํด์ผ ํจ
- ์ข ๋ฅ
- PAIRWISE : ์นผ๋ผ์ ์์ผ๋ก ๋ฌถ์ด์ ๋์์ ๋น๊ต
- UNPAIRWISE : ์นผ๋ผ๋ณ๋ก ๋๋์ด์ ๋น๊ตํ ํ, AND ์ฐ์ฐ
> PAIRWISE
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต ๋์ ์นผ๋ผ์ ์์ผ๋ก ๋ฌถ์ด์ ํ๋ณ๋ก ๋น๊ตํ๋ ๋ฐฉ๋ฒ
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ์๋ธ์ฟผ๋ฆฌ์์ ๋น๊ตํ๋ ์นผ๋ผ์ ์๋ ๋ฐ๋์ ๋์ผํด์ผ ํจ
select ์นผ๋ผ_๋ฆฌ์คํธ
from ํ
์ด๋ธ1
where (์นผ๋ผ1, ์นผ๋ผ2, ... ) in (select ์นผ๋ผ1, ์นผ๋ผ2, ...
from ํ
์ด๋ธ2
where ์กฐ๊ฑด);
> UNPAIRWISE
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต ๋์ ์นผ๋ผ์ ๋ถ๋ฆฌํ์ฌ ๊ฐ๋ณ์ ์ผ๋ก ๋น๊ตํ ํ AND ์ฐ์ฐ์ ์ํด ์ต์ข ๊ฒฐ๊ณผ ์ถ๋ ฅ
- ๊ฐ ์นผ๋ผ์ด ๋์์ ๋ง์กฑํ์ง ์๋๋ผ๋ ๊ฐ๋ณ์ ์ผ๋ก ๋ง์กฑํ๋ ๊ฒฝ์ฐ์๋ ๋น๊ต ์กฐ๊ฑด์ด ์ฐธ์ด ๋์ด ๊ฒจ๋กธ ์ถ๋ ฅ ๊ฐ๋ฅ (์ ํํ ๊ฐ X)
select ์นผ๋ผ_๋ฆฌ์คํธ
from ํ
์ด๋ธ1
where ์นผ๋ผ1 in (select ์นผ๋ผ1
from ํ
์ด๋ธ2
where ์กฐ๊ฑด)
and ์นผ๋ผw in (select ์นผ๋ผ2
from ํ
์ด๋ธ2
where ์กฐ๊ฑด);
์ํธ์ฐ๊ด ์๋ธ์ฟผ๋ฆฌ
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ๊ณผ ์๋ธ์ฟผ๋ฆฌ๊ฐ์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๊ตํํ๋ ์๋ธ์ฟผ๋ฆฌ
- ๋ฉ์ธ์ฟผ๋ฆฌ์ ์๋ธ์ฟผ๋ฆฌ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ตํํ๊ธฐ ์ํ์ฌ ์๋ธ์ฟผ๋ฆฌ์ WHERE ์กฐ๊ฑด์ ์์ ๋ฉ์ธ์ฟผ๋ฆฌ์ ํ ์ด๋ธ๊ณผ ์ฐ๊ฒฐ
- ํ์ ๋น๊ตํ ๋๋ง๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ๋ฐํ -> ์ฒ๋ฆฌ ์ฑ๋ฅ ์ ํ๋ ์ ์์
select ์นผ๋ผ_๋ฆฌ์คํธ
from ํ
์ด๋ธ1
where [์นผ๋ผ|ํํ์] ์ฐ์ฐ์ (select [์นผ๋ผ|ํํ์]
from ํ
์ด๋ธ2
where ํ
์ด๋ธ2.์นผ๋ผ๋ช
์ฐ์ฐ์ ํ
์ด๋ธ1.์นผ๋ฌ๋ช
);
์๋ธ์ฟผ๋ฆฌ ์ฃผ์์ฌํญ
- ๋จ์ผํ ์๋ธ์ฟผ๋ฆฌ์์ ์ค๋ฅ ๋ฐ์
- ๋ณต์ ํ ๊ฐ์ ๋ฐํํ๋ ์๋ธ์ฟผ๋ฆฌ์ ๋จ์ผํ ๋น๊ต์ฐ์ฐ์ ํจ๊ป ์ฌ์ฉ
- ์๋ธ์ฟผ๋ฆฌ์์ ๋ฐํ๋๋ ์นผ๋ผ์ ์์ ๋ฉ์ธ์ฟผ๋ฆฌ์์ ๋น๊ต๋๋ ์นผ๋ผ ์๊ฐ ์ผ์นํ์ง ์์ ๊ฒฝ์ฐ
- ์๋ธ์ฟผ๋ฆฌ ๋ด์์ order by์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ -> ๋ฉ์ธ์ฟผ๋ฆฌ์์ order by ์ฌ์ฉ
- ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๊ฐ null -> '์ ํ๋ ๋ ์ฝ๋๊ฐ ์์ต๋๋ค' ๋ฐํ
์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ
- select ์ ์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
- 1. ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ ๋จ์ผํ์ด์ด์ผ ํ๋ค
- 2. ์ค์นผ๋ผ ์๋ธ์ฟผ๋ฆฌ๋ ์นผ๋ผ์ด ํ๋์ฌ์ผ ํ๋ค
์ธ๋ผ์ธ ๋ทฐ ์๋ธ์ฟผ๋ฆฌ
- from ์ ์ ์ฌ์ฉํ๋ ์๋ธ์ฟผ๋ฆฌ
- ์ธ๋ผ์ธ ๋ทฐ์ ๋ค์ด๊ฐ๋ ํจ์๋ค์ ๋ณ์นญ ๋ถ์ด์ผ ํจ
์ฐธ๊ณ ๋์ : ์ค๋ผํด ์ค์ฌ์ SQL๋ฐฐ์ํฐ, ์ฐ์ฉํ ์ธ ๊ณต์ , ์๋ฅ์ถํ์ฌ, 2007๋
'Ability ๐ฑ > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL-์ค๋ผํด] SQL ํจ์ - ๋ฌธ์, ์ซ์, ๋ ์ง, ๋ณํ, ์ผ๋ฐ (0) | 2022.06.18 |
---|---|
[SQL-์ค๋ผํด] ์กฐ์ธ - EQUI join, NON-EQUI join, OUTER join, SELF join (0) | 2022.06.18 |
[SQL-์ค๋ผํด] ๊ทธ๋ฃน ํจ์ (0) | 2022.06.17 |
[SQL-์ค๋ผํด] ์กฐ๊ฑด ๊ฒ์ ๋ฐ ํ์ ์ ๋ ฌ (0) | 2022.06.16 |
[SQL-์ค๋ผํด] ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด (0) | 2022.04.19 |