์งํฉ์ฐ์ฐ์ ์ฌ์ฉํ๊ธฐ ์ํ ์ ์ฝ์กฐ๊ฑด
- SELECT ์ ์ ์นผ๋ผ ์๊ฐ ๋์ผํ๊ณ SELECT ์ ์ ๋์ผ ์์น์ ์กด์ฌํ๋ ์นผ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ด ์ํธ ํธํ ๊ฐ๋ฅํด์ผ ํ๋ค.
(๋ฐ๋์ ๋์ผํ ๋ฐ์ดํฐ ํ์ ์ผ ํ์๋ ์์)
์ข ๋ฅ
- UNION : ์ฌ๋ฌ๊ฐ์ SQL๋ฌธ์ ๊ฒฐ๊ณผ์ ๋ํ ํฉ์งํฉ์ผ๋ก ๊ฒฐ๊ณผ์์ ๋ชจ๋ ์ค๋ณต๋ ํ์ ํ๋์ ํ์ผ๋ก ๋ง๋ ๋ค.
- UNION ALL : ์ฌ๋ฌ๊ฐ์ SQL๋ฌธ์ ๊ฒฐ๊ณผ์ ๋ํ ํฉ์งํฉ์ผ๋ก ์ค๋ณต๋ ํ๋ ๊ทธ๋๋ก ๊ฒฐ๊ณผ๋ก ํ์๋๋ค. ์ฌ๋ฌ ์ง์ ๊ฒฐ๊ณผ ์ํธ๋ฐฐํ์ ์ผ ๋ ๋ง์ด ์ฌ์ฉํ๋ค. ๊ฐ๋ณ SQL๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ ์๋ก ์ค๋ณต๋์ง ์๋ ๊ฒฝ์ฐ, UNION๊ณผ ๊ฒฐ๊ณผ ๋์ผ
- INTERSECT : ์ฌ๋ฌ๊ฐ์ SQL๋ฌธ์ ๊ฒฐ๊ณผ์ ๋ํ ๊ต์งํฉ์ด๋ค. ์ค๋ณต๋ ํ์ ํ๋์ ํ์ผ๋ก ๋ง๋ ๋ค.
- EXCEPT : ์์ SQL๋ฌธ์ ๊ฒฐ๊ณผ์์ ๋ค์ SQL๋ฌธ์ ๊ฒฐ๊ณผ์ ๋ํ ์ฐจ์งํฉ์ด๋ค. ์ค๋ณต๋ ํ์ ํ๋์ ํ์ผ๋ก ๋ง๋ ๋ค.
(ORACLE์ MINUS, ANSI๋ EXCEPT ์ฌ์ฉ)
ORDER BY ๋ ์งํฉ ์ฐ์ฐ์ ์ ์ฉํ ์ต์ข ๊ฒฐ๊ณผ์ ๋ํ ์ฒ๋ฆฌ์ด๋ฏ๋ก ๋ง์ง๋ง ์ค์ ํ๋ฒ๋ง ๊ธฐ์
UNION VS UNION ALL
- ๋ง์ฝ ์ค๋ณต์ด ์๋ค๋ฉด ๋ ์ค ์ด๋ ๊ฒ์ ์จ๋ ์๊ด ์๋ค. ์ฆ, ์ด๋ด ๊ฒฝ์ฐ์๋ UNION ALL์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋น์ฉ์ ์ผ๋ก ๋ซ๋ค.
- ์ค๋ณต์ ๋ฐฐ์ ํ UNIION์ด ๊ผญ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด, UNION ALL์ ์ฐ์ ์ ์ผ๋ก ๊ณ ๋ คํ๋ค.
UNION
- ์กฐํ ๊ฒฐ๊ณผ์ ๋ํ ํฉ์งํฉ์ ๋ํ๋ด๋ฉฐ ์๋์ผ๋ก ์ ๋ ฌ์ ํด์ค๋ค.
- UNIONํ๊ณ ์ ํ๋ ์นผ๋ผ๋ช 2๊ฐ๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ ์ฒซ๋ฒ์งธ๋ก ๋ช ์๋ ์ปฌ๋ผ์ ๋ฐ๋ผ๊ฐ๋ค.
- ์ค๋ณต์ ์ ๊ฑฐํ๊ณ ์ ๋ ฌ์ ํ๊ธฐ๋๋ฌธ์ ์ฑ๋ฅ์ ๋๋ ค์ง๋ค.
UNION ALL
- ๋ณ๋์ ์ ๋ ฌ ์์ ์ ํ์ง ์๋๋ค.
- ์ด์ง์ ์ธ ์ฑ๊ฒฉ์ ๋ฐ์ดํฐ๋ฅผ ํ ํ๋ฉด์ ๋ณด๊ณ ์ถ์ ๊ฒฝ์ฐ์๋ UNION ALL์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
INTERSECT
EX) ํ์ด K02์ธ ์ ์๋ค๊ณผ ํฌ์ง์ ์ด GK์ธ ์ ์๋ค์ ๊ต์งํฉ
SELECT TEAM_ID ํ์ฝ๋ , PLAYER_NAME ์ ์๋ช
, POSITION ํฌ์ง์
,BACK_NO ๋ฐฑ๋๋ฒ , HEIGHT ํค
FROM PLAYER
WHERE TEAM_ID = 'K02'
INTERSECT
SELECT TEAM_ID
ํ์ฝ๋ , PLAYER_NAME ์ ์๋ช
, POSITION ํฌ์ง์
,BACK_NO ๋ฐฑ๋๋ฒ , HEIGHT ํค
FROM PLAYER
WHERE POSITION = 'GK';
EXCEPT(MINUS)
EX) ํ์ด K02์ธ ์ ์๋ค์ค ํฌ์ง์ ์ด MF๊ฐ ์๋์ ์๋ค์ ์งํฉ
SELECT TEAM_ID ํ์ฝ๋ , PLAYER_NAME ์ ์๋ช
, POSITION ํฌ์ง์
,BACK_NO ๋ฐฑ๋๋ฒ , HEIGHT ํค
FROM PLAYER
WHERE TEAM_ID = 'K02'
MINUS
SELECT TEAM_ID
ํ์ฝ๋ , PLAYER_NAME ์ ์๋ช
, POSITION ํฌ์ง์
,BACK_NO ๋ฐฑ๋๋ฒ , HEIGHT ํค
FROM PLAYER
WHERE POSITION = 'MF';
โปSQL SERVER์ ANSI๋ EXCEPT ์ฌ์ฉ, ORACLE์ MINUS ์ฌ์ฉ
'SQLD' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 2์ฅ - 4์ ์๋ธ์ฟผ๋ฆฌ (0) | 2021.05.25 |
---|---|
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 2์ฅ - 3์ ๊ณ์ธตํ ์ง์์ ์ ํ ์กฐ์ธ (0) | 2021.05.24 |
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 2์ฅ - 1์ ํ์ค ์กฐ์ธ (0) | 2021.05.24 |
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 8์ /9์ ORDER BY, JOIN (0) | 2021.05.21 |
๊ณผ๋ชฉII SQL ๊ธฐ๋ณธ ๋ฐ ํ์ฉ 1์ฅ - 7์ GROUP BY, HAVING ์ (0) | 2021.05.21 |