[MySQL] 데이터 형식

윤재열·2022년 4월 28일
0

Mysql

목록 보기
8/8

사이드 프로젝트를 하며 DB설계를 하던중 데이터 형식(Data Types)이 궁금해져서 공부하면서 기록해보겠습니다.

  • MySQL에서 데이터 형식의 종류는 30개 가까이 됩니다.
  • 모두 외우는 것은 무리이며 자주 사용하는 것 위주로 살펴 보겠습니다.

숫자 데이터 형식

데이터 형식바이트 수숫자 범위설명
SMALLINT1-32,768 ~32,768정수
INT,INTEGER4약 -21억~+21억정수
BIGINT8약 -900경~ +900경정수
FLOAT4-3.40E+38 ~ -1.17E -38소수점 아래 7자리까지 표현
DECIMAL(m,[d])5~17-10의 38승+1 ~ +10의38승-1전체 자릿수(m)와 소숫점 이하 자릿수(d)를 가진 숫자형
  • DECIMAL 데이터 형식은 정확한 수치를 저장하게 되고 FLOAT,DOUBLE은 근사치의 숫자를 저장합니다.
    (대신 FLOAT,DOUBLE 은 상당히 큰 숫자를 저장할 수 있다는 장점이 있습니다.)
  • 그러므로 소수점이 들어간 실수를 저장하려면 되도록 DECIMAL을 사용하는 것이 바람직 합니다.
  • 예를 들어 -999999.99부터 +999999.99까지의 숫자를 저장할 경우에는 DECIMAL(9,2)로 설정합니다.

문자 데이터 형식

데이터 형식바이트수설명
CHAR(n)1~255고정 길이 문자형. n을 1부터 255까지 지정.character의 약자,그냥 CHAR만 쓰면 CHAR(1)과 동일
VARCHAR(n)1~65535가변길이 문자형. n을 사용하면 1부터 65535까지 지정, Variable character의 약자
BINARY(n)1~255고정길이의 이진 데이터 값
BLOB1~65535N크기의 BLOB데이터 값
LONGTEXT1~4294967295최대 4GB 크기의 TEXT 데이터 값
  • ChAR 형식은 고정길이 문자형으로 자릿수가 고정되어 있습니다.
    -예를 들어, CHAR(100)에 "ABC"3글자만 저장해도 100자리를 모두 확보한 후에 앞에 3자리를 사용하고 뒤의 97자리는 낭비하게 되는 결과가 나옵니다.

  • VARCHAR 형식은 가변길이 문자형으로 VARCHAR(100)에 "ABC" 3글자를 저장할 경우에 3자리만 사용하게 됩니다.
    -그래서 공간을 효율적으로 운영할 수 있습니다.

  • 하지만, CHAR형식으로 설정하는 것이 INSERT/ UPDATE 시에 일반적으로 더 좋은 성능을 발휘합니다.

  • BINARY와 VARBINARY는 바이트 단위의 이진 데이터 값을 저장하는데 사용됩니다.

  • TEXT형식은 대용량의 글자를 저장하기 위한 형식으로 필요에 따라서 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT 등의 형식을 사용할 수 있습니다.

  • BLOB도 필요한 크기에 따라서 TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB 등의 형식을 사용할 수 있습니다.

날짜와 시간 데이터 형식

데이터 형식바이트 수설명
DATE3날짜는 1001-01-01 ~ 9999-12-31 까지 저장되며 날짜 형식만 사용 'YYYY-MM-DD'형식으로 사용됨.
TIME3-838:59:59.000000 ~ 838:59:59.000000 까지 저장 되며 , 'HH:MM:SS'형식으로 사용합니다.
DATETIME8날짜는 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 까지 저장되며 형식은 'YYYY-MM-DD HH:MM:SS' 형식으로 사용합니다.
TIMESTAMP4날짜는 1001-01-01 00:00:00 ~ 9999-12-31 23:59:59 까지 저장되며 형식은 'YYYY-MM-DD HH:MM:SS' 형식으로 사용합니다. time_zone 시스템 변수와 관련이 있으며 UTC시간대 변환하여 저장합니다.
YEAR11901~ 2155까지 저장. 'YYYY'형식으로 사용합니다.
profile
블로그 이전합니다! https://jyyoun1022.tistory.com/

0개의 댓글