Day 28

ํ…Œ์ด๋ธ”์„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์กฐ์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž

๊ธฐ์กด์— ๋ดค์—ˆ๋˜ UNION, INTERSECT ๋“ฑ์€ ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ๋Š˜๋ ค์ฃผ๋Š” ๋ฐฉ์‹์ด์˜€๋‹ค ํ•˜์ง€๋งŒ ์ด๋ฒˆ์— ๋ณด๋Š” ๋ฐฉ์‹์€ ์—ด์„ ๋Š˜๋ฆฌ๋Š” ๋ฐฉ์‹์ด๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ ์„œ ์ €์žฅํ•˜๋Š”๋ฐ, ๋ง‰์ƒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๊ณ  ํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๋ฌถ์–ด์„œ ๊ฐ€์ ธ์™€์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ฆ๋น„ํ•˜๋‹ค ๊ทธ๋ž˜์„œ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ฃผ ์ž˜ ์•Œ์•„๋‘ฌ์•ผ ํ•œ๋‹ค๋Š”์ 

๊ณฑ์ง‘ํ•ฉ๊ณผ ๊ต์ฐจ๊ฒฐํ•ฉ

๊ณฑ์ง‘ํ•ฉ

๊ณฑ์ง‘ํ•ฉ์€ ํ•ฉ์ง‘ํ•ฉ์ด๋‚˜ ๊ต์ฐจ์ง‘ํ•ฉ ์ฒ˜๋Ÿผ ์ง‘ํ•ฉ์˜ ์—ฐ์‚ฐ ์ค‘์— ํ•˜๋‚˜๋กœ ๋‘ ๊ฐœ์˜ ์ง‘ํ•ฉ์„ ๊ณฑํ•˜๋Š” ์—ฐ์‚ฐ ๋ฐฉ๋ฒ•์ด๋‹ค ์ด๋ฆ„์€ ๊ณฑ์ง‘ํ•ฉ, ์นดํ‹ฐ์…˜ ํ”„๋กœ๋•ํŠธ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ด๋ฆ„์ด ์กด์žฌ ๊ณฑ์ง‘ํ•ฉ์€ ๋ง ๊ทธ๋Œ€๋กœ ๊ฐ ์ง‘ํ•ฉ์— ์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ๋ฅผ ๊ฐ๊ฐ ์กฐํ•ฉํ•œ ์—ด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ณผ์ •์ด๋‹ค ์˜ˆ๋ฅผ ๋“ค์–ด์„œ A = {1,2,3} B = {q,w,e} A X B = {1q, 1w, 1e, 2q, 2w, 2e, 3q, 3w, 3e} ์ด๋ ‡๊ฒŒ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค ๊ทผ๋ฐ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ณฑํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ๋ฆฌํ„ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—„์ฒญ๋‚œ ์–‘์˜ ํ…Œ์ด๋ธ”์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค ๊ทธ๋ž˜์„œ ์‹ค์ œ๋กœ ์ž์ฃผ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์•Œ์•„๋งŒ ๋‘์ž

๊ต์ฐจ๊ฒฐํ•ฉ

๊ต์ฐจ๊ฒฐํ•ฉ์„ ํ•˜๊ฒŒ๋˜๋ฉด ๊ณฑ์ง‘ํ•ฉ์˜ ํ˜•ํƒœ๋กœ ํ…Œ์ด๋ธ”์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ FROM ์ ˆ์— ๊ณฑ์ง‘ํ•ฉ์„ ์ง„ํ–‰ํ•˜๊ณ  ์‹ถ์€ ํ…Œ์ด๋ธ”์„ ,(์ฝค๋งˆ) ๊ธฐ์ค€์œผ๋กœ ๊ธฐ์ž…ํ•ด์ฃผ๋ฉด ๋œ๋‹ค img.png ์ด๋ ‡๊ฒŒ FROM ์—๋‹ค์ˆ˜์˜ ํ…Œ์ด๋ธ”์„ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด ๊ต์ฐจ๊ฒฐํ•ฉ์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค

UNION ๊ณผ ๊ฒฐํ•ฉ์˜ ์ฐจ์ด

UNION์„ ํ†ตํ•ด์„œ ํ•ฉ์ง‘ํ•ฉ์„ ๋งŒ๋“ค์—ˆ์„ ๊ฒฝ์šฐ, ์„ธ๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ’์ด ๋”ํ•ด์ง€๊ฒŒ ๋œ๋‹ค FROM ์— ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ€๋กœ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ’์ด ๋”ํ•ด์ง€๊ฒŒ ๋œ๋‹ค

๋‚ด๋ถ€๊ฒฐํ•ฉ

๊ต์ฐจ๊ฒฐํ•ฉ์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ…Œ์ด๋ธ”์˜ ์—ด ์ˆซ์ž๊ฐ€ ํ–‰ ์ˆซ์ž๋Œ€๋กœ ์—ด์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ๋Š˜์–ด๋‚˜๊ธฐ ๋–„๋ฌธ์— ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๋” ์–ด๋ ค์›Œ์ง„๋‹ค ๊ทธ๋ž˜์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ๋‚ด๋ถ€๊ฒฐํ•ฉ ๋ฐฉ์‹์ด๋‹ค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๊ฐ ํ…Œ์ด๋ธ”์—์„œ ์—ด์„ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธํ‚ค๊ฐ€ ์กด์žฌํ•œ๋‹ค ๋‚ด๋ถ€๊ฒฐํ•ฉ์„ ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์–ด๋– ํ•œ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๊ณตํ†ต๋œ ๊ฐ’๋“ค์„ ๋ชจ๋‘ ์กฐ์ธํ•ด์„œ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ์‹์ด ๋‚ด๋ถ€๊ฒฐํ•ฉ ๋ฐฉ์‹์ด๋‹ค ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์ƒ๊ฐํ•ด๋ณด์ž ์ƒํ’ˆ ํ…Œ์ด๋ธ”๊ณผ ์ƒํ’ˆ์˜ ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๋ฉด ์–ด๋– ํ•œ ์ƒํ’ˆ์˜ ์žฌ๊ณ ์ˆ˜๊ฐ€ ๋ช‡๊ฐœ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค -> ์ƒํ’ˆ ํ…Œ์ด๋ธ”๊ณผ ์žฌ๊ณ ์ˆ˜ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•ด์„œ ๊ฐ’์„ ์ฐพ์•„์•ผํ•œ๋‹ค ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ๊ธฐ์กด์˜ ๊ต์ฐจ๊ฒฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ƒํ’ˆ {a,b,c}๊ฐ€ ์žˆ๊ณ  ์žฌ๊ณ ์ˆ˜๊ฐ€ {1,2,3}์ด ์žˆ๋‹ค๋ฉด ๊ฒฐ๊ณผํ…Œ์ด๋ธ”์—๋Š” {a1, a2, a3, b1, b2, b3, c1, c2, c3}์ด ๋‚˜์˜จ๋‹ค ๊ทธ๋Ÿฌ๋ฉด ์ƒํ’ˆ a์— ๋Œ€ํ•œ ์žฌ๊ณ ์ˆ˜๋ฅผ ์ฐพ๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์ƒํ’ˆa์™€ ํ•จ๊ป˜ a์— ๋Œ€ํ•œ ์žฌ๊ณ ์ˆ˜๋„ ์ฐพ๊ณ , ์ƒํ’ˆa์™€ ํ•จ๊ป˜ b์— ๋Œ€ํ•œ ์žฌ๊ณ ์ˆ˜๋„ ์ฐพ๊ณ , ์ด๋ ‡๊ฒŒ ๋‹ค์–‘ํ•œ ๊ฐ’๋“ค๋„ ์ฐพ๊ฒŒ ๋œ๋‹ค ๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด WHERE์ ˆ์— ๊ธฐ๋ณธํ‚ค๊ฐ€ ๊ฐ™๋‹ค๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด์„œ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ด์™ธ์—, a์™€ a์˜์žฌ๊ณ ์ˆ˜ b์™€ b์˜์žฌ๊ณ ์ˆ˜, c์™€ c์˜ ์žฌ๊ณ ์ˆ˜ ์ด๋ ‡๊ฒŒ ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค

SELECT * FROM ์ƒํ’ˆ, ์žฌ๊ณ ์ˆ˜;
--์œ„ ๋ฐฉ์‹์œผ๋กœ๋Š” ํ•„์š”์—†๋Š” ์กฐํ•ฉ์˜ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

SELECT * FROM ์ƒํ’ˆ, ์žฌ๊ณ ์ˆ˜ WHERE ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ = ์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ;
--์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•ด์ค˜์•ผ ํ•ด๋‹น ์ƒํ’ˆ์ฝ”๋“œ์— ๋งž๋Š” ์žฌ๊ณ ์ˆ˜๋งŒ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค 

์ด๋ ‡๊ฒŒ ๋‚ด๋ถ€๊ฒฐํ•ฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์•„์ง๋„ ์›ํ•˜๋Š” ๊ฐ’์ด์™ธ์˜ ๊ฒƒ๋“ค์ด ๋ณด์ธ๋‹ค -> ๋ชจ๋“  ์ƒํ’ˆ์˜ ์žฌ๊ณ ์ˆ˜๊ฐ€ ์•„๋‹Œ B์ƒํ’ˆ์˜ ์žฌ๊ณ ์ˆ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด? ์œ„์˜ WHERE์ ˆ์— ๊ฒฐํ•ฉ์กฐ๊ฑด ์ด์™ธ์—๋„ ์›ํ•˜๋Š” ์กฐ๊ฑด์„ ๊ฑธ์–ด์ฃผ๋ฉด ๋œ๋‹ค

SELECT ์ƒํ’ˆ.์ƒํ’ˆ๋ช…, ์žฌ๊ณ ์ˆ˜.์žฌ๊ณ ์ˆ˜ FROM ์ƒํ’ˆ, ์žฌ๊ณ ์ˆ˜
WHERE ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ=์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ AND ์ƒํ’ˆ๋ช…='a';

์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ํŠน์ • ์กฐ๊ฑด์„ ๊ฑฐ๋Š” ๊ฒƒ์„ ๊ฒฐํ•ฉ์กฐ๊ฑด์ด๋ผ๊ณ  ํ•œ๋‹ค

INNER JOIN ์œผ๋กœ ๋‚ด๋ถ€๊ฒฐํ•ฉํ•˜๊ธฐ

๊ธฐ์กด๊นŒ์ง€์˜ ๊ฒฐํ•ฉ ๋ฐฉ์‹์€ ๊ตฌ์‹๊ฒฐํ•ฉ ๋ฐฉ์‹์ด๋‹ค. ์ตœ๊ทผ์—๋Š” JOIN ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค ์œ„์˜ ์‚ฌ๋ก€๋ฅผ INNJER JOIN์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋ณด์ž

SELECT ์ƒํ’ˆ.์ƒํ’ˆ๋ช…, ์žฌ๊ณ ์ˆ˜.์žฌ๊ณ ์ˆ˜
FROM ์ƒํ’ˆ INNER JOIN ์žฌ๊ณ ์ˆ˜ ON ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ=์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ
WHERE ์ƒํ’ˆ.์ƒํ’ˆ๋ช… = 'a';

INNER๋Š” ์•ˆ์ชฝ์ด๋ผ๋Š” ์˜๋ฏธ์ด๋ฉฐ JOIN์€ ๊ฒฐํ•ฉ์‹œํ‚จ๋‹ค๋Š” ์˜๋ฏธ๋กœ ํ•ฉ์ณ์„œ ๋‚ด๋ถ€๊ฒฐํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค ๊ทธ๋ฆฌ๊ณ  ์กฐ์ธ์— ๋Œ€ํ•œ ์กฐ๊ฑด์€ ON์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฒฐํ•ฉ์กฐ๊ฑด์„ ์ •์˜

์™ธ๋ถ€๊ฒฐํ•ฉ

์™ธ๋ถ€๊ฒฐํ•ฉ์ด๋ผ๊ณ  ํ•ด๋„ ๋‹จ์ˆœํ•˜๊ฒŒ ๊ต์ฐจ๊ฒฐํ•ฉ์œผ๋กœ ๊ฒฐํ•ฉ์กฐ๊ฑด์„ ์ง€์ •ํ•ด์„œ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฅด์ง€ ์•Š์ง€๋งŒ ๋‹ค๋ฅธ์ ์€ ์–ด๋А ํ•œ ์ชฝ์—๋งŒ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ์˜ฌ์ง€ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฐํ•ฉ ๋ฐฉ๋ฒ•์ด๋‹ค INNER JOIN์„ ๊ฒฐํ•ฉํ•˜๊ฒŒ ๋˜๋ฉด ์–‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•˜๋Š” ์กฐ์ธ ์กฐ๊ฑด์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•ด๋‹น ํ–‰๋งŒ ๊ฒฐํ•ฉํ•ด์„œ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ๋Š” ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ์ •์ ์ด๋‹ค ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€๊ฒฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค -> ์™ธ๋ถ€๊ฒฐํ•ฉ์„ ์‚ฌ์šฉํ•˜๊ฒŒ๋˜๋ฉด ๊ธฐ์ค€์œผ๋กœ ์žก์€ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์„ ๊ฒฐํ•ฉํ•ด์„œ ๊ฐ€์ ธ์˜จ๋‹ค ์˜ˆ๋ฅผ ๋“ค๋ฉด

SELECT ์ƒํ’ˆ.์ƒํ’ˆ๋ช…, ์žฌ๊ณ ์ˆ˜.์žฌ๊ณ ์ˆ˜
FROM ์ƒํ’ˆ LEFT JOIN ์žฌ๊ณ ์ˆ˜ ON ์ƒํ’ˆ.์ƒํ’ˆ์ฝ”๋“œ = ์žฌ๊ณ ์ˆ˜.์ƒํ’ˆ์ฝ”๋“œ 

์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  JOIN ํ‚ค์›Œ๋“œ ์•ž์˜ ์žˆ๋Š” ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๊ฐ€์ ธ์˜ค๊ณ , ๋’ค์— ์žˆ๋Š” ํ…Œ์ด๋ธ”์—์„œ๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’๋งŒ ๊ฐ€์ ธ์˜ค๊ฒŒ ๋œ๋‹ค ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด INNER JOIN๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๋น„์–ด ์žˆ๋Š” ๊ฐ’, null ์ด ์ •๋ง ๋งŽ๊ธด ํ•˜๋‹ค ๊ทธ๋ž˜์„œ ํ•„์š”์— ์˜ํ•ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค ์ฐธ๊ณ ๋กœ LEFT์˜ ๋ฐ˜๋Œ€์ธ RIGHT๋„ ์กด์žฌํ•œ๋‹ค ์ด๊ฑด ๋ญ ๋‹จ์ˆœํžˆ ์ž๋ฆฌ์ฐจ์ด ์ด๊ธดํ•˜์ง€๋งŒ RIGHT๋„ ์กด์žฌํ•œ๋‹ค๋Š”๊ฑฐ ๊ธฐ์–ตํ•˜์ž

Last updated

Was this helpful?