Search

MySQL ํ•จ์ˆ˜

MySQL ํ•จ์ˆ˜

MySQL ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์˜์ƒ์ž…๋‹ˆ๋‹ค! ํ•จ์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ „ ์˜ˆ์ œ๋กœ ์‚ฌ์›์˜ ์›”๊ธ‰ ๊ณ„์‚ฐ, ๊ทผ๋ฌด ๊ธฐ๊ฐ„ ๊ณ„์‚ฐ, ๋ถ€์„œ ์ด๋ฆ„ ์กฐํšŒ ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ณด๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ์ž์„ธํžˆ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

1.
MySQL ํ•จ์ˆ˜๋ž€? [00:00:26]
2.
ํ•จ์ˆ˜ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง• [00:01:07]
3.
์‹ค์ „ ์˜ˆ์ œ1: ์›”๊ธ‰ ๊ณ„์‚ฐ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ [00:02:23]
4.
ํ•จ์ˆ˜ ์ •์˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ • [00:05:15]
5.
ํ•จ์ˆ˜ ์„ฑ๋Šฅ๊ณผ ์ฃผ์˜์  ์ด์•ผ๊ธฐ [00:11:31]
6.
์‹ค์ „ ์˜ˆ์ œ2: ๊ทผ๋ฌด ๊ธฐ๊ฐ„ ๊ณ„์‚ฐ ํ•จ์ˆ˜ [00:16:11]
7.
์‹ค์ „ ์˜ˆ์ œ3: ๋ถ€์„œ ์ด๋ฆ„ ์กฐํšŒ ํ•จ์ˆ˜ [00:18:53]
8.
๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ [00:25:06]

MySQL ํ•จ์ˆ˜๋ž€? [00:00:26]

ํ•จ์ˆ˜๋Š” ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์„ ํ•˜๋‚˜ ๋Œ๋ ค์ฃผ๋Š” ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ด์—์š”. ํ”„๋กœ์‹œ์ €์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๊ณ , SELECT ๋ฌธ ์•ˆ์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๋‹ฌ๋ผ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์›์˜ ์›”๊ธ‰์„ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜ ๊ทผ๋ฌด ๊ธฐ๊ฐ„์„ ๊ตฌํ•  ๋•Œ ์“ธ ์ˆ˜ ์žˆ์ฃ .

ํ•จ์ˆ˜ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ ํŠน์ง• [00:01:07]

โ€ข
CREATE FUNCTION ํ•จ์ˆ˜์ด๋ฆ„(ํŒŒ๋ผ๋ฏธํ„ฐ)ย ํ˜•์‹์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
โ€ข
๋ฐ˜ํ™˜ ํƒ€์ž…(์˜ˆ: INT, VARCHAR)์„ ์ง€์ •ํ•ด์•ผ ํ•ด์š”.
โ€ข
ํ•จ์ˆ˜ ์•ˆ์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐํ•œ ๋’คย RETURN์œผ๋กœ ๊ฐ’์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.
โ€ข
ํ•จ์ˆ˜๋Š” IN ํŒŒ๋ผ๋ฏธํ„ฐ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ , ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋‚˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ตฌ๋ฌธ์€ ์“ธ ์ˆ˜ ์—†์–ด์š”.
โ€ข
ํ•จ์ˆ˜๋Š” SELECT ๋ฌธ์—์„œ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•ด์š”.

์‹ค์ „ ์˜ˆ์ œ1: ์›”๊ธ‰ ๊ณ„์‚ฐ ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ [00:02:23]

โ€ข
์‚ฌ์›์˜ ์—ฐ๋ด‰์„ ์›”๊ธ‰์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜์˜ˆ์š”.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฐ๋ด‰์„ 12๋กœ ๋‚˜๋ˆ„๋ฉด ์›”๊ธ‰์ด ๋‚˜์˜ค๊ฒ ์ฃ ?
โ€ข
ํ•จ์ˆ˜ ์ด๋ฆ„์€ย calculate_monthly_salary๋กœ ์ •ํ•˜๊ณ , ์‚ฌ์› ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์›”๊ธ‰์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ์ •์˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ • [00:05:15]

โ€ข
์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ด์„œ MySQL์— ๋ถ™์—ฌ๋„ฃ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.
โ€ข
ํ•จ์ˆ˜๊ฐ€ ์ž˜ ๋งŒ๋“ค์–ด์กŒ๋Š”์ง€ย SHOW FUNCTION STATUS๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ํŽ‘์…˜ ๋ชฉ๋ก์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.
โ€ข
ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š”ย SELECT calculate_monthly_salary(์‚ฌ์›๋ฒˆํ˜ธ);์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์‹ค์ œ ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๋ช…๊ณผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์ด ๊ฒน์น˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋ฏ€๋กœ ์ด๋ฆ„์„ ๋‹ค๋ฅด๊ฒŒ ์ง€์ •ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•ด์š”.

ํ•จ์ˆ˜ ์„ฑ๋Šฅ๊ณผ ์ฃผ์˜์  ์ด์•ผ๊ธฐ [00:11:31]

โ€ข
ํ•จ์ˆ˜๋Š” ํŽธ๋ฆฌํ•˜์ง€๋งŒ, ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๋ฉด ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์–ด์š”.
โ€ข
์˜ˆ๋ฅผ ๋“ค์–ด, 20๋งŒ ๋ช… ์‚ฌ์›์˜ ์›”๊ธ‰์„ ํ•จ์ˆ˜๋กœ ์ผ์ผ์ด ๊ณ„์‚ฐํ•˜๋ฉด 1๋ถ„ ์ด์ƒ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
๊ทธ๋ž˜์„œ ์‹ค์ œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ํ•จ์ˆ˜ ๋Œ€์‹  ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ํ•จ์ˆ˜๋กœ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์š”.

์‹ค์ „ ์˜ˆ์ œ2: ๊ทผ๋ฌด ๊ธฐ๊ฐ„ ๊ณ„์‚ฐ ํ•จ์ˆ˜ [00:16:11]

โ€ข
์‚ฌ์›์˜ ์ž…์‚ฌ์ผ๊ณผ ํ˜„์žฌ ๋‚ ์งœ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•ด ๊ทผ๋ฌด ์—ฐ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
โ€ข
TIMESTAMPDIFFย ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‘ ๋‚ ์งœ ์‚ฌ์ด์˜ ์—ฐ๋„ ์ฐจ์ด๋ฅผ ๊ตฌํ•˜๊ณ , ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ด์š”.
โ€ข
ํ•จ์ˆ˜ ์ด๋ฆ„์€ย calculate_years_of_service๋กœ ์ •ํ•˜๊ณ , ์‚ฌ์› ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

์‹ค์ „ ์˜ˆ์ œ3: ๋ถ€์„œ ์ด๋ฆ„ ์กฐํšŒ ํ•จ์ˆ˜ [00:18:53]

โ€ข
๋ถ€์„œ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ถ€์„œ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
โ€ข
ํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ๋ช…๊ณผ ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ๋ณ€์ˆ˜๋ช…์„ ๋ฐ”๊ฟ”์„œ ํ˜ผ๋™์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ด์š”.
โ€ข
์กฐ์ธ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฟผ๋ฆฌ๋ฅผ ์ ์ ˆํžˆ ์ž‘์„ฑํ•ด ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ [00:25:06]

โ€ข
MySQL ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ๋ฐ˜๋ณต์ ์ธ ๊ณ„์‚ฐ์ด๋‚˜ ์กฐํšŒ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
โ€ข
ํ•˜์ง€๋งŒ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•ด์•ผ ํ•ด์š”.
โ€ข
ํ•จ์ˆ˜ ์ž‘์„ฑ ์‹œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…๊ณผ ์ปฌ๋Ÿผ๋ช…์ด ๊ฒน์น˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜๊ณ , ๋ฐ˜ํ™˜ ํƒ€์ž…๊ณผ ์˜ต์…˜์„ ์ž˜ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
์‹ค์ „ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์›”๊ธ‰ ๊ณ„์‚ฐ, ๊ทผ๋ฌด ๊ธฐ๊ฐ„ ๊ณ„์‚ฐ, ๋ถ€์„œ ์ด๋ฆ„ ์กฐํšŒ ํ•จ์ˆ˜๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๋ณด๋ฉด์„œ ์ดํ•ด๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ์˜์ƒ์œผ๋กœ MySQL ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์ „ ํ™œ์šฉ๋ฒ•๊นŒ์ง€ ์‰ฝ๊ฒŒ ์ตํž ์ˆ˜ ์žˆ์–ด์š”! ํ•จ์ˆ˜๋Š” ๋งˆ์น˜ ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ์ฒ˜๋Ÿผ, ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š” ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์›Œ์š”. ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด ๋ณด์„ธ์š”!