SQL Types
1. 숫자 타입(Numeric Types)
MySQL에서 제공하는 숫자 타입은 다음과 같다.
1.1. 정수 타입(integer types)
정수값을 저장할 수 있는 자료형이다.(소수점은 포함할 수 없다.)
타입 | 저장 공간 | 최소값(Signed) | 최소값(Unsigned) | 최대값(Signed) | 최대값(Unsigned) |
---|---|---|---|---|---|
TINYINT | 1byte | -128 | 0 | 127 | 255 |
SMALLINT | 2byte | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3byte | -8388608 | 0 | 8388607 | 16777215 |
INT(또는 INTEGER) | 4byte | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8byte | -9223372036854775808 | 0 | 9223372036854775807 | 18446744073709551615 |
1.2. 고정 소수점 타입(fixed-point types)
실수의 값을 정확하게 표현하기위해 사용된다.
DECIMAL(M,D) 함수를 사용한다.
M은 소수 부분을 포함한 실수의 총 자리수를 나타낸다. 최대값은 65 이다.
D는 소수 부분의 자릿수를 나타내며, D가 0이면 소수 부분을 가지지 않는다.
1.3. 부동 소수점 타입(floating-point types)
실수의 값을 대략적으로 표현하기 위해 사용한다.
- FLOAT : 4바이트
- DOUBLE : 8바이트
FLOAT(P) 함수를 사용한다.
P가 0~24사이의 값을 가질 때는 FLOAT 값으로 취급되며, 25~53 사이의 값을 가질 때는 DOUBLE 값으로 취급된다.
1.4. 비트값 타입(bit-value type)
비트의 값을 저장한다. 즉 바이너리(binary)값을 저장할 수 있다.
BIT(M) 함수를 사용한다.
M은 1~64 사이의 값을 사용할 수 있다. 만약 M 비트보다 짧은값을 사용할 경우 앞에 0을 추가하여 길이를 자동으로 맞춘다.
2. 문자열타입
2.1. CHAR
문자열형의 하나로 문자열을 저장할 수 있는 자료형이다.
CHAR(M) 형식으로 사용하며 M은 열의 최대 길이이다.
M을 설정한 후 M 보다 긴 문자열을 저장할 수 없다.
2.2. VARCHAR
CHAR는 고정길이 문자열이였다면 VARCHAR는 가변 길이 문자열 자료형이다.
VARCHAR(M) 형식으로 사용하며 M은 열의 최대 길이이다.
데이터의 크기에 맞춰 저장공간의 크기도 변경된다.
2.3. 그 외의 문자열
- BINARY / VARBINARY
- 각각 CHAR / VARCHAR와 비슷한데 문자집합이 아닌 바이너리(binary) 데이터를 저장할 때 사용된다.
- BLOB
- Binary Large Object.
- 다양한 크기의 바이너리 데이터를 저장할 수 있는 타입.
- 문자열의 대소문자 구분 안함.
- 저장할 수 있는 데이터의 최대 크기에 따라 TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB로 구분
- TEXT
- VARCHAR와 비슷하지만 기본값을 가질 수 있고 문자열의 대소문자를 구분한다.
- 저장할 수 있는 데이터의 최대 크기에 따라 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT로 구분
- ENUM
- 미리 정의한 집합 안의 요소 중 하나만을 저장할 수 있는 타입
- SET
- 미리 정의한 집합 안의 요소 중 여러 개를 동시에 저장할 수 있는 타입
3. 날짜와 시간
3.1. DATE
날짜를 저장할 수 있는 타입이다.
기본 형식 : ‘YYYY-MM-DD’
저장할 수 있는 날짜의 범위는 ‘1000-01-01’부터 ‘9999-12-31’까지이다.
3.2. DATETIME
날짜와 시간을 저장할 수 있는 타입이다.
기본 형식 : ‘YYYY-MM-DD HH:MM:SS’
저장할 수 있는 범위는 ‘1000-01-01 00:00:00’부터 ‘9999-12-31 23:59:59’까지이다.
3.3. TIMESTAMP
날짜와 시간을 나타내는 타임스탬프를 저장할 수 있는 타입
데이터가 마지막으로 입력되거나 변경된 시간이 저장된다.(데이터의 최종 변경 시각을 저장하고 확인하는데 유용하다.)
3.2. TIME
시간을 저장할 수 있는 타압이다.
기본 형식 : ‘HH:MM:SS’ 혹은 ‘HHH:MM:SS’
저장할 수 있는 시간의 범위는 ‘-838:59:59’부터 ‘838:59:59’까지입니다.
범위를 초과한 시간은 ‘-838:59:59’이나 ‘838:59:59’로 자동 변환되어 저장된다.
또한, 유효하지 않은 시간은 ‘00:00:00’로 저장된다.
3.3. YEAR
YEAR는 연도를 저장할 수 있는 타입이다.
YEAR는 4자리의 연도를 숫자 혹은 문자열로 저장할 수 있다.
4. 그 외
4.1. JSON Type
다양한 JSON 조작함수를 제공한다.
4.2. Spatial Type
위도와 경도를 중심으로한 위치 관련 타입
ex) 배달앱쪽에서 많이 사용한다.
*. 참고자료
- 아사이 아츠시 저 박준용 옮김, SQL첫걸음, 한빛미디어
- http://tcpschool.com/mysql/DB
댓글 남기기