๐Ÿ“ŠSQL ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

hamsangยท2022๋…„ 5์›” 8์ผ
1

SQLD

๋ชฉ๋ก ๋ณด๊ธฐ
1/4
post-thumbnail

๐Ÿ“‚ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด

  • SELECT ์†์„ฑ ์ด๋ฆ„
  • FROM ํ…Œ์ด๋ธ” ์ด๋ฆ„
  • WHERE ์กฐ๊ฑด
  • GROUP BY ์†์„ฑ ์ด๋ฆ„
  • HAVING ๊ฒ€์ƒ‰ ์กฐ๊ฑด
  • ORDER BY ์†์„ฑ ์ด๋ฆ„ (ASC | DESC)

์™ธ๋ถ€ ๋ธ”๋กœ๊ทธ ์ž์„ธํ•œ ์„ค๋ช…


๐Ÿ“Š SELECT

  • ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ
  • AS : SELECT๋กœ ์„ ํƒํ•œ Column์— ๋ณ„์นญ์„ ๋ถ€์—ฌํ•œ๋‹ค. ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์ด ์ถœ๋ ฅ๋  ๋•Œ Column ์ด๋ฆ„์€ ๋ณ„์นญ์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค.

๐Ÿ“Œ ์ง‘๊ณ„ํ•จ์ˆ˜

๊ทธ๋ฃน์˜ row๋ฅผ ๋‹จ์ผ ๊ฐ’์œผ๋กœ ์š”์•ฝํ•˜๋Š” ํ•จ์ˆ˜ (SELECT๋ฌธ๊ณผ ์‚ฌ์šฉ)
์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

์ง‘๊ณ„ํ•จ์ˆ˜๋ฌธ๋ฒ•์‚ฌ์šฉ์˜ˆ
SUM ํ•ฉSUM(์†์„ฑ์ด๋ฆ„)SUM(price)
AVG ํ‰๊ท AVG(์†์„ฑ์ด๋ฆ„)AVG(price)
COUNT ๊ฐฏ์ˆ˜COUNT(์†์„ฑ์ด๋ฆ„)COUNT(price)
MAX ์ตœ๋Œ“๊ฐ’MAX(์†์„ฑ์ด๋ฆ„)MAX(price)
MIN ์ตœ์†Ÿ๊ฐ’MIN(์†์„ฑ์ด๋ฆ„)MIN(price)

์™ธ๋ถ€ velog ์ž์„ธํ•œ ์„ค๋ช…

COUNT: ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์…ˆ
SUM: ์ˆซ์ž ๊ฐ’์„ ๋‹ด๋Š” Column์˜ ๋ฐ์ดํ„ฐ ์ด ํ•ฉ์„ ๊ณ„์‚ฐ
AVG: ์ˆซ์ž ๊ฐ’์„ ๋‹ด๋Š” Column์˜ ๋ฐ์ดํ„ฐ ํ‰๊ท  ๊ฐ’์„ ๊ณ„์‚ฐ
MAX: ํ•ด๋‹น Column์˜ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๋ฐ˜ํ™˜
MIN: ํ•ด๋‹น Column์˜ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๋ฐ˜ํ™˜

DISTINCT : ์ค‘๋ณต ์ œ๊ฑฐ

  • COUNT (DISTINCT ์†์„ฑ๋ช…)
  • COUNT์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉฐ NULL๊ฐ’์€ ์„ธ์ง€ ์•Š๋Š”๋‹ค.

๐Ÿ“Š FROM

  • ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ํ…Œ์ด๋ธ” ์ง€์ •
  • JOIN ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด PK, FK (์ผ๋Œ€๋‹ค ๊ด€๊ณ„), ์ฆ‰ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์—ฎ์–ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ“Œ JOIN


๐Ÿ“Š WHERE(์กฐ๊ฑด)์ ˆ

์ข…๋ฅ˜๋ฌธ๋ฒ•์˜ˆ์‹œ
๋น„๊ต=, <=, >=, != ๋“ฑ๋“ฑ
๋ฒ”์œ„BETWEEN( price BETWEEN 10000 AND 20000 )
์ง‘ํ•ฉIN, NOT IN(price IN (10000,20000,30000)
ํŒจํ„ดLIKE(bookname LIKE '์ถ•๊ตฌ์˜ ์—ญ์‚ฌ')
NULLIS NULL, IS NOT NULL(price IS NULL)
๋ณตํ•ฉ์กฐ๊ฑดAND, OR, NOT(price < 20000) AND (bookname LIKE '์ถ•๊ตฌ์˜ ์—ญ์‚ฌ')

๐Ÿ“Œ LIKE์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ์™€์ผ๋“œ ๋ฌธ์ž

๋ฌธ์ž์—ด ๋น„๊ต, WHERE ๊ตฌ๋ฌธ ์•ˆ์— ์œ„์น˜

์™€์ผ๋“œ ๋ฌธ์ž์˜๋ฏธ์‚ฌ์šฉ์˜ˆ
+๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐ(' ๊ณจํ”„' + '๋ฐ”์ด๋ธ”' : '๊ณจํ”„ ๋ฐ”์ด๋ธ”')
%0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜('%์ถ•๊ตฌ%' : ์ถ•๊ตฌ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด)
_ํŠน์ • ์œ„์น˜์˜ 1๊ฐœ์˜ ๋ฌธ์ž์™€ ์ผ์น˜'_๊ตฌ%' : ๋‘ ๋ฒˆ์งธ ์œ„์น˜์— '๊ตฌ'๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ž์—ด

๐Ÿ“Š GROUP BY

SQL์—์„œ ์œ ํ˜•๋ณ„๋กœ ๊ฐฏ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์„ ๋•Œ, ๋‹จ์ˆœํžˆ COUNT ํ•จ์ˆ˜๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋ฉด ์ „์ฒด ๊ฐฏ์ˆ˜๋ฐ–์— ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ•œ๋‹ค. ๋•Œ๋ฌธ์— ์œ ํ˜•๋ณ„๋กœ ๊ฐฏ์ˆ˜๋ฅผ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ๋Š” ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™” ํ•  ์ˆ˜ ์žˆ๋Š” GROUP BY๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

  • GROUP BY : ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ทธ๋ฃนํ™”
  • HAVING : ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ทธ๋ฃนํ™”ํ•œ ๊ฒฐ๊ณผ์— ์กฐ๊ฑด์„ ๊ฑด๋‹ค

GROUP BY ์ฐธ๊ณ - ํ™•์žฅํ˜• ๋‡Œ ์ €์žฅ์†Œ


๐Ÿ“Š ORDER BY

๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์ด๋‚˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

  • ASC ์˜ค๋ฆ„์ฐจ์ˆœ (Default ๊ฐ’์ด๋ฏ€๋กœ ์ƒ๋žต ๊ฐ€๋Šฅํ•˜๋‹ค.)
  • DESC ๋‚ด๋ฆผ์ฐจ์ˆœ
profile
ํ–„์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€