์กฐ์ธ

๊ฐœ๋…

- ํ•˜๋‚˜์˜ SQL ๋ช…๋ น๋ฌธ์— ์˜ํ•ด ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ

- ๋‘๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ '๊ฒฐํ•ฉ'ํ•œ๋‹ค๋Š” ์˜๋ฏธ

์ข…๋ฅ˜

- ์นดํ‹ฐ์…˜ ๊ณฑ, EQUI join, NON-EQUI join, OUTER join, SELF join

 

์นผ๋Ÿผ ์ด๋ฆ„ ์• ๋งค๋ชจํ˜ธ์„ฑ

- ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋™์ผํ•œ ์นผ๋Ÿผ ์ด๋ฆ„์„ ์—ฐ๊ฒฐํ•  ๊ฒฝ์šฐ ์นผ๋Ÿผ ์ด๋ฆ„ ์•ž์— ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์ ‘๋‘์‚ฌ๋กœ ์‚ฌ์šฉ

- ํ…Œ์ด๋ธ” ์ด๋ฆ„๊ณผ ์นผ๋Ÿผ์€ ์ ( . )์œผ๋กœ ๊ตฌ๋ถ„

- ํ…Œ์ด๋ธ”๋ช….์นผ๋Ÿผ๋ช…

 

ํ…Œ์ด๋ธ” ๋ณ„๋ช…

- ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ๋Œ€์‹ ํ•˜๋Š” ๋ณ„๋ช… ์‚ฌ์šฉ ๊ฐ€๋Šฅ

- from์ ˆ์—์„œ ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋‹ค์Œ์— ๊ณต๋ฐฑ์„ ๋‘๊ณ  ๋ณ„๋ช… ์ •์˜

- ํ…Œ์ด๋ธ” ๋ณ„๋ช… ์ž‘์„ฑ ๊ทœ์น™

  • ํ…Œ์ด๋ธ” ๋ณ„๋ช…์€ 30์ž๊นŒ์ง€ ๊ฐ€๋Šฅ
  • from์ ˆ์—์„œ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ๋ช…์‹œํ•˜๊ณ  ๊ณต๋ฐฑ์„ ๋‘” ๋‹ค์Œ ํ…Œ์ด๋ธ” ๋ณ„๋ช…์ง€์ •
  • ํ•˜๋‚˜์˜ SQL ๋ช…๋ น๋ฌธ์—์„œ ํ…Œ์ด๋ธ” ์ด๋ฆ„๊ณผ ๋ณ„๋ช…์„ ํ˜ผ์šฉํ•  ์ˆ˜ ์—†์Œ
  • ํ…Œ์ด๋ธ”์˜ ๋ณ„๋ช…์€ ํ•ด๋‹น SQL ๋ช…๋ น๋ฌธ ๋‚ด์—์„œ๋งŒ ์œ ํšจ

 

AND ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ถ”๊ฐ€

- WHERE์ ˆ์—์„œ ์กฐ์ธ ์กฐ๊ฑด์€ AND์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜์ ์ธ ๊ฒ€์ƒ‰ ์กฐ๊ฑด๊ณผ ๊ฒฐํ•ฉ ๊ฐ€๋Šฅ

- ์ผ๋ฐ˜ ๊ฒ€์ƒ‰ ์กฐ๊ฑด ์ถ”๊ฐ€๋Š” ์กฐ์ธ ๋Œ€์ƒ ์ง‘ํ•ฉ์„ ์ค„์—ฌ ์กฐ์ธ์˜ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ๋„์›€

 


์นดํ‹ฐ์…˜ ๊ณฑ

- ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ํ–‰์„ ๋ชจ๋‘ ๊ฒฐํ•ฉ

- WHERE์ ˆ์—์„œ ์กฐ์ธ ์กฐ๊ฑด์ ˆ์„ ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป ์„ค์ •ํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒ

- ๊ฐ ํ…Œ์ด๋ธ”์˜ ํ–‰์˜ ์ˆ˜๋ฅผ ๊ณฑํ•œ ๋งŒํผ ์กฐ์ธ ๊ฒฐ๊ณผ ์ƒ์„ฑ

- ๋Œ€์šฉ๋Ÿ‰ ํ…Œ์ด๋ธ”์—์„œ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ SQL๋ช…๋ น๋ฌธ ์ฒ˜๋ฆฌ์†๋„ ์ €ํ•˜

select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from [ํ…Œ์ด๋ธ”1, ํ…Œ์ด๋ธ”2 | ํ…Œ์ด๋ธ”1 cross join ํ…Œ์ด๋ธ”2]


EQUI JOIN

- ์กฐ์ธ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์—์„œ ๊ณตํ†ต ์นผ๋Ÿผ์„ ' = '(equal) ๋น„๊ต๋ฅผ ํ†ตํ•ด ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ–‰์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์กฐ์ธ ๋ฐฉ๋ฒ•

- SQL ๋ช…๋ น๋ฌธ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ

- ์กฐ์ธ ์• ํŠธ๋ฆฌ๋ทฐํŠธ : EQUI JOIN์—์„œ ์—ฐ๊ฒฐ ๊ณ ๋ฆฌ๊ฐ€ ๋˜๋Š” ๊ณตํ†ต ์นผ๋Ÿผ

# ์˜ค๋ผํด ํ‘œ์ค€ ๋ฐฉ์‹
select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ”1, ํ…Œ์ด๋ธ”2
where ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, = ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…

โ–ช from : ์กฐ์ธ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ˆ , ํ…Œ์ด๋ธ”์€ ์ฝค๋งˆ( , )๋กœ ๊ตฌ๋ถ„

โ–ช where : ์กฐ์ธ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์™€ ' = ' ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ธ ์กฐ๊ฑด์„ ๊ธฐ์ˆ ํ•œ๋‹ค

# ANSI ํ‘œ์ค€ ๋ฐฉ์‹
select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ”1 join ํ…Œ์ด๋ธ”2 on ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช… = ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…

 

EQUI JOIN - NATURAL JOIN

- WHERE์ ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  NATURAL JOIN ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ

- ์˜ค๋ผํด์—์„œ ์ž๋™์ ์œผ๋กœ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์นผ๋Ÿผ์„ ๋Œ€์ƒ์œผ๋กœ ๊ณตํ†ต ์นผ๋Ÿผ์„ ์กฐ์‚ฌํ•œ ํ›„, ๋‚ด๋ถ€์ ์œผ๋กœ ์กฐ์ธ๋ฌธ ์ƒ์„ฑ

select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ”1 natural join ํ…Œ์ด๋ธ”2;

โ–ช ์กฐ์ธ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์— ํ…Œ์ด๋ธ” ๋ณ„๋ช…์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ

 

EQUI JOIN - JOIN ~ USING

- USING์ ˆ์— ์กฐ์ธ ๋Œ€์ƒ ์นผ๋Ÿผ์„ ์ง€์ •

- ์นผ๋Ÿผ ์ด๋ฆ„์€ ์กฐ์ธ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์ •์˜

select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ”1 JOIN ํ…Œ์ด๋ธ”2 
     using (๊ณตํ†ต์นผ๋Ÿผ๋ช…);

โ–ช ์กฐ์ธ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์— ํ…Œ์ด๋ธ” ๋ณ„๋ช…์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ


NON-EQUI JOIN 

- ' < ', BETWEEN a AND b์™€ ๊ฐ™์ด ' = ' ์กฐ๊ฑด์ด ์•„๋‹Œ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

- ๋ฒ”์œ„ ์‚ฌ์šฉ <, >, <=, >=


OUTER JOIN

-  EQUI JOIN์€ ์กฐ์ธ ์กฐ๊ฑด์—์„œ ์–‘์ธก ์นผ๋Ÿผ ๊ฐ’ ์ค‘, ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ NULL์ด๋ฉด ' = ' ๋น„๊ต ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“์ด ๋˜์–ด

   NULL ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰์€ ์กฐ์ธ ๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅ ๋ถˆ๊ฐ€๋Šฅ

- ์–‘์ธก ์นผ๋Ÿผ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๊ฐ€ NULL์ด์ง€๋งŒ ์กฐ์ธ ๊ฒฐ๊ณผ๋กœ ์ถœ๋ ฅํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ  OUTER JOIN ์‚ฌ์šฉ

 

> (+) ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•œ OUTER JOIN   

- ์˜ค๋ผํด ํ‘œ์ค€ ๋ฐฉ์‹

- WHERE์ ˆ์˜ ์กฐ์ธ ์กฐ๊ฑด์—์„œ OUTER JOIN ์—ฐ์‚ฐ์ž์ธ (+) ๊ธฐํ˜ธ ์‚ฌ์šฉ

- ์กฐ์ธ ์กฐ๊ฑด๋ฌธ์—์„œ NULL์ด ์ถœ๋ ฅ๋˜๋Š” ์นผ๋Ÿผ์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ์— (+) ๊ธฐํ˜ธ ์ถ”๊ฐ€

select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ”1, ํ…Œ์ด๋ธ”2
where ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…(+) = ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
    ๋˜๋Š” ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช… = ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…(+)

โ–ช NULL์ด ์กด์žฌํ•˜๋Š” ์นผ๋Ÿผ์ชฝ์— (+) ํ‘œ์‹œ

โ–ช IN ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ ๋ถˆ๊ฐ€

โ–ช OR ์—ฐ์‚ฐ์ž ๊ฒฐํ•ฉ ๋ถˆ๊ฐ€

โ–ช ์–‘์ชฝ์— (+) ์ค„ ์ˆ˜ ์—†์Œ

 

> OUTER JOIN ~ ON์ ˆ ์‚ฌ์šฉํ•œ OUTER JOIN

- ANSI ํ‘œ์ค€ ๋ฐฉ์‹

- ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ๋‚˜์˜ค๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋Š” ์นผ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ left(์™ผ), right(์˜ค), full(์–‘์ชฝ ๋‹ค)

select ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช…, ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ”1 [right | left | full] outer join ํ…Œ์ด๋ธ”2
on ํ…Œ์ด๋ธ”1.์นผ๋Ÿผ๋ช… = ํ…Œ์ด๋ธ”2.์นผ๋Ÿผ๋ช…

โ–ช ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์˜ฌ ํ…Œ์ด๋ธ” ๋ฐฉํ–ฅ์œผ๋กœ OUTER JOIN๋ฌธ ์ž‘์„ฑ

 

> > FULL OUTER JOIN

- LEFT OUTER JOIN๊ณผ RIGHT OUTER JOIN์„ ๋™์‹œ์— ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ ์ถœ๋ ฅ (UNION ํ•ฉ์ง‘ํ•ฉ)

- ์˜ค๋ผํด ๋ฐฉ์‹ (+) ์—์„œ๋Š” FULL OUTER JOIN ์—†์Œ


SELF JOIN

ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ” ๋‚ด์— ์žˆ๋Š” ์นผ๋Ÿผ๋ผ๋ฆฌ ์—ฐ๊ฒฐํ•˜๋Š” ์กฐ์ธ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ

- ์กฐ์ธ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์ด ์ž์‹ 

 

> WHERE ์ ˆ์„ ์‚ฌ์šฉํ•œ SELF JOIN

- ํ•œ ํ…Œ์ด๋ธ”์—์„œ ๋‘ ๊ฐœ์˜ ์นผ๋Ÿผ์„ ์—ฐ๊ฒฐํ•˜์—ฌ EQUI JOIN

- FROM์ ˆ์—์„œ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ํ…Œ์ด๋ธ” ๋ณ„๋ช… ์ง€์ •

select ๋ณ„์นญ1.์นผ๋Ÿผ๋ช…, ๋ณ„์นญ2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ” ๋ณ„์นญ1, ํ…Œ์ด๋ธ” ๋ณ„์นญ2
where ๋ณ„์นญ1.์นผ๋Ÿผ๋ช… = ๋ณ„์นญ2.์นผ๋Ÿผ๋ช…;

 

> JOIN ~ ON์ ˆ ์‚ฌ์šฉํ•œ SELF JOIN

select ๋ณ„์นญ1.์นผ๋Ÿผ๋ช…, ๋ณ„์นญ2.์นผ๋Ÿผ๋ช…
from ํ…Œ์ด๋ธ” ๋ณ„์นญ1 join ํ…Œ์ด๋ธ” ๋ณ„์นญ2
on ๋ณ„์นญ1.์นผ๋Ÿผ๋ช… = ๋ณ„์นญ2.์นผ๋Ÿผ๋ช…;

 

 

 

 

 

 


์ฐธ๊ณ ๋„์„œ : ์˜ค๋ผํด ์ค‘์‹ฌ์˜ SQL๋ฐฐ์›€ํ„ฐ, ์šฐ์šฉํƒœ ์™ธ ๊ณต์ €, ์ƒ๋Šฅ์ถœํŒ์‚ฌ, 2007๋…„

๋ฐ˜์‘ํ˜•

BELATED ARTICLES

more