[DB/MySQL] ๋ฐ์ดํฐํ์ (CHAR, VARCHAR,TEXT...)
ERD๋ฅผ ๊ทธ๋ฆฌ๋ค๊ฐ VARCHAR ๋จ์๋ฅผ ๋ณด๊ฒ ๋์๋ค. VARCHAR์ CHAR๊ณผ ์ด๋ค ์ ์ด ๋ค๋ฅผ์ง ๊ถ๊ธํด์ ธ์ ์กฐ์ฌํด๋ณด์๋ค.
sql์๋ ๋น์ฐํ๊ฒ ๋ฐ์ดํฐ ํ์ ์ด ์กด์ฌํ๋ค. ์ธ์ ์ด๋ค ๋ฐ์ดํฐํ์ ์ ์ฌ์ฉํ๋๊ฒ ์ข์ ์ง ์ ๋ฆฌํด๋ณธ๋ค.
FLOAT
= ์์์ ์๋ 7์๋ฆฌ๊น์ง ๋ถ๋ ์์์ ์ซ์ ํํ
(4๋ฐ์ดํธ)
DOUBLE(REAL)
= ์์์ ์๋ 15์๋ฆฌ๊น์ง ๋ถ๋ ์์์ ์ซ์ ํํ
(8๋ฐ์ดํธ)
INT
= ±21์ต ๊น์ง์ ์ ์
(4๋ฐ์ดํธ)
CHAR(n)
= ๊ฐ์ ์ค์ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ์ง์ ๋ ํฌ๊ธฐ๋งํผ์ ์ ์ฅ๊ณต๊ฐ ํ ๋น
(1 ~ 255๋ฐ์ดํธ)
→ ์ค์ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ์ ์ธ๋ ๋ฐ์ดํฐ ํฌ๊ธฐ์ ํธ์ฐจ๊ฐ ํด ๊ฒฝ์ฐ ๊ณต๊ฐ ๋ญ๋น!
- ๊ทธ๋ฅ CHAR=CHAR(1)
VARCHAR(n)
= ๊ฐ์ ์ค์ ํฌ๊ธฐ๋งํผ ์ ์ฅ๊ณต๊ฐ ํ ๋น
(1 ~ 65535๋ฐ์ดํธ)
→ ๋ฐ์ดํฐ ์์ (UPDATE)์ ๋น๋ฒํ ํ์ด์ง ์ฌ์ ๋ ฌ ๋ฐ์ ๊ฐ๋ฅ… ๋นํจ์จ์ …
UPDATE ํ์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ์กด ๋ฐ์ดํฐ๋ณด๋ค ํฌ๊ธฐ๊ฐ ํด ๊ฒฝ์ฐ, ๊ธฐ์กด ๋ฐ์ดํฐ ์์ญ์ ํ๊ธฐํ๊ณ ์๋ก์ด ํ ๋น
→ ํฌ๊ธฐ๊ฐ ํฐ varchar์ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํ๋ฉด row size ์ ํ์ ๊ฑธ๋ฆฐ๋ค. ๋ฐ์ดํฐ ์ ์ฒด๊ฐ row size์ ์ํฅ์ ์ค๋ค.
→ ์กฐํ ์์ฒญ์ด ์ฌ๋ฌ๋ฒ ์ค๋ฉด ๋ฒํผ์ ์บ์ฑ๋์ด ์ฝ์ด์จ๋ค.
TEXT
= ๊ฐ์ ์ค์ ํฌ๊ธฐ๋งํผ ์ ์ฅ๊ณต๊ฐ ํ ๋น
(1 ~ 65535๋ฐ์ดํธ)
→ ํฌ๊ธฐ๊ฐ ํฐ text๋ฅผ ์ฌ๋ฌ ๊ฐ ์ฌ์ฉํด๋ row size ์ ํ์ ๊ฑธ๋ฆฌ์ง ์๋๋ค.
๋ฐ์ดํฐ๊ฐ ๋ณ๋๋ก ์ ์ฅ๋๊ณ , ๊ทธ ์กด์ฌ๋ง row size์ ์ํฅ์ ์ฃผ๊ธฐ ๋๋ฌธ์ 9~12๋ฐ์ดํธ๋ง row size์ ์ํฅ์ ์ค๋ค.
→ ์กฐํ ์์ฒญ์ด ์ฌ๋ฌ๋ฒ ์ค๋ฉด ๋ณ๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๊ณต๊ฐ๋งํผ ํ ๋นํ๊ณ ์ฌ์ฉ์ ์์ฒญ๋งํผ ๋ฐ๋ณตํ๋ค.
๐ VARCHAR vs TEXT
VARCHAR | TEXT | |
๐ ๋ฐ์ดํฐ ์ต๋ ๊ธธ์ด | ์๋์ ์ผ๋ก ์งง์ ๋ ์ฌ์ฉ | ์๋์ ์ผ๋ก ๊ธธ ๋ ์ฌ์ฉ |
๐ ํ ์ด๋ธ ์กฐํ ์ ์ฌ์ฉ ๋น๋ | ์์ฃผ ํ์ | ์์ฃผ ํ์ํ์ง ์์ |
๐พ DBMS ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ | ๋ฉ๋ชจ๋ฆฌ ์ถฉ๋ถํ ๋ ์ ํฉ | ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ์ผ ๋ ์ ํฉ |
โก ์๋ & ์ฑ๋ฅ | ๋น ๋ฆ (๋ฉ๋ชจ๋ฆฌ ๋ฒํผ์์ ์ง์ ์ ๊ทผ) | ๋๋ฆผ (๋ณ๋์ ์ ์ฅ ๊ณต๊ฐ์์ ์ฝ์ด์ผ ํจ) |
๐ ์ ์ฅ ๋ฐฉ์ | ํ ์ด๋ธ row์ ์ง์ ์ ์ฅ | ์ธ๋ถ ์ ์ฅ ํ ํฌ์ธํฐ๋ก ๊ด๋ฆฌ |
๐ท MySQL์๋ string ํ์ ์ด ์๋ค!
DATETIME
= 'YYYY-MM-DD HH:MM:SS' ํ์
(8๋ฐ์ดํธ)
TIMESTAMP
= 'YYYY-MM-DD HH:MM:SS' ํ์
(4๋ฐ์ดํธ)
→ time_zone ์์คํ ๋ณ์์ ๊ด๋ จ์ด ์๊ณ UTC ์๊ฐ๋ ๋ณํํ์ฌ ์ ์ฅ
JSON
= JSON ๋ฌธ์๋ฅผ ์ ์ฅ
(8๋ฐ์ดํธ)