๐ SQL & Database (01) - Data type (๋ฌธ์, ์ซ์, ๋ ์ง/์๊ฐ)
ํ์ตํ๊ฒฝ : Windows, MariaDB, DBeaver
column์ ๋ง๋ค ๋ data type์ ๋ช ์ํ๊ฒ ๋์ด์๋๋ฐ ์ด data type์๋ ๋ฌธ์, ์ซ์, ์์, ์๊ฐ, ์ฐธ๊ฑฐ์ง์ฌ๋ถ ๋ฑ ์ฌ๋ฌ ์ข ๋ฅ๊ฐ ์๋ค
Data type - ๋ฌธ์
๋ฐ์ดํฐ ํ์ | ์ ์ฅ ๊ฐ๋ฅํ ์ | ํน์ง |
---|---|---|
CHAR | 0~255์ | CHAR(์ ์ฅํ ์ต๋ ๊ธ์์) |
VARCHAR | 0~65535์ | VARCHAR(์ ์ฅํ ์ต๋ ๊ธ์์) |
TEXT | 0~65535์ | ย |
TINYTEXT | 0~255์ | ย |
MEDIUMTEXT | 0~1600๋ง์ | ย |
LONGTEXT | 0~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 - ๋ ์ง/์๊ฐ
๋ฐ์ดํฐ ํ์ | ์ ์ฅ ๊ฐ๋ฅํ ์ | ํน์ง |
---|---|---|
DATE | 1000๋ ~ 9999๋ | YYYY-MM-DD ํ์์ผ๋ก ๋ ์ง ์ ์ฅ ๊ฐ๋ฅ |
TIME | -839 ~ +838์๊ฐ | HH:MM:SS ํ์์ผ๋ก ์๊ฐ ์ ์ฅ ๊ฐ๋ฅ |
DATETIME | 1000๋ ~ 9999๋ | YYYY-MM-DD HH:MM:SS ํ์์ผ๋ก ๋ ์ง & ์๊ฐ ์ ์ฅ ๊ฐ๋ฅ |
TIMESTAMP | 1970๋ ~ 2038๋ | YYYY-MM-DD HH:MM:SS ํ์์ผ๋ก ๋ ์ง & ์๊ฐ ์ ์ฅ ๊ฐ๋ฅํ๋ฐ ๋ณดํต ์ ์ |
๋ณดํต DATETIME ๋ง์ด ์ฌ์ฉ
TIMESTAMP๋ ๋น์ทํ๋ฐ MySQL์์ 2038๋
๊น์ง ๋ฐ์ ์ ์ฅ์ด ์๋์ด์ ๋ณดํต ์ ์์
ํ์ฌ DB์๊ฐ ๊ฐ์๊ฑฐ ๊ธฐ๋กํ ๋ ๊ฐํน ์ฐ๊ธด ํ๋ค๊ณ ํจ