songining
article thumbnail

์ง‘ํ•ฉ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ฝ์กฐ๊ฑด 

 - 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 ์‚ฌ์šฉ