MySQL의 기초 - 데이터 타입
MySQL은 크게 "숫자타입, 날짜와 시간타입, 스트링타입" 세종류의 데이터 타입을 제공합니다.
1. 숫자 데이터 타입
2. 날짜와 시간타입
3. 스트링타입
1. 숫자 데이터 타입
1) INT
일반적인 정수로 부호를 가질 수 있음. 부호가 있을 경우(signed) -2147483648 ~ 2147483647 까지를 표현합니다. 부호가 없을 경우(unsigned) 0 ~ 4294967295까지를 표현할 수 있습니다. 그리고 너비는 11자리까지 지정할 수 있습니다.
2) TINYINT
아주 작은 정수로 부호를 가질 수 있음. 부호가 있을 경우 -128~127 까지를 표현합니다. 부호가 없을 경우 0~255까지를 표현할 수 있습니다. 너비는 4자리까지 지정할 수 있습니다.
3) SMALLINT
비교적 작은 정수(small integer)를 위한 것으로 부호를 가질 수 있습니다.
부호가 있을 경우 -32768~32767까지를 표현합니다.
부호가 없을 경우 0~65535 까지를 표현하며, 너비는 6자리까지 지정할 수 있습니다.
4) MEDIUMINT
중간정도의 정수를 위한 것으로 부호를 가질 수 있습니다.
부호가 있을 경우 -8388608~8388607 까지를 표현합니다.
부호가 없을 경우 0~16777215 까지를 표현하며, 너비는 6자리까지 지정할 수 있습니다.
5) BIGINT
큰정수를 위한 것으로 부호를 가질 수 있습니다.
부호가 있을 경우 -9223372036854775808~9223372036854775807 까지를 표현합니다. 헐~;;
부호가 없을 경우 0~18446744073709551615 까지를 표현하며, 너비는 20자리까지 지정할 수 있습니다.
* 그 외 FLOAT, DOUBLE, DECIMAL 이 있습니다.
일반적인 정수로 부호를 가질 수 있음. 부호가 있을 경우(signed) -2147483648 ~ 2147483647 까지를 표현합니다. 부호가 없을 경우(unsigned) 0 ~ 4294967295까지를 표현할 수 있습니다. 그리고 너비는 11자리까지 지정할 수 있습니다.
2) TINYINT
아주 작은 정수로 부호를 가질 수 있음. 부호가 있을 경우 -128~127 까지를 표현합니다. 부호가 없을 경우 0~255까지를 표현할 수 있습니다. 너비는 4자리까지 지정할 수 있습니다.
3) SMALLINT
비교적 작은 정수(small integer)를 위한 것으로 부호를 가질 수 있습니다.
부호가 있을 경우 -32768~32767까지를 표현합니다.
부호가 없을 경우 0~65535 까지를 표현하며, 너비는 6자리까지 지정할 수 있습니다.
4) MEDIUMINT
중간정도의 정수를 위한 것으로 부호를 가질 수 있습니다.
부호가 있을 경우 -8388608~8388607 까지를 표현합니다.
부호가 없을 경우 0~16777215 까지를 표현하며, 너비는 6자리까지 지정할 수 있습니다.
5) BIGINT
큰정수를 위한 것으로 부호를 가질 수 있습니다.
부호가 있을 경우 -9223372036854775808~9223372036854775807 까지를 표현합니다. 헐~;;
부호가 없을 경우 0~18446744073709551615 까지를 표현하며, 너비는 20자리까지 지정할 수 있습니다.
* 그 외 FLOAT, DOUBLE, DECIMAL 이 있습니다.
2. 날짜와 시간타입
1) DATE
YYYY-MM-DD 형태의 날짜로 1000-01-01 부터 9999-12-31일까지 지정할 수 있습니다.
2) DATETIME
YYYY-MM-DD HH:MM:SS 형태의 날짜와 시간 타입입니다. 1000-01-01 00:00:00부터 9999-12-31 23:59:59 까지 지정할 수 있습니다.
3) TIMESTAMP
1970년 1월 1일 자정부터 2037년까지의 시각을 표현합니다.
YYYYMMDDHHMMSS 형식이며 DATETIME에서 하이픈이 없다고 보시면 됩니다.
4) YEAR(M)
두자리나 네자리로 연도를 저장합니다. 기본은 네자리입니다.
너비가 4로 지정되면 1901년부터 2155년까지를 표현할 수 있습니다.
너비가 2로 지정되면 - YEAR(2) : 1970년에서 2069년을 70~69로 표기합니다.
YYYY-MM-DD 형태의 날짜로 1000-01-01 부터 9999-12-31일까지 지정할 수 있습니다.
2) DATETIME
YYYY-MM-DD HH:MM:SS 형태의 날짜와 시간 타입입니다. 1000-01-01 00:00:00부터 9999-12-31 23:59:59 까지 지정할 수 있습니다.
3) TIMESTAMP
1970년 1월 1일 자정부터 2037년까지의 시각을 표현합니다.
YYYYMMDDHHMMSS 형식이며 DATETIME에서 하이픈이 없다고 보시면 됩니다.
4) YEAR(M)
두자리나 네자리로 연도를 저장합니다. 기본은 네자리입니다.
너비가 4로 지정되면 1901년부터 2155년까지를 표현할 수 있습니다.
너비가 2로 지정되면 - YEAR(2) : 1970년에서 2069년을 70~69로 표기합니다.
3. 스트링타입
1) CHAR(M)
고정길이 스트링으로 1~255개의 문자를 저장할 수 있습니다.
2) VARCHAR(M)
1~255개의 문자들을 저장할 수 있는 가변 길이 스트링입니다.
VARCHAR(20) 처럼 길이를 지정할 수 있으며, VARCHAR필드를 생성할 때는 반드시 길이를 지정해줘야 합니다.
3) BLOB
최대 65,535개의 문자저장이 가능하며 너비지정은 안합니다.
Binary Large Objects 의 약자로 이미지나 파일처럼 대용량 바이너리 데이터를 저장할 때 사용됩니다.
저장된 데이터를 정렬하거나 비교할 때 대,소문자를 구별합니다.
4) TEXT
최대 65,535개의 문자저장이 가능하며 너비지정은 안합니다.
BLOB와 달리 대소문자를 구별하지 않습니다.
5) TINYBLOB 또는 TINYTEXT / MEDIUMBLOB 또는 MEDIUMTEXT / LONGBLOB 또는 LONGTEXT
TINY - 최대 255 개의 문자를 저장할 수 있습니다.
MEDIUM - 최대 16,777,215 개의 문자를 저장할 수 있습니다.
LONG - 최대 4,294,967,295 개의 문자를 저장할 수 있습니다.
모두 너비를 지정하지 않습니다.
6) ENUM
값이 될 수 있는 항목들을 열거한 리스트입니다.
ENUM('A','B','C') 라고 정의하면 이들 세가지 값만 가질수 있습니다. (NULL도 포함)
최대 65,535 개의 값을 가질 수 있으며, 항목을 저장하기 위해 인덱스를 사용합니다.
고정길이 스트링으로 1~255개의 문자를 저장할 수 있습니다.
2) VARCHAR(M)
1~255개의 문자들을 저장할 수 있는 가변 길이 스트링입니다.
VARCHAR(20) 처럼 길이를 지정할 수 있으며, VARCHAR필드를 생성할 때는 반드시 길이를 지정해줘야 합니다.
3) BLOB
최대 65,535개의 문자저장이 가능하며 너비지정은 안합니다.
Binary Large Objects 의 약자로 이미지나 파일처럼 대용량 바이너리 데이터를 저장할 때 사용됩니다.
저장된 데이터를 정렬하거나 비교할 때 대,소문자를 구별합니다.
4) TEXT
최대 65,535개의 문자저장이 가능하며 너비지정은 안합니다.
BLOB와 달리 대소문자를 구별하지 않습니다.
5) TINYBLOB 또는 TINYTEXT / MEDIUMBLOB 또는 MEDIUMTEXT / LONGBLOB 또는 LONGTEXT
TINY - 최대 255 개의 문자를 저장할 수 있습니다.
MEDIUM - 최대 16,777,215 개의 문자를 저장할 수 있습니다.
LONG - 최대 4,294,967,295 개의 문자를 저장할 수 있습니다.
모두 너비를 지정하지 않습니다.
6) ENUM
값이 될 수 있는 항목들을 열거한 리스트입니다.
ENUM('A','B','C') 라고 정의하면 이들 세가지 값만 가질수 있습니다. (NULL도 포함)
최대 65,535 개의 값을 가질 수 있으며, 항목을 저장하기 위해 인덱스를 사용합니다.
댓글
댓글 쓰기