[SQL] SQL 자료형 정리

impala·2023년 1월 6일
0

SQL 문법

목록 보기
1/8
post-thumbnail

SQL에 자료형의 종류가 많은 이유
: 각 행이 추가될 때마다 자료형만큼의 공간이 할당되기 때문에
필요 이상으로 큰 자료형이 사용되면 저장공간이 낭비됨.

숫자 자료형

정수

자료형ByteSIGNEDUNSIGNED개수
TINYINT1-128~1270~2552^8개
SMALLINT2-32,768 ~ 32,7670 ~ 65,5352^16개
MEDIUMINT3-8,388,608 ~ 8,388,6070 ~ 16,777,2152^24개
INT4-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,2952^32개
BIGINT8-2^63 ~ 2^63 - 10 ~ 2^64 - 12^64개

실수

고정 소수점

  • 소수점의 위치를 지정하는 방식으로 정확한 값을 나타냄
  • 부동 소수점 방식에 비해 범위가 좁음
  • 각 자릿수가 문자로 저장됨
  • DECIMAL(s, d)
    • s : 실수 부분 자릿수(< 65)
    • d : 소수 부분 자릿수

부동 소수점

  • 가수와 지수(x * 10^y)를 사용하여 실수를 표현하는 방식으로 넓은 범위의 수를 표현함
  • 고정 소수점 방식에 비해 값이 덜 정확함
  • 가수부분과 지수부분이 숫자로 저장됨
  • FLOAT : 4Byte
  • DOUBLE : 8Byte

문자 자료형

문자열

자료형설명Byte최대Byte
CHAR(s)고정크기(남는 글자수는 스페이스로 채움)sByte(고정값)255Byte
VARCHAR(s)가변크기실제 글자수(최대s) + 1Byte(글자수 정보)65,535Byte
  • ex)

    문자열CHAR(4)ByteVARCHAR(4)Byte
    'ab''ab '4Byte'ab'3Byte
    'abcd''abcd'4Byte'abcd'5Byte
    'abcdef''abcd'4Byte'abcd'5Byte
  • 검색속도는 VARCHAR보다 CHAR이 더 빠름
  • VARCHAR형 데이터의 길이가 4글자 이하면 CHAR로 자동 변환

텍스트

자료형최대Byte
TINYTEXT255Byte
TEXT65,535Byte
MEDIUMTEXT16,777,215Byte
LONGTEXT4,294,967,295Byte
  • TINYTEXT, TEXT는 VARCHAR보다 최대 글자수가 작거나 같지만 텍스트 자료형을 쓰는 이유는 VARCHAR의 경우 인라인으로 저장되기 때문에 문자열이 긴 경우 다른 정보를 담을 수 없지만, TINYTEXT나 TEXT는 별도의 저장공간에 따로 저장하기 때문에 텍스트의 길이가 긴 경우 문자열 자료형을 사용하는 것이 좋다.
    (MYSQL에서 1행에 저장될 수 있는 최대 한도 : 65,535Byte = VARCHAR형 문자열 최대길이)

시간 자료형

자료형형식설명
DATEYYYY-MM-DD
TIMEHHH:MM:SS
DATETIMEYYYY-MM-DD HHH:MM:SS입력된 시간을 문자 그대로 저장, 8Byte
TIMESTAMPYYYY-MM-DD HHH:MM:SSMYSQL이 설치된 컴퓨터의 시간대를 기준으로 저장, 4Byte
  • DATETIME : 시간 데이터를 그대로 저장할 때 사용(역사적인 시간 등), 1000~9999년
  • TIMESTAMP : 시차를 반영한 시간을 저장할 때 사용(게시물 작성 시간 등), 1970~2038년
  • TIMESTAMP형 데이터의 경우 아무것도 적지 않으면 자동으로 현재시간 저장

기타 자료형

참고자료

0개의 댓글