[Database] 데이터 타입

원알렉스·2020년 7월 4일
1

Database

목록 보기
12/15
post-thumbnail

타입(Data Type)

  • 테이블을 정의할 때는 필드별로 저장할 수 있는 타입까지 명시해야 합니다.
  • MySQL에서 제공하는 기본 타입은 다음과 같습니다.
  1. 숫자 타입
  2. 문자열 타입
  3. 날짜와 시간 타입

숫자 타입(Numeric Types)

  • MySQL은 SQL 표준에서 지원하는 모든 숫자 타입을 제공합니다.
  1. 정수 타입(Integer Type)
  2. 고정 소수점 타입(Fixed-Point Type)
  3. 부동 소수점 타입(Floating-Point Type)
  4. 비트값 타입(Bit-Value Type)

1) 정수 타입(Integer Type)

  • MySQL은 SQL 표준 정수 타입인 INTEGER(또는 INT)와 SMALLINT를 제공합니다.
  • 또한, 표준 정수 타입의 범위를 더욱 확장한 TINYINT, MEDIUMINT, BIGINT 까지 제공하고 있습니다.
  • 각 정수 타입에 따라 요구되는 저장 공간과 표현할 수 있는 최댓값과 최솟값이 다릅니다.
  • 또한, 정수 타입은 음수까지 표현할 수 있는 SIGNED 타입과 양수만을 표현할 수 있는 UNSIGNED 타입으로도 구분됩니다.

2) 고정 소수점 타입(Fixed-Point Type)

  • MySQL에서 고정 소수점 타입인 DECIMAL은 실수의 값을 정확하게 표현하기 위해 사용됩니다.
  • DECIMAL에서 사용하는 고정 소수점 방식은 실수를 표현할 때 소수부의 자릿수를 고정하여 표현합니다.
  • 즉, 소수부의 자릿수를 미리 정해 놓고, 고정된 자릿수로만 소수 부분을 표현하는 방식입니다.
DECIMAL(M, D)
  • M은 소수 부분을 포함한 실수의 총 자릿수를 나타내며, 최댓값은 65입니다.
  • D는 소수 부분의 자릿수를 나타내며, D가 0이면 소수부분을 가지지 않는 것입니다.

3) 부종 소수점 타입(Floating-Point Type)

  • MySQL에서 부동 소수점 타입인 FLOATDOUBLE은 실수의 값을 대략적으로 표현하기 위해 사용됩니다.
  • FLOAT는 4바이트를 사용하며, DOUBLE은 8바이트를 사용합니다.
FLOAT(P)
  • FLOAT는 정밀도에 필요한 최소한의 비트 수를 명시할 수 있습니다.
  • P가 0부터 24까지의 값을 가질때는 FLOAT 값으로 취급되며, 25부터 53까지의 값을 가질때는 DOUBLE 값으로 취급됩니다.

4) 비트값 타입(Bit-Value Type)

  • MySQL에서 비트값 타입인 BIT는 비트의 값을 저장합니다.
  • 즉, 0과 1로 구성되는 바이너리 값을 저장할 수 있습니다.
BIT(M)
  • M의 범위는 1부터 64까지 설정할 수 있으며, 명시한 M 비트의 값을 저장할 수 있습니다.
  • 만약 명시한 M 비트보다 짧은 길이의 비트 값을 입력하면, 입력한 값 앞에 0을 추가하여 자동으로 길이를 맞춥니다.

문자열 타입

CHAR / VARCHAR

  • CHARVARCHAR 둘다 문자열 데이터를 저장할 수 있는 타입입니다.
  • 하지만 저장 방식과 추출 방식 그리고 최대 길이를 다루는 방식에서 차이점을 가집니다.
  • 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자리의 연도를 저장할 수 있습니다.
profile
Alex's Develog 🤔

0개의 댓글