#mysql #int #int(11) #tinyint(4) #tinyint(N) #int(N) #N값에대한정의

mrbang-00·2022년 6월 27일
0
post-thumbnail

DB테이블을 생성하다보면 varchar2(4000)이런식으로 형식을 지정하게 된다. varchar2는 문자열 이고 4000으로 명시시 4000byte를 사용할수 있게 된다. 통상 한글이 2Byte로 2000글자의 한글을 입력할수 있다.

But!!!!! 아래와 같이 int(11), tinyint(4) 형식으로 정수형 데이터옆에 (N) 형식으로 숫자를 명시할때가 있다.

(N) 이걸 ZEROFILL옵션이라고 한다.
ZEROFILL옵션이란 해당 데이터에 자료형 길이에는 영향이 없지만 괄호안 숫자만큼 빈칸을 0으로 채우라고 명시하는 부분이다.

자료형 별 데이터 범위

🧨signed와 unsigned차이

  • signed : 음수를 사용하겠다는 의미
  • unsigned : 음수를 사용하지 않겠다는 의미
  • 공통 UNSIGNED이면 0에서 양수 + 음수 합산 내역

TINYINT[(M)][UNSIGNED] [ZEROFILL]

  • 범위 : -128 에서 127 (UNSIGNED - 0~255)

SMALLINT[(M)][UNSIGNED] [ZEROFILL]

  • 범위 : -32768 에서 32767 (UNSIGNED - 0~65535)

MEDIUMINT[(M)][UNSIGNED] [ZEROFILL]

  • 범위 : -8388608 에서 8388607 (UNSIGNED - 0~16777215)

INT[(M)][UNSIGNED] [ZEROFILL]

  • 범위 : -2147483648 에서 2147483647 (UNSIGNED - 0~4294967295)
  • 주의 : 모든 연산은 "signed BIGINT" 로 이루어진다. 따라서 더하기 곱하기 등으로 "signed BIGINT" 의 범위를 벗어난다면 값이 틀려질 것이다.

NTEGER[(M)][UNSIGNED] [ZEROFILL]

  • 범위 : INT 와 동일

BIGINT[(M)][UNSIGNED] [ZEROFILL]

  • 범위 : -9223372036854775808 에서 9223372036854775807 (UNSIGNED 일 경우 0 에 18446744073709551615)

FLOAT[(M,D)][ZEROFILL]

  • 범위 : -3.402823466E+38 에서 -1.175494351E-38, 0 그리고 1.175494351E-38 에서 3.402823466E+38
  • 주의 : unsigned 를 설정할수 없다.

DOUBLE[(M,D)][ZEROFILL]

  • 범위 : -1.7976931348623157E+308 에서 -2.2250738585072014E-308, 0 그리고 2.2250738585072014E-308 에서 1.7976931348623157E+308
  • 주의 : unsigned 를 설정할수 없다.

REAL[(M,D)][ZEROFILL]

  • 범위 : DOUBLE 과 동일

DATE

  • 범위 : '1000-01-01' 에서 '9999-12-31'
  • 주의 : unsigned 설정불가

DATETIME

  • 범위 : '1000-01-01 00:00:00' 에서 '9999-12-31 23:59:59'

TIMESTAMP[(M)]

  • 범위 : '1970-01-01 00:00:00' 에서 2037

CHAR(M) [BINARY]

  • 범위 : 1 에서 255 글자
  • 주의 : 고정길이로 길이가 작은 값이 입력되면 오른쪽에 스페이스로 채워져서 입력된다. BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다.

VARCHAR(M) [BINARY]

  • 범위 : 1 에서 255 글자
  • 주의 : BINARY 키워드가 주어지지 않을 경우 대소문자 구분없이 검색한다.

TINYTEXT

  • 범위 : 최대 255 글자

TEXT

  • 범위 : 최대 65535 글자

MEDIUMTEXT

  • 범위 : 최대 16777215 글자

LONGTEXT

  • 범위 : 최대 4294967295 글자

ENUM('value1','value2',...)

  • 범위 : 'value1', 'value2', ..., or NULL 만이 입력가능
    최대 65535 개의 다른 값이 들어갈수 있음

SET('value1','value2',...)

  • 범위 : 'value1', 'value2', .., or NULL 만이 입력가능하다. 최대 64 개의 다른 값이 들어갈수 있음
profile
공부란 인생을 고화질로 보는것 https://linktr.ee/mrbang_00

0개의 댓글