๐Ÿ—„๏ธBackend

[DB/MySQL] ๋ฐ์ดํ„ฐํƒ€์ž…(CHAR, VARCHAR,TEXT...)

bananackck 2025. 3. 19. 16:42

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์— ์˜ํ–ฅ์„ ์ค€๋‹ค.

→ ์กฐํšŒ ์š”์ฒญ์ด ์—ฌ๋Ÿฌ๋ฒˆ ์˜ค๋ฉด ๋ณ„๋„ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ ๊ณต๊ฐ„๋งŒํผ ํ• ๋‹นํ•˜๊ณ  ์‚ฌ์šฉ์„ ์š”์ฒญ๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค.

https://chanho0912.tistory.com/108

๐Ÿ“Œ 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๋ฐ”์ดํŠธ)