๐ ์งํฉ ์ฐ์ฐ์(Set Operators)๋?
- ์งํฉ ์ฐ์ฐ์๋ ๋ ๊ฐ ์ด์์ SELECT ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ๊ฑฐ๋ ๋น๊ตํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋๊ตฌ์
๋๋ค.๐
- ์๋ ๊ทธ๋ฆผ์ 4๊ฐ์ง ์ฐ์ฐ์๊ฐ ํด๋น๋ฉ๋๋ค.
๐ ์ฐ์ฐ์๋ณ ์ค๋ช
- `UNION` : ๋ ๊ฐ ์ด์์ SELECT ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ๊ณ ์ค๋ณต๋ ํ์ ์ ๊ฑฐํฉ๋๋ค.โจ
- `UNION ALL` : ์ค๋ณต๋ ํ๋ ํฌํจํ์ฌ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
- `INTERSECT` : ๋ ๊ฐ ์ด์์ SELECT ์ฟผ๋ฆฌ์์ ๊ณตํต๋ ํ๋ง ๋ฐํํฉ๋๋ค.
- `EXCEPT` (๋๋ `MINUS`): ์ฒซ ๋ฒ์งธ SELECT ๊ฒฐ๊ณผ์์ ๋ ๋ฒ์งธ SELECT ๊ฒฐ๊ณผ๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ์ ๋ฐํํฉ๋๋ค.
* Oracle์์๋ MINUS๋ก ์ฌ์ฉ๋๋ฉฐ, MySQL์์๋ ์ง์ํ์ง ์์ต๋๋ค.
๐ ์ฟผ๋ฆฌ ์คํ ๊ฒฐ๊ณผ ๋น๊ต
โ๏ธ์์ ํ
์ด๋ธ
TABLE [A]
NAME |
ํฌ๋ |
์ฌ๊ณผ |
์ค๋ ์ง |
|
TABLE [B]
NAME |
์ฌ๊ณผ |
ํ ๋งํ |
ํฌ๋ |
|
โ๏ธ ์ฟผ๋ฆฌ๋ฌธ
-- 1๏ธโฃSELECT 1
SELECT Name FROM A
-- 2๏ธโฃ์งํฉ ์ฐ์ฐ์ ํ 1
UNION -- 1. UNION : ์ค๋ณต๋ ์ด๋ฆ ์ ๊ฑฐ
UNION ALL -- 2. UNION ALL : ์ค๋ณต๋ ์ด๋ฆ ํฌํจ
INTERSECT -- 3. INTERSECT : ๊ณตํต๋ ์ด๋ฆ๋ง ์ ํ
EXCEPT -- 4. EXCEPT(MINUS) : A์์ B๋ฅผ ์ ์ธํ ์ด๋ฆ ์ ํ
-- 3๏ธโฃSELECT 2
SELECT Name FROM B;
โ๏ธ๊ฒฐ๊ณผ
UNION
NAME |
ํฌ๋ |
์ฌ๊ณผ |
์ค๋ ์ง |
ํ ๋งํ |
|
UNION ALL
NAME |
ํฌ๋ |
์ฌ๊ณผ |
์ค๋ ์ง |
์ฌ๊ณผ |
ํ ๋งํ |
ํฌ๋ |
|
INTERSECT
|
EXCEPT (MINUS)
|