MySQL NULL ๊ด๋ จ ํจ์ ์ฝ๊ฒ ์ดํดํ๊ธฐ! 
์ด๋ฒ ์์์์๋ MySQL์์ ์์ฃผ ๋ง์ฃผ์น๋ย NULL ๊ฐ๊ณผ ์ด๋ฅผ ๋ค๋ฃจ๋ ์ฌ๋ฌ ํจ์๋ค์ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ๋ฐฐ์๋ด
๋๋ค. ํนํ, NULL ๋๋ฌธ์ ๊ณ์ฐ์ด ๊ผฌ์ด์ง ์๋๋ก ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ค๋ฌด์์ ์์ฃผ ์ฐ์ด๋ ํจ์๋ค์ ์์์ ํจ๊ป ์ค๋ช
ํด์.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
NULL ๊ฐ๊ณผ IFNULL ํจ์ ์๊ฐ [00:00:15]
โข
NULL์ ๋ฐ์ดํฐ๊ฐ ์๊ฑฐ๋ ๊ฐ์ด ๋น์ด์๋ค๋ ๋ป์ด์์. ์๋ฅผ ๋ค์ด, ์ด๋ค ์ง์์ ์ปค๋ฏธ์
์ด ์์ง ์ ํด์ง์ง ์์ ๋น ๊ฐ์ผ ๋ NULL์ด ๋ฉ๋๋ค.
โข
IFNULL(๊ฐ, ๋์ฒด๊ฐ)ย ํจ์๋ ๊ฐ์ด NULL์ด๋ฉด ๋์ฒด๊ฐ์ ๋์ ์จ์ ์ถ๋ ฅํด ์ค๋๋ค.
โฆ
์:ย IFNULL(์ปค๋ฏธ์
, 0)ย โ ์ปค๋ฏธ์
์ด NULL์ด๋ฉด 0์ผ๋ก ๋ฐ๊ฟ์ ๊ณ์ฐํด์.
โข
์ด๋ ๊ฒ ํ๋ฉด NULL ๋๋ฌธ์ ๊ณ์ฐ์ด ์ ๋๋ ๋ฌธ์ ๋ฅผ ๋ง์ ์ ์์ต๋๋ค.
์ค์ต: ์ํ๋ก์ด์ฆ ํ
์ด๋ธ๊ณผ NULL ๋ฌธ์ ํด๊ฒฐํ๊ธฐ [00:01:29]
โข
์์๋ก ์ง์๋ค์ ์๊ธ, ์ปค๋ฏธ์
๋น์จ, ๋ณด๋์ค๊ฐ ์๋ ํ
์ด๋ธ์ ๋ง๋ญ๋๋ค.
โข
์ปค๋ฏธ์
์ด๋ ๋ณด๋์ค๊ฐ NULL์ธ ์ง์์ด ์์ ๋, ๊ทธ๋ฅ ๊ณ์ฐํ๋ฉด ๊ฒฐ๊ณผ๋ NULL์ด ๋์ด๋ฒ๋ ค์.
โข
๊ทธ๋์ IFNULL ํจ์๋ฅผ ์จ์ NULL์ 0์ผ๋ก ๋ฐ๊ฟ์ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์ค์ตํฉ๋๋ค.
โข
์)ย ์ต์ข
์๊ธ = ์๊ธ + (์๊ธ * IFNULL(์ปค๋ฏธ์
, 0))
IFNULL ํจ์ ํ์ฉ๋ฒ๊ณผ ์์ [00:06:33]
โข
IFNULL ํจ์๋ NULL ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋์ฒดํ ๋ ์์ฃผ ์ ์ฉํด์.
โข
์๋ฅผ ๋ค์ด, ์ปค๋ฏธ์
์ด NULL์ด๋ฉด 0์ผ๋ก ๋ฐ๊ฟ์ ์๊ธ ๊ณ์ฐ์ ๋ฌธ์ ์๊ฒ ๋ง๋ญ๋๋ค.
โข
์ด๋ ๊ฒ ํ๋ฉด ์ปค๋ฏธ์
์ด ์๋ ์ง์๋ ๊ธฐ๋ณธ ์๊ธ์ ์ ๋๋ก ๋ฐ์ ์ ์์ฃ .
โข
์ ๋ ฌํ ๋๋ ๊ณ์ฐ๋ ์ต์ข
์๊ธ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ ์ ์์ต๋๋ค.
NULL ๊ด๋ จ ํจ์: NULLIF์ COALESCE ์๊ฐ [00:13:01]
โข
NULLIF(๊ฐ1, ๊ฐ2)ย ํจ์๋ ๋ ๊ฐ์ด ๊ฐ์ผ๋ฉด NULL์ ๋ฐํํ๊ณ , ๋ค๋ฅด๋ฉด ๊ฐ1์ ๋ฐํํด์.
โฆ
์:ย NULLIF(๊ธ์ฌ, 3300000)ย โ ๊ธ์ฌ๊ฐ 330๋ง ์์ด๋ฉด NULL, ์๋๋ฉด ๊ธ์ฌ๊ฐ ์ถ๋ ฅ.
โข
COALESCE(๊ฐ1, ๊ฐ2, ...)ย ํจ์๋ ์ฌ๋ฌ ๊ฐ ์ค์์ NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ ๋ฐํํด์.
โฆ
์:ย COALESCE(์ปค๋ฏธ์
, ๋ณด๋์ค, 0)ย โ ์ปค๋ฏธ์
์ด NULL์ด๋ฉด ๋ณด๋์ค, ๋ ๋ค NULL์ด๋ฉด 0 ์ถ๋ ฅ.
COALESCE ํจ์๋ก ์ฌ๋ฌ ์ปฌ๋ผ ์ค ์ฒซ ๋ฒ์งธ NULL ์๋ ๊ฐ ์ฐพ๊ธฐ [00:16:11]
โข
COALESCE๋ ์ฌ๋ฌ ์ปฌ๋ผ์ ์ฐจ๋ก๋ก ๊ฒ์ฌํด์ NULL์ด ์๋ ๊ฐ์ ์ฐพ์์ค๋๋ค.
โข
์๋ฅผ ๋ค์ด, ์ปค๋ฏธ์
๊ณผ ๋ณด๋์ค ์ค ํ๋๋ผ๋ ์์ผ๋ฉด ๊ทธ ๊ฐ์ ์ถ๋ ฅํ๊ณ , ๋ ๋ค ์์ผ๋ฉด 0์ ์ถ๋ ฅํ ์ ์์ด์.
โข
์ค๋ฌด์์ ์ฌ๋ฌ ์ต์
์ค ๊ฐ์ด ์๋ ๊ฑธ ์ฐพ์ ๋ ์์ฃผ ํธ๋ฆฌํฉ๋๋ค.
์ค์ ์์ : ์ปค๋ฏธ์
๊ณผ ๋ณด๋์ค ๊ณ์ฐํ๊ธฐ [00:17:05]
โข
์ง์๋ณ๋ก 1๋
๋์ ๋ฐ๋ ์๋น์ ๊ณ์ฐํด๋ด
๋๋ค.
โข
์ปค๋ฏธ์
์ด ์์ผ๋ฉดย ์๊ธ * ์ปค๋ฏธ์
* 12๋ฅผ ๊ณ์ฐํ๊ณ , ์์ผ๋ฉด ๋ณด๋์ค๋ฅผ ์ถ๋ ฅ.
โข
COALESCE๋ฅผ ์ฌ์ฉํด ์ปค๋ฏธ์
๊ณผ ๋ณด๋์ค ์ค ์๋ ๊ฐ์ ๊ณจ๋ผ์ ์ถ๋ ฅํฉ๋๋ค.
โข
NULL ๋๋ฌธ์ ๊ณ์ฐ์ด ์ ๋๋ ๋ฌธ์ ๋ฅผ IFNULL๊ณผ COALESCE๋ก ๊น๋ํ๊ฒ ํด๊ฒฐํฉ๋๋ค.
๋ง๋ฌด๋ฆฌ ์ ๋ฆฌ์ ์์ฝ [00:24:15]
โข
MySQL์์ NULL ๊ฐ์ ๊ณ์ฐ๊ณผ ์ถ๋ ฅ์ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ด์.
โข
IFNULL ํจ์๋ก NULL ๊ฐ์ ์ํ๋ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ ๋ฌธ์ ๋ฅผ ์๋ฐฉํ ์ ์์ต๋๋ค.
โข
NULLIF๋ ํน์ ๊ฐ๊ณผ ๊ฐ์ผ๋ฉด NULL๋ก ๋ฐ๊พธ๊ณ ์ถ์ ๋ ์ฐ๊ณ ,
โข
COALESCE๋ ์ฌ๋ฌ ๊ฐ ์ค NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ ์ฐพ์ ๋ ์ ์ฉํฉ๋๋ค.
โข
์ค๋ฌด์์ ์ปค๋ฏธ์
, ๋ณด๋์ค์ฒ๋ผ ๊ฐ์ด ์์ ์๋ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ๊ผญ ํ์ํ ํจ์๋ค์ด๋ ๊ผญ ์ตํ๋์ธ์!
์ด์ MySQL์์ NULL ๋๋ฌธ์ ๊ณ ๋ฏผํ์ง ๋ง๊ณ , IFNULL, NULLIF, COALESCE ํจ์๋ก ๋๋ํ๊ฒ ๋ฐ์ดํฐ ๋ค๋ค๋ณด์ธ์! 

์์ ๋งํฌ ๋ฐ ๋ ๋ง์ ๊ฐ์๋ ์ค๋ช
๋ ์ฐธ๊ณ !
#MySQL #NULLํจ์ #VSCODE #๋ฐ์ดํฐ๋ฒ ์ด์ค #ํ๋ก๊ทธ๋๋ฐ