Post

๐Ÿ“Ÿ SQL & Database (01) - Data type (๋ฌธ์ž, ์ˆซ์ž, ๋‚ ์งœ/์‹œ๊ฐ„)



ํ•™์Šตํ™˜๊ฒฝ : Windows, MariaDB, DBeaver

column์„ ๋งŒ๋“ค ๋•Œ data type์„ ๋ช…์‹œํ•˜๊ฒŒ ๋˜์–ด์žˆ๋Š”๋ฐ ์ด data type์—๋Š” ๋ฌธ์ž, ์ˆซ์ž, ์†Œ์ˆ˜, ์‹œ๊ฐ„, ์ฐธ๊ฑฐ์ง“์—ฌ๋ถ€ ๋“ฑ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค

Data type - ๋ฌธ์ž


๋ฐ์ดํ„ฐ ํƒ€์ž…์ €์žฅ ๊ฐ€๋Šฅํ•œ ์–‘ํŠน์ง•
CHAR0~255์žCHAR(์ €์žฅํ•  ์ตœ๋Œ€ ๊ธ€์ž์ˆ˜)
VARCHAR0~65535์žVARCHAR(์ €์žฅํ•  ์ตœ๋Œ€ ๊ธ€์ž์ˆ˜)
TEXT0~65535์žย 
TINYTEXT0~255์žย 
MEDIUMTEXT0~1600๋งŒ์žย 
LONGTEXT0~42์–ต์žย 

์ •๋ง ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์ €์žฅ์‹œ CHAR๋„ ์“ฐ๊ธด ํ•˜์ง€๋งŒ VARCHAR๋ฅผ ๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ๋งŽ์ด ์“ด๋‹ค

VARCHAR

VARCHAR(100)์ด๋ฉด ์ตœ๋Œ€ 100์ž๊นŒ์ง€ ์“ธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ง
VARCHAR(100) ํ•ด๋†“๊ณ  10์ž๋งŒ ์ €์žฅํ•ด๋„ 100๋งŒํผ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜์ง€ ์•Š์Œ
์‹ค์ œ ๋„ฃ์€ 10์ž + 1byte ๋งŒํผ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€
(๊ธ€์ž๊ฐ€ 256์ž ์ด์ƒ์ด๋ฉด + 1byte ๋ง๊ณ  + 2byte)

ํ•˜์ง€๋งŒ! CHAR๋Š”

CHAR(100) ์ด๋ฉด 10์ž๋งŒ ์ €์žฅํ•ด๋„ 100์ž๋งŒํผ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€
๋‚˜๋จธ์ง€ 90์ž๋Š” ๊ณต๋ฐฑ์œผ๋กœ ์ฑ„์›Œ์„œ 100์ž๋ฅผ ๋งŒ๋“ค์–ด๋ฒ„๋ฆฐ๋‹ค
ํ•ญ์ƒ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ๊ธ€์ž๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ CHAR๋ฅผ ์“ฐ๋Š”๊ฒŒ ์„ฑ๋Šฅ์ƒ ์ด์ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ธด ํ•จ
๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—” ๊ทธ๋ƒฅ VARCHAR๋ฅผ ์“ฐ๋„๋ก ํ•˜์ž

Data type - ์ˆซ์ž


๋ฐ์ดํ„ฐ ํƒ€์ž…์ €์žฅ ๊ฐ€๋Šฅํ•œ ์–‘ํŠน์ง•
TINYINT-128 ~ 127ย 
SMALLINT-32768 ~ 32767ย 
MEDIUMINT-838๋งŒ ~ 838๋งŒย 
INT-21์–ต ~ 21์–ตย 
BIGINT-900๊ฒฝ ~ 900๊ฒฝย 
FLOAT-10^38 ~ 10^38์†Œ์ˆ˜์  7์ž๋ฆฌ๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ (์•ฝ๊ฐ„์˜ ์˜ค์ฐจ ๋ฐœ์ƒ)
DOUBLE-10^308 ~ 10^308์†Œ์ˆ˜์  14์ž๋ฆฌ๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ (์•ฝ๊ฐ„์˜ ์˜ค์ฐจ ๋ฐœ์ƒ)
DECIMAL(m, d)
NUMERIC(m, d)
์†Œ์ˆ˜์  30์ž๋ฆฌ ํฌํ•จ ์ตœ๋Œ€ 65์ž๋ฆฌ์˜ค์ฐจ ์—†์ด ์†Œ์ˆ˜์  ์ €์žฅ ๊ฐ€๋Šฅ
์ „์ฒด ์ž๋ฆฟ์ˆ˜(m)์™€ ์†Œ์ˆ˜์  ์ดํ•˜ ์ž๋ฆฟ์ˆ˜(d)๋ฅผ ๊ฐ€์ง„ ์ˆซ์žํ˜•

FLOAT, DOUBLE, DECIMAL์€ ์†Œ์ˆ˜์ ์ด ๋“ค์–ด์žˆ๋Š” ์ˆซ์ž๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ
FLOAT, DOUBLE์€ ์„ฑ๋Šฅ์€ ๊ดœ์ฐฎ์œผ๋‚˜ ์•ฝ๊ฐ„์˜ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•๋„๊ฐ€ ๋‚ฎ์„ ์ˆ˜ ์žˆ๋‹ค

(์ฐธ๊ณ ) ์–‘์˜ ์ˆซ์ž๋งŒ ์ €์žฅํ•˜๊ณ  ์‹ถ์œผ๋ฉด column๋งŒ๋“ค ๋•Œ unsigned ์˜ต์…˜์„ ํ‚ค๋ฉด ๋จ
๊ทธ๋Ÿผ SMALLINT์˜ ๊ฒฝ์šฐ 0 ~ 65535 ๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ

Data type - ๋‚ ์งœ/์‹œ๊ฐ„


๋ฐ์ดํ„ฐ ํƒ€์ž…์ €์žฅ ๊ฐ€๋Šฅํ•œ ์–‘ํŠน์ง•
DATE1000๋…„ ~ 9999๋…„YYYY-MM-DD ํ˜•์‹์œผ๋กœ ๋‚ ์งœ ์ €์žฅ ๊ฐ€๋Šฅ
TIME-839 ~ +838์‹œ๊ฐ„HH:MM:SS ํ˜•์‹์œผ๋กœ ์‹œ๊ฐ„ ์ €์žฅ ๊ฐ€๋Šฅ
DATETIME1000๋…„ ~ 9999๋…„YYYY-MM-DD HH:MM:SS ํ˜•์‹์œผ๋กœ ๋‚ ์งœ & ์‹œ๊ฐ„ ์ €์žฅ ๊ฐ€๋Šฅ
TIMESTAMP1970๋…„ ~ 2038๋…„YYYY-MM-DD HH:MM:SS ํ˜•์‹์œผ๋กœ ๋‚ ์งœ & ์‹œ๊ฐ„ ์ €์žฅ ๊ฐ€๋Šฅํ•œ๋ฐ ๋ณดํ†ต ์•ˆ ์”€

๋ณดํ†ต DATETIME ๋งŽ์ด ์‚ฌ์šฉ
TIMESTAMP๋„ ๋น„์Šทํ•œ๋ฐ MySQL์—์„  2038๋…„ ๊นŒ์ง€ ๋ฐ–์— ์ €์žฅ์ด ์•ˆ๋˜์–ด์„œ ๋ณดํ†ต ์ž˜ ์•ˆ์”€
ํ˜„์žฌ DB์‹œ๊ฐ„ ๊ฐ™์€๊ฑฐ ๊ธฐ๋กํ•  ๋•Œ ๊ฐ„ํ˜น ์“ฐ๊ธด ํ•œ๋‹ค๊ณ  ํ•จ

This post is licensed under CC BY 4.0 by the author.