본문 바로가기
MySQL

MySQL 데이터 타입

by KDW999 2023. 1. 20.

정수 타입

타입 저장 공간 최솟값 최댓값
TINYINT 1바이트 -128 127
SMALLINT 2바이트 -32768 32767
MEDIUMINT 3바이트 -8388608 8388607
INT 4바이트 -2147483648 2147483647
BIGINT 8바이트 -9223372036854775808 9223372036854775807
ALTER TABLE Reservation ADD Price INT

Reservation 테이블에 INT형 Price 필드를 추가

 

MySQL에서도 데이터 타입은 여러 종류가 있으나 자주 쓰는 타입은 거의 정해져 있다고 한다.

 

고정 소수점 타입

실수의 값을 정확히 표기할 때 사용

 

DECIMAL(M, D)

M은 소수를 포함한 총 자릿수 (최대 65), D은 소수 부분의 자릿수 (0이면 소수 X)

소수 부분으로 인해 총 자릿수가 넘어간다면 소수 부분을 반올림해서 표시해준다.

 

문자열 타입

ㅡ CHAR, VARCHAR

CHAR는 문자열 길이를 정해주면 길이가 고정되는 고정 길이 문자열이다. ( 설정한 길이보다 작은 값이 들어오면 공백을 넣어서 맞춰줌 )

 

VARCHAR는 반대로 길이가 고정되지 않는 가변 길이 문자열이다. ( 저장한 값에 따라 저장 공간이 맞춰짐 )

 

CHAR(M)
VARCHAR(M)

 

* BINARY()와 VARBINARY()는 CHAR, VARCHAR와 비슷하나 문자가 아닌 바이너리 데이터를 저장한다는 차이점이 있다.

 

ㅡ BLOB, TEXT

BLOB은 다양한 크기의 바이너리 데이터를 저장하는 타입 ( 저장 최대 크기에 따라 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB로 구분 )

 

TEXT는 VARCHAR와 비슷하나 기본 값을 가질 수 없으며 대소문자를 구분한다. ( 저장 최대 크기에 따라 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT로 구분 )

 

NOTE TEXT;

길이를 지정해줄 수 없기에 TEXT 타입의 NOTE 필드를 선언 후에 INSERT INTO로 값을 넣어준다.

 

ㅡ ENUM

미리 정의한 집합의 요소 중 하나만 저장할 수 있는 타입 / 가독성 ↑

ENUM('데이터값1','데이터값2',...)

 

ㅡ SET

미리 정의한 집합의 요소 중 여러 개를 동시에 저장할 수 있는 타입 ( 최대 64개의 SET )

SET('데이터값1', '데이터값2', ...)

 

날짜 / 시간 타입

DATE 

날짜를 저장하는 타입 / 'YYYY-MM-DD' 형식으로 저장

 

DATETIME 

날짜와 시간까지 저장하는 타입 / 'YYYY-MM-DD HH:MM:SS'이 기본 형식

 

TIMESTAMP

날짜와 시간을 나타내는 타임스탬프를 저장하는 타입 / 별도의 값을 입력하지 않으면 데이터가 마지막으로 입려고디거나 변경된 시간이 저장된다.

 

외에도 시간을 저장하는 TIME 타입과 연도를 저장하는 YEAR 타입 등이 있다.

 

데이터 타입은 여럿이나 자주 쓰는 타입은 거의 정해져 있다고 한다. / INT, FLOAT, VARCHAR, TEXT, DATE 등 정도?

댓글