MySQL DataType 과 최대값, 최소값

황제낙엽 2007.09.03 17:52 조회 수 : 207 추천:94

sitelink1  
sitelink2  
extra_vars5  
extra_vars6  
TypeBytesMinimum ValueMaximum Value
  (Signed/Unsigned)(Signed/Unsigned)
TINYINT1-128127
  0255
SMALLINT2-3276832767
  065535
MEDIUMINT3-83886088388607
  016777215
INT4-21474836482147483647
  04294967295
BIGINT8-92233720368547758089223372036854775807
  018446744073709551615

Column TypeStorage Required
DATE3 bytes
DATETIME8 bytes
TIMESTAMP4 bytes
TIME3 bytes
YEAR1 byte

Column Type``Zero'' Value
DATETIME'0000-00-00 00:00:00'
DATE'0000-00-00'
TIMESTAMP00000000000000
TIME'00:00:00'
YEAR0000

MySQL 에서 INT 는 4바이트입니다. -2147483648 ~ 2147483647 까지 표현할 수 있죠.

UNSIGNED INT는 0 ~ 4294967295 까지 표현할 수 있습니다.

INT나 UNSIGNED INT 모두 표현할 수 있는 숫자의 종류는 2^32 = 4294967296 가지 입니다.

단지 표현 범위가 다를 뿐이죠.

그리고 말씀하신 0 ~ 255 까지 표현이 가능한건 TINYINT UNSIGNED 입니다.

그냥 TINYINT 는 -128 ~ 127 까지 표현이 가능합니다.

같은개수의 비트에서 음수를 표현하려면 제일 처음의 비트는 부호비트로 사용된답니다.

부호비트를 사용하지 않으면 숫자의 최대 크기가 두배가 되겠죠.

아무튼.. UNSIGNED 를 사용하는 이유는 컬럼의 효율성을 목적으로 합니다.

컬럼에 들어갈 값이 0~200 까지의 숫자라면 TINYINT UNSIGNED(0~255) 를 사용하던가

SMALLINT(-32768 ~ 32767) 등을 사용할 수 있지만 1바이트짜리 TINYINT UNSIGNED를

사용하는게 가장 적은 공간을 차지하기 때문에 가장 올바른 선택이라고 할 수 있죠.

UNSIGNED 라는게 존재하지 않으면 공간을 두배나 차지하는 SMALLINT를 사용하는 수밖에요.

번호 제목 글쓴이 날짜 조회 수
38 root 암호 분실시 초기화 방법 황제낙엽 2017.04.06 2812
37 [HeidiSQL] Library libmariadb.dll could not be loaded. Please select a different one. file 황제낙엽 2021.09.10 1414
36 MySQL을 로컬이 아닌 외부에서 접속하기 위한 확인 사항 황제낙엽 2018.11.30 770
35 MySQL에서 Data Too Long 이라는 오류를 만났을 경우...(MYSQL5) 황제낙엽 2007.04.04 519
34 mysql 프롬프트에서 외부의 sql스크립트 파일 실행하기 황제낙엽 2005.11.22 504
33 phpMyAdmin file 황제낙엽 2007.11.11 472
32 mysql 명령어 요약( db생성, user생성, db-user적용) 황제낙엽 2006.12.25 440
31 DATETIME 컬럼에 날짜 입력 예제 (java코드) 황제낙엽 2019.05.29 374
30 우분투, MariaDB, phpmyadmin 설치하기 file 황제낙엽 2017.01.31 300
29 MySQL 원격 접속하기 황제낙엽 2007.03.09 270
28 mysql latin1을 utf-8로 바꾸기 황제낙엽 2007.01.29 267
27 mysql database를 검사후 재시작하는 스크립트 황제낙엽 2004.11.22 244
» DataType 과 최대값, 최소값 황제낙엽 2007.09.03 207
25 mysql에 오라클의 rownum같은 필드를 추가하기 (java code) 황제낙엽 2007.05.19 185
24 [phpMyAdmin] 설치 및 보안설정 (How to Install and Secure phpMyAdmin on localhost for Windows) file 황제낙엽 2019.07.19 184
23 세상에 공짜는 없다(MySQL 의 대안) file 황제낙엽 2016.05.24 151
22 mysql의 fragmentation (파일 조각 모음) 황제낙엽 2004.11.18 133
21 문서 내부에 검색어가 포함되었는지를 조회 황제낙엽 2020.07.23 120
20 MYSQL_FRONT(3.0) 원격데이타베이스 관리 툴입니다. 황제낙엽 2005.11.18 108
19 cmd창에서 mysql을 root계정으로 접속하는 방법 황제낙엽 2004.11.18 94