728x90
□ 데이터형 ( Data Type )
- 숫자 타입
- 정수 타입 ( Integer )
- TINYINT
- SMALLINT
- MEDIUMINT
- INT
- BIGINT
- 고정 소수점 타입 ( Fixed-point )
- DEFIMAL
- 부동 소수점 타입 ( Floating-point )
- FLOAT
- DOUBLE
- 비트값 타입 ( Bit-value )
- BIT
- 정수 타입 ( Integer )
- 문자 타입
- CHAR, VARCHAR
- BINARY, VARBINARY
- BLOB, TEXT
- ENUM
- SET
- 날짜 타입
- DATE, DATETIME, TIMESTAMP
- TIME
- YEAR
1. 숫자 타입
타입 | 형식 | 공간 | 범위 / 설명 | |
정수 타입 ( integer types ) |
TINYINT | TINYINT[(M)] [UNSIGNED] [ZEROFILL] | 1 byte | -128 ~ 127 (signed) 0 ~ 255 (unsigned) |
SMALLINT | SMALLINT[(M)] 〃 | 2 byte | -32768 ~ 32767 0 ~ 65535 |
|
MEDIUMINT | MEDIUMINT[(M)] 〃 | 3 byte | -8388608 ~ 8388607 0 ~ 16777215 |
|
INT | INT[(M)] 〃 | 4 byte | -2147483648 ~ 2147483647 0 ~ 4294967295 |
|
BIGINT | BIGINT[(M)] 〃 | 8 byte | -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551615 |
|
고정 소수점 타입 ( fixed-point types ) |
DECIMAL | DECIMAL[(M[,D])] 〃 ( M => 최대 65 ) |
* M : 소수 부분을 포함한 실수의 총 자릿수 * D : 소수 부분의 자릿수 |
|
부동 소수점 타입 ( floating-point types ) |
FLOAT | FLOAT(P) 〃 ( P => 0 ~ 24 (float) 25 ~ 53 (double) ) FLOAT[(M,D)] 〃 |
* P : 정밀도 ( precision ) | |
DOUBLE | DOUBLE[(M,D)] 〃 | |||
비트값 타입 ( bit-value type ) |
BIT | BIT[(M)] ( M => 1 ~ 64 ) |
1 bit |
2. 문자열 타입
타입 | 형식 | 설명 | |
CHAR | CHAR(M) ( M => 0 ~ 255 ) |
- 고정 길이 | |
VARCHAR |
VARCHAR(M) ( M => 0 ~ 65535 ) |
- 가변 길이 | |
BINARY | BINARY(M) | - CHAR 와 비슷 - 바이너리 데이터 저장 시 사용 |
|
VARBINARY | VARBINARY(M) | - VARCHAR 와 비슷 - 바이너리 데이터 저장 시 사용 |
|
BLOB ( Binary Large Object ) | - 문자열 대소문자 구분 안 함 | ||
TEXT | - VARCHAR 와 비슷 - 기본값 가질 수 없음 - 문자열 대소문자 구분 |
||
ENUM | ENUM('데이터값1', '데이터값2', ...) | - 미리 정의한 집합 안의 요소 중 하나만 저장 가능 - 가독성 향상 - 특정 숫자에 문자열로 의미 부여 가능 |
|
SET | SET('데이터값1', '데이터값2', ...) |
3. 날짜와 시간 타입
타입 | 기본 형식 | 범위 | 설명 | |
DATE | YYYY-MM-DD | '1000-01-01' ~ '9999-12-31' |
- 날짜 저장 | |
DATETIME | YYYY-MM-DD HH:MM:SS | '1000-01-01 00:00:00' ~ '9999-12-31 23:59:59' |
- 날짜 + 시간 저장 | |
TIMESTAMP |
데이터의 최종 입력/변경 시간 | '1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC |
- 날짜 + 시간 타임 스탬프 저장 - 기본값으로 데이터의 최종 입력/변경 시간 저장 - 유효하지 않은 데이터는 0을 저장 |
|
TIME | 'HH:MM:SS' or 'HHH:MM:SS' |
'-838:59:59' ~ '838:59:59' |
- 시간 저장 - 범위 초과 시 최대값/최소값으로 자동 변환 - 유효하지 않은 시간은 '00:00:00'로 저장 |
|
YEAR | YEAR(2) or YEAR(4) |
* 4자리 숫자 ☞ 1901년 ~ 2155년 * 4자리 문자열 ☞ 1901년 ~ 2155년 * 1 or 2 자리 숫자 ☞ - 1 ~ 69 : 2001년 ~ 2069년 - 70 ~ 99 : 1970년~1999년 * 1 or 2 자리 문자열 ☞ - '0' ~ '69' : 2000년 ~ 2069년 - '70' ~ '99' : 1970년 ~ 1999년 * 숫자 0 ☞ 0000년 * 문자열 '0' or '00' ☞ 2000년 |
- 연도 저장 - 숫자나 문자열 모두 저장 가능 - 유효하지 않은 시간은 '0000'으로 저장 |
http://tcpschool.com/mysql/mysql_datatype_numeric
https://dev.mysql.com/doc/refman/8.0/en/data-types.html
https://www.w3schools.com/sql/sql_datatypes.asp
반응형
'프로그래밍 언어 ( Programming Language ) > SQL' 카테고리의 다른 글
[SQL] 조인 ( Join ) (0) | 2022.01.05 |
---|---|
[SQL] 연산자 ( Operator ) ( + 다중 행 연산자, 집합 연산자 ) (0) | 2022.01.05 |
[SQL] 제약 조건 ( Constraint ) (0) | 2022.01.04 |
[SQL][MySQL] DML ( Data Manipulation Language ) - SELECT (0) | 2022.01.04 |
[SQL][MySQL] DML ( Data Manipulation Language ) - INSERT, UPDATE, DELETE (0) | 2022.01.04 |