Data ์•„ํ‹ฐํด

[์•„ํ‹ฐํด] SQL ๊ฐ€๋…์„ฑ์„ ๋†’ํžˆ๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€ ์‚ฌ์†Œํ•œ ์Šต๊ด€

0๏ธโƒฃ 2025. 12. 29. 23:13

<์ฃผ์ œ>

https://yozm.wishket.com/magazine/detail/1519/

 

SQL ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€ ์‚ฌ์†Œํ•œ ์Šต๊ด€ | ์š”์ฆ˜IT

์ง€๋…ํ•˜๊ฒŒ ์ฝ๊ธฐ ํž˜๋“  SQL ๋ฌธ์„ ํ•ด์„ํ•ด ๋ณธ ์  ์žˆ์œผ์‹ ๊ฐ€์š”? ๋งˆ์น˜ ์•”ํ˜ธ๋ฅผ ์ฝ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์„ ์ฒ˜๋Ÿผ ๋“ค์—ฌ์“ฐ๊ธฐ์™€ ๋„์–ด์“ฐ๊ธฐ๋ฅผ ๋ฌธ๋ฒ•์ ์œผ๋กœ ๊ฐ•์ œํ•˜๋Š” ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด ๋ดค๋‹ค๋ฉด SQL์˜ ์ž์œ ๋กœ์›€์—

yozm.wishket.com

  • ๊ฐ€๋…์„ฑ ์žˆ๋Š” SQL ๋ฌธ์„ ์ ๊ธฐ ์œ„ํ•œ ๋‹ค์„ฏ๊ฐ€์ง€ ์Šต๊ด€

<๋‚ด์šฉ ์ •๋ฆฌ>

# ๊ฐ€๋…์„ฑ ์žˆ๋Š” SQL ๋ฌธ์„ ์ ๊ธฐ ์œ„ํ•œ ์Šต๊ด€

  • ์˜ˆ์•ฝ์–ด, ํ•จ์ˆ˜๋Š” ๋Œ€๋ฌธ์ž๋กœ (select, from, group by, having, as, and ๋“ฑ)
  • ํ–‰๊ฐˆ์ด๋ฅผ ์ž์ฃผ ํ•˜์ž
    • (๐ŸฏTip!) select์—์„œ column ์ ์„ ๋•Œ ์ค„๋ฐ”๊ฟˆ ํ•˜๊ณ , ๊ฑฐ๊ธฐ์„œ ์‰ผํ‘œ(,) ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ๋ถ„ ์‰ฝ๊ณ  ๋นผ๋จน์„ ์ผ ์ ์Œ.
    • (๐ŸฏTip!) select์˜ column, ์กฐ๊ฑด ๋“ฑ ์ ์–ด๋‘๊ณ  ์ž ์‹œ ์ตœ์ข… ์ถœ๋ ฅ์—์„œ ์ œ์™ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์ฃผ์„๊ธฐํ˜ธ(--)๋กœ ๋ฐ”๋กœ๋ฐ”๋กœ ๋บ„ ์ˆ˜ ์žˆ์Œ.
    • (๐ŸฏTip!) where์— '1=1' ๊ฐ™์€ ๊ฒฐ๊ณผ์— ์ƒ๊ด€ ์—†๋Š” ์•„๋ฌด ์กฐ๊ฑด์„ ์ ๊ณ , ๋‹ค์Œ์ค„ 'and'์—์„œ ์ง„์งœ ํ•„ํ„ฐ๋ง ์กฐ๊ฑด์„ ์“ฐ๊ธฐ๋„ ํ•จ.
select day
       , time
       , sum(total_bill)
from tips
where 1=1
-- and sex = 'Femaie'
and smoker = 'Yes'
group by day
        , time
  • ์ฃผ์„์„ ์“ฐ์ž
    ์ฝ”๋“œ๋ฅผ ์“ด ์˜๋„๋ฅผ ์งง๊ฒŒ ์ ์–ด ๋†“๋Š” ์Šต๊ด€์„ ๋“ค์ด๋Š” ๊ฒƒ์ด ์ข‹์Œ.
    ์กฐ๊ฑด์ด ์™œ ํ•„์š”ํ•œ์ง€(why) + ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€(how) ๊ฐ™์€ ๋‚ด์šฉ์„ ์ž์„ธํžˆ ์ ๊ธฐ
    (๐ŸฏTip!) ์ฃผ์„ ๋‹จ์œ„: ์„œ๋ธŒ์ฟผ๋ฆฌ, case, if, where
  • Alias(๋ณ„์นญ)์„ ์ž˜ ์“ฐ์ž
๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฑด,
๊ฐ™์ด ์ผํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ํ•ฉ์˜๋œ ๊ทœ์น™!