์ฌ์ด ๋ฌธ์ ๋ ํ ๋ฒ์ ๋ ์ธ๊ฐ์ฉ ํฌ์คํ
ํ๋ ค๊ณ ํ๋๋ฐ
์ด ๋ฌธ์ ๋ ์๊ฐ ํด ๋ณผ ์ฌ์ง๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ํ๋๋ง ์ฌ๋ฆฐ๋ค.
๋
ผ๋์ ์ฌ์ง๊ฐ ์๊ณ ๋ง์ ์๋ฌธ์ด ์ ๊ธฐ๋๋ ๋ฌธ์ ์ธ๋ฐ ๊ฐ์ ๊ณ ๋ฏผ์ ํ์ ๋ถ๋ค๊ป ์ด ๋ฌธ์ ์ ๊ด๋ จํด์ ๋ด๊ฐ ์๊ฐํด๋ณด๊ณ ์กฐ์ฌํ ๋ด์ฉ์ ๊ณต์ ๋ฅผ ํด๋ณด๊ณ ์ํ๋ค.
๋ด๊ฐ ๊ถ๊ธํ๋ ์ ์ ์๋ ๋ ๊ฐ์ง์๋ค.
- "LENGTH ์ NULL ๋ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค"๋ผ๋ ์กฐ๊ฑด์ ์ ํ์ํ ๊ฒ์ธ๊ฐ์?
- ์ ํ
์คํธ ์ผ์ด์ค 2๋ง ์คํจ๊ฐ ๋จ๋ ๊ฒ์ธ๊ฐ์? ๋ด์ง 10cm ์ดํ์ธ๋ฐ ์ ์ ๋ต์ฝ๋์์๋ `<=`๋์ `<` 10์ด ๋ง๋๊ฐ
์ด ํฌ์คํ
์ ๋ํด์๋ ์ ์ง๋ฌธ๋ค์ ๋ํด ๋ช
์พํ ํด๋ต์ ํ ๊ฒ์ด๋ค
์ฒซ๋ฒ์งธ ์ง๋ฌธ์ ๋ฌธ์ ๋ฅผ ์์ธํ ์ฝ๊ณ ์๊ฐํด๋ณด๋ ๋ต์ ์ฐพ์ ์ ์์๊ณ ๋๋ฒ์งธ ์ง๋ฌธ์ ๋ค๋ฅธ ์ฌ๋์ ์ค๋ช
์ ์ฐธ๊ณ ํ๋ค.
๐ ์์ฑ์ด ์ก์ ์ ๊ตฌํ๊ธฐ
LENGTH ์ปฌ๋ผ์ NULL๊ฐ์ด ๋ค์ด๊ฐ ์์ผ๋ฉด ๋น๊ต ์ฐ์ฐ์ด ์ ๋๊ธฐ ๋๋ฌธ์ IFNULL๋ก NULL์ธ ์์๋ฅผ 0์ผ๋ก ๋ฐ๊ฟ ์ ์๋๋ก ํด ์ฃผ์๋ค. ๊ฒฐ๊ณผ๋ CNT๋ง ์ถ๋ ฅ ํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ด ๋ง์์ ํต๊ณผ์ธ๋ฐ ํ
์คํธ 2๊ฐ ํ๋ฆฐ๊ฒ์ด ๊ฑฐ์ฌ๋ ธ๋ค. ์ ๋ต์ฝ๋๋ ๋ง์ง๋ง ์ถ๋ ฅ๊ฒฐ๊ณผ์ฐฝ์์ ํ
์คํธ์ผ์ด์ค 2์ ์ ์คํจ๊ฐ ๋ด๋์ง ๊ถ๊ธํด์ก๋ค.
๋จผ์ ์ด ๋ฌธ์ ๋ฅผ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ํ ์ ์๋๋ฐ ์ฒซ๋ฒ์งธ๋ NULL ํค์๋๋ก ํธ๋๊ฒ์ด๊ณ ํด๋น ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ฉด ํ
์คํธ์ผ์ด์ค2์ ์คํจ๊ฐ ๋จ์ง ์๋๋ค. ์๋๋ ๋ชจ๋ ํ
์คํธ์ผ์ด์ค๊ฐ ํต๊ณผ๋๋ ์ฝ๋์ด๋ค. ํ์ง๋ง ๊ธธ์ด๊ฐ 10์ดํ์ธ์ง ์ซ์๋ฅผ ์ฐ์ฐ์ <=10์ผ๋ก ๋น๊ตํด์ ํ๋ ค๊ณ ํ๋ฉด ํ
์คํธ์ผ์ด์ค ํ๋๊ฐ ์ค๋ฅ๊ฐ ๋๋ค.
์ ๋ต์ฝ๋
SELECT COUNT(*) AS FISH_COUNT
FROM FISH_INFO
WHERE LENGTH IS NULL;
๐ฆ ์ "LENGTH ์ NULL ๋ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค"๋ผ๋ ์กฐ๊ฑด์ ์ ํ์ํ๊ฐ?
๋๋ ํด๋น ์กฐ๊ฑด์ด ์ ๋ฌ๋ ค ์๋์ง ์๊ฐ ํด ๋ณด๋ค๊ฐ ํ๋ก๊ทธ๋๋จธ์ค์์ ํด๋น ๋ฌธ์ ์ ๋ฌ๋ฆฐ ๋๊ธ์ ๋ค์ด๊ฐ๋ดค๋ค. ๋๋ ๊ฐ์ ์ง๋ฌธ์ ํ ์ฌ๋์ด ์์๋ค.
์ด๋ค ๋ถ์ด ํด๋น ์ง๋ฌธ์ ๋ต์ ์ฃผ์
จ๋๋ฐ ๊ธธ์ด๋ผ๋ ๊ฒ์ด ์ค์ ๋ก NULL์ผ ์๋ ์๊ณ ์ค์ ๋ก๋ ์กด์ฌํ๋ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๋ค๋๋ฐ ๋๋ ๊ทธ ๋ง์ ๋์ํ์ง ์๋๋ค.
๊ทธ๋์ ๋๊ธ์ ์์ ๋จ๊ธฐ์ง ์๋ ๋ด๊ฐ ์ฒ์์ผ๋ก ๋๊ธ์ ๋จ๊ฒจ ๋ณด์๋ค.
LENGTH ์ NULL ๋ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค.
= LENGTH์ NULL์ด ์๋ ๊ฐ์ด ํ๋๋ผ๋ ์๋ค.
์ก์ ๋ฌผ๊ณ ๊ธฐ ๊ธธ์ด๊ฐ 10cm ์ดํ์ด๋ฉด LENGTH๊ฐ NULL์ด๋ค.
= ๋ฌผ๊ณ ๊ธฐ์ ๊ธธ์ด๊ฐ 10cm ์ด๊ณผ์ด๋ฉด LENGTH๋ NULL์ด ์๋๋ค.
์์ ๋
ผ๋ฆฌ์ ๋ฐ๋ผ ๊ฒฐ๊ตญ ๋ต์ ํ๋์ ํ
์ด๋ธ ๋ด์์ ๋ฐ์ดํฐ์ LENGTH ์ปฌ๋ผ์ด ๋ชจ๋ NULL ์ผ ์๋ ์๊ณ ํ๋๋ผ๋ NULL ๊ฐ์ด ์๋ ๊ฒ ์๋ค๋ ๊ฒ์ด๊ณ , ๊ทธ ๋ง์ ์ก์ ๋ฌผ๊ณ ๊ธฐ๋ค ์ค ์ ์ด๋ ํ๋๋ 10cm๋ฅผ ๋๋๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ฒ ํ์ง ์์ผ๋ฉด WHERE์ ์์ NULL ์ฒ๋ฆฌํ๋ ์ฐ์ฐ์ ํ ๋ ์ค๋ฅ๊ฐ ๋ ์ ์๊ธฐ ๋๋ฌธ์ด ์๋๊น?
๐ฆ ์ ํ ์คํธ ์ผ์ด์ค 2๋ง ์คํจ๊ฐ ๋จ๋ ๊ฒ์ธ๊ฐ? ( <=๋ ํ๋ฆฌ๊ณ <๋ ๋ง๋ ์ด์ )
๋๋ ์ฒ์์ ํ
์คํธ 2๋ง ์คํจ๊ฐ ๋ด๋ค
์๋๋ ๋ฌธ์ ์์ ๊ธธ์ด๊ฐ 10cm ์ดํ์ธ ๋ฌผ๊ณ ๊ธฐ์ LENGTH ๊ฐ์ NULL๋ก ์ค์ ๋๋ค๊ณ ํ์ผ๋ฏ๋ก, ๊ธธ์ด๊ฐ 10cm ์ดํ์ธ ๋ฌผ๊ณ ๊ธฐ๋ฅผ ์ฐพ์ ๋๋ LENGTH๊ฐ NULL์ธ ํ๋ง ์ฐพ์ผ๋ฉด ๋๋ค. ๊ทธ๋์ WHERE LENGTH IS NULL๋ง ํด ์ฃผ๋ฉด ๋๋ ๊ฐ๋จํ ๋ฌธ์ ์ด๋ค.
ํ์ง๋ง ๋๋ ๋ฌธ์ ๋ฅผ ์ฒ์ ์ฝ์์ ๋๋ ๊ธธ์ด ๊ฐ๊ณผ ์ซ์๊ฐ ๋์ค๋๊น IFNULL์ด๋ ๋น๊ต ์ฐ์ฐ์๋ฅผ ์จ์ ์ฝ๋๋ฅผ ์ง์๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋์ ์ฒ์์ ์ฟผ๋ฆฌ๋ฌธ์ 10cm ์ดํ๋ฅผ ๋ํ๋๋ ๊ธฐํธ์ธ LEGNTH <= 10 ์ ์จ ์คฌ๋ค. ๋ต์ ๊ทธ๋์ ํ
์คํธ 2๊ฐ ํต๊ณผ๋์ง ๋ชปํ ๊ฒ์ด๋ค. ์ฌ๊ธฐ์ ๋ฑํธ(`=`)๊ฐ ๋ค์ด๊ฐ๋ฉด ํ๋ฆฐ๋ค. < 10 ์ด๋ผ๊ณ ์ฐ๋ฉด ์ ๋ต ์ธ์ ์ด ๋๋ค.
์ <๋ ๋ง๊ณ <=๋ ํ๋ฆฌ๋๊ฐ?
๋๋ ์ฌ๊ธฐ์ ๋ํ ์๋ฃ ์กฐ์ฌ๋ฅผ ํด ๋ดค์ง๋ง ๋ช
์พํ ๋ต์ ์ป์ ์๊ฐ ์์๋ค.
๊ทธ์์ค ํ๋ก๊ทธ๋๋จธ์ค์์ ํด๋น ๋ฌธ์ ์ ๋ฌ๋ฆฐ 16๊ฐ์ ๋๊ธ ์ค ํ๋๋ฅผ ์ฝ์๋๋ฐ ์ด ์ด์ ๊ฐ ๊ฐ์ฅ ํ๋น์ฑ์ด ์๋ ๊ฒ ๊ฐ๋ค.
๊ฒฐ๊ตญ์๋ ๋ถ๋์์์ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ํฌ๋ค๋ ๊ฒ์ด๋ค.
์ด ๋ถ์ ์ค๋ช
์ ๊ทธ๋ด์ธํ์ง๋ง ์์ง๋ ๋ช
ํํ๊ฒ ์ค๋๋์ง๋ ์๋๋ค. ๋ฌํ๊ฒ ์ด๋ฐ ์๋ฌธ์ด ์ ๊ธฐ๋๋ค. ๋ถ๋์์๋ฉด ํญ์ 10.01์ 10์ผ๋ก ์ธ์ํ๋๊ฐ? ์๋ํ๋ฉด ํ ๋๋ง๋ค 2๋ฒ ํ
์คํธ์ผ์ด์ค๋ ํ๋ ธ๋ค๊ณ ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
๋ ํ๋นํ ์ค๋ช
์ ํ ์ ์์ผ์๊ฑฐ๋ ํ
์คํธ์ผ์ด์ค 2๋ฒ๊ฐ์ด ๋ฌด์์ธ์ง ํ์ธํ๋ ๋ฒ์ ์์๋ ๋ถ์ ๋๊ธ ๋จ๊ฒจ์ฃผ์๋ฉด ๊ฐ์ฌ๋๋ฆฝ๋๋ค.