본문 바로가기
工夫/DB

Mysql Data Type

by 치세 2021. 9. 12.
  • 단어 하나라도 참조한 곳

http://www.incodom.kr/DB_-_%EB%8D%B0%EC%9D%B4%ED%84%B0_%ED%83%80%EC%9E%85/MYSQL

https://blog.martinwork.co.kr/mysql/2020/01/17/mysql-data-type.html

https://dololak.tistory.com/260

 

  • 숫자형(Number Type) 데이터 유형

UNSIGNED 속성

UNSIGNED 속성을 부여하게 되면 해당 속성을 부여받은 컬럼에는 음수값을 대입하지 못한다. 결제 내역에 대한 테이블을 예시로 들어보도록 하겠다. 결제 금액은 음수값이 될 수 없음을 누구나 알 수 있을 것이다. 이런 경우 UNSIGNED 속성을 부여하여 음수값을 대입하지 못하게 할 뿐만 아니라 대입 가능한 숫자의 범위를 늘려줄 수 있다.

 

고정 소수형 데이터 타입(DECIMAL)과 부동 소수형 데이터 타입(FLOAT, DOUBLE)

DECIMAL 타입과 FLOAT, DOUBLE의 가장 큰 차이점은 고정 소수형 데이터 타입이냐, 부동 소수형 데이터 타입이냐에 따라 결정되게 된다.

DECIMAL 타입의 경우 앞에서 총 2개의 설정을 값을 부여할 수 있다.

차이 확인 : DECIMAL(5,2) 데이터 타입의 범위는 -999.99 ~ 999.99이다

  • decimal_type : 99.99
  • float_type : 99.12345678912345679
타입 정의 / 범위
TINYINT(n) 정수형 데이터 타입 / 1 Byte(2^8)
- 128 ~ + 127 또는 0 ~ 255 표현 가능
Unsigned 사용시 0 ~ 255 표현 가능
SMALLINT(n) 정수형 데이터 타입 / 2 Byte(2^16)
- 32,768 ~ 32,167 또는
Unsigned 사용시 0 ~ 65536 표현 가능
MEDIUMINT(n) 정수형 데이터 타입 / 3 Byte
- 8,388,608 ~ 8,388,607 또는
Unsigned 사용시 0 ~ 16,777,215 표현 가능
INT(n) 정수형 데이터 타입 / 4 Byte
- 2,147,483,648 ~ 2,147,483,647  또는
Unsigned 사용시 0  ~ 4,294,967,295 표현 가능
BIGINT(n) 정수형 데이터 타입(LONG) / 8 byte
숫자형을 무한하게 사용 가능.
2^64 - 1 표현 가능
Unsigned 사용시 양수값 무한하게 사용가능
DECIMAL(m, d)
고정형
소수점을 사용한 형태. / Default: m 10
고정 소수형 데이터 타입고정(길이+1 byte).
화폐 데이터와 같이 데이터의 정확도를 요하는 경우에 주로 사용.
M 전체 자리수(최대값은 65), D는 소수 자릿수(0이면 소수점 가지지 않음).
DECIMAL(5,2) 데이터 타입의 범위는 -999.99 ~ 999.99이다
Unsigned 사용 불가
FLOAT(n)
부동형
부동 소수형 데이터 타입 / 4 byte
부동 소수점을 사용한 형태, 소수점아래 7자리까지 표현
Unsigned 사용 불가
DOUBLE(n)
부동형
부동 소수형 데이터 타입 / 8 byte
DOUBLE 문자열로 저장, 소수점아래 15자리까지 표현
Unsigned 사용 불가
  • 문자열(text) 데이터 유형
타입 정의 길이
CHAR(n) - 고정 길이 데이터 타입
- 지정된 길이보다 짧은 데이터 입력 시 나머지 길이는 공백으로 채워짐
- 검색시, PAD_CHAR_TO_FULL_LENGTH 모드를 설정하지 않으면 공백은 제거됨
0 ~ 255 (byte)
VACHAR(n) - 가변 길이 데이터 타입
- 지정된 길이보다 짧은 데이터 입력시 공백으로 채우지 않음
-저장시 1-byte 혹은 2-byte 길이 Prefix 데이터를 저장. 이 Prefix 데이터는 값의 바이트 수에 대한 정보를 담는다.( https://dev.mysql.com/doc/refman/8.0/en/char.html)
0 ~ 65,535 (byte)
TINYTEXT(n) - 문자열 데이터 타입(최대 255 byte)
- TINYBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장)
https://dev.mysql.com/doc/refman/8.0/en/blob.html
0 ~ 255 (byte)
TEXT(n) - 문자열 데이터 타입(최대 65,535 byte)
- BLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장)
0 ~ 65,535 (byte)
MEDIUMTEXT(n) - 문자열 데이터 타입(최대 16,777,215 byte)
- MEDIRMBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장)
0 ~ 16,777,215 (byte)
LONGTEXT(n) - 문자열 데이터 타입(최대 4,294,967,295 byte)
- LONGBLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될때 nonbinary string으로 저장)
0 ~ 4,294,967,295 (byte)
     

 

 

 

날짜형 데이터 타입

타입 정의 / 길이
DATE 날짜(년도, 월, 일) 형태의 기간 표현 데이터 / 3 byte (1000-01-01 ~ 9999-12-31)
형식: 0000-00-00 (YYYY-MM-DD)
TIME 시간(시, 분, 초) 형태의 기간 표현 데이터 / 3 byte
형식: 00:00:00
DATETIME 날짜와 시간 형태의 기간 표현 데이터 / 8 byte (1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999)
형식: 0000-00-00 00:00:00 (YYYY-MM-DD hh:mm:ss)
TIMESTAMP 날짜와 시간 형태의 기간 표현 데이터 타입 시스템 변경 시 자동으로 그 날짜와 시간이 저장 / 4 byte
형식: Integer
YEAR 년도 표현 데이터 타입 / 1 byte
형식: 0000

 

이진 데이터 타입

타입 정의 길이
BINARY(n) & BYTE(n) CHAR 형태의 이진 데이터 타입 최대 255 byte
VARBINARY(n) VARCHAR 형태의 이진 데이터 타입 최대 65,535 byte
TINYBLOB(n) 이진 데이터 타입 최대 255 byte
BLOB(n) 이진 데이터 타입 최대 65,535 byte
MEDIUMBLOB(n) 이진 데이터 타입 최대 16,777,215 byte
LONGBLOB(n) 이진 데이터 타입 최대 4,294,967,295 byte

 

 

 

'工夫 > DB' 카테고리의 다른 글

SQL(Structured Query Language)  (0) 2014.06.29

댓글