타입(Data Type)
MySql에서 테이블을 정의할 때는 필드별로 저장할 수 있는 타입까지 명시
※ MySql 제공하는 기본 타입
1. 숫자 타입
2. 문자열 타입
3. 날짜와 시간타입
숫자 타입(Numeric Type)
1. 정수 타입(Integer Type)
2. 고정 소수점 타입(Fixed-point Type)
3. 부동 소수점 타입(Floating-point Type)
4. 비트값 타입 (Bit-value Type)
정수 타입(Integer type)
- MySql은 SQL 표준 정수 타입인 Intefer, Int와 SMALLINT 제공
- 표준 정수 타입의 범위를 더욱 확장한 TINYINT, MEDIUMINT, BIGINT 까지 제공
- 각 정수 타입에 따라 요구되는 저장 곤간과 표현할 수 있는 최댓값과 최솟값이 다름
- 정수 타입은 음수까지 표현할 수 있는 SIGNED 타입과 양수만을 표현할 수 있는 UNSIGNED 타입으로도 구분
타입 | 저장 공간 | 최댓값 | 최솟값 | ||
Signed | Unsigned | Signed | Unsigned | ||
TINYINT | 1바이트 | -128 | 0 | 127 | 255 |
SMALLINT | 2바이트 | -32768 | 0 | 32767 | 65535 |
MEDIUMINT | 3바이트 | -8388608 | 0 | 8388607 | 16777215 |
INT | 4바이트 | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8바이트 | -9223372036854775808 | 0 | 9223372036854775807 | 18446744073709551615 |
고정 소수점 타입(Fixed-Point Type)
- DECIMAL은 실수의 값을 정확하게 표현하기 위해 사용
- DECIMAL 에서 사용하는 고정 소수점 방식은 실수를 표현할 때 소수부의 자릿수를 고정하여 표현
- 소수부 자릿수를 미리 정하고 고정된 자릿수로만 소수 부분 표현
DECIMAL(M, D)
부동 소수점 타입(Floating-point Type)
- FLOAT 과 DOUBLE은 실수의 값을 대략적으로 표현하기 위해 사용
- MySql은 IEEE 754 표준에 따라 FLOAT(4Byte), DOUBLE(8Byte) 사용
FLOAT(P)
비트값 타입 (Bit-value Type)
- BIT는 비트의 값을 저장
- 0과 1로 구성되는 바이너리 값을 저장할 수 있음
BIT(M)
- M의 범위는 1부터 64까지 설정할 수 있으며, 명시한 M 비트의 값을 저장할 수 있음
- 명시한 M 비트보다 짧은 길이의 비트 값을 입력하면, 입력한 값 앞에 0을 추가하여 자동으로 길이를 맞춤
문자열 타입
CHAR / VARCHAR
- CHAR, VARCHAR 문자열 데이터를 저장할 수 있는 타입
- 저장 방식과 추출 방식, 최대 길이를 다루는 방식에서 차이점이 있음
- CHAR는 문자열을 길이가 한번 설정되면 그대로 고정되는 고정 길이의 문자열을 다룸
- VARCHAR는 문자열을 길이가 고정되지 않는 가변 길이의 문자열로 다룸
CHAR(M)
VARCHAR(M)
- M은 저장할 수 있는 문자열의 최대 길이
- CHAR는 설정한 크기보다 작은 길이의 문자열이 입력되면 나머지 공간을 공백으로 채워 길이를 M과 같게 만듬
날짜와 시간 타입
1) DATE / DATETIME / TIMESTAMP
- DATE
- DATE는 날짜를 저장할 수 있는 타입
- 기본 형식은 'YYYY-MM-DD'
- DATETIME
- DATETIME은 날짜와 함께 시간까지 저장할 수 있는 타입
- 기본 형식은 'YYYY-MM-DD HH:MM:SS'
- TIMESTAMP
- TIMESTAMP는 날짜와 시간을 나타내는 타임스탬프를 저장할 수 있는 타입
- TIMESTAMP 타입의 필드는 사용자가 별다른 입력이 없으면 데이터가 마지막으로 입력되거나 변경된 시간이 저장
- 데이터의 최종 변경 시각을 저장 및 확인 할 때 유용하게 사용
2) TIME
- TIME
- TIME은 시간을 저장할 수 있는 타입
- 기본 형식은 'HH:MM:SS'
3) YEAR
- YEAR
- YEAR는 연도를 저장할 수 있는 타입
- YEAR(2)는 2자리의 연도를 저장할 수 있으며, YEAR(4)는 4자리의 연도를 저장할 수 있음