MySQL ํจ์
MySQL ํจ์์ ๋ํด ์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์์์
๋๋ค! ํจ์๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ๋ง๋๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค์ ์์ ๋ก ์ฌ์์ ์๊ธ ๊ณ์ฐ, ๊ทผ๋ฌด ๊ธฐ๊ฐ ๊ณ์ฐ, ๋ถ์ ์ด๋ฆ ์กฐํ ํจ์๋ฅผ ์ง์ ๋ง๋ค์ด ๋ณด๊ณ ํธ์ถํ๋ ๋ฐฉ๋ฒ๊น์ง ์์ธํ ์๋ ค์ค๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
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 ํจ์์ ๊ธฐ๋ณธ ๊ฐ๋
๋ถํฐ ์ค์ ํ์ฉ๋ฒ๊น์ง ์ฝ๊ฒ ์ตํ ์ ์์ด์! ํจ์๋ ๋ง์น ์๋ฆฌ ๋ ์ํผ์ฒ๋ผ, ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ์์ ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํด๊ฐ ์ฌ์์. ํ์ํ ๋๋ง๋ค ํจ์ ํธ์ถ๋ก ๊ฐํธํ๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํด ๋ณด์ธ์!