2009-10-27 4 views
39

저는 INT가 처리 할 수있는 것보다 더 큰 숫자가 있습니다.BIGINT (8)는 mysql이 저장할 수있는 최대 정수입니까?

이것은 다소 당황 스럽지만 솔직히 BIGINT (8)의 의미를 정확히 알지 못합니다. 8 비트가 최대 비트 값입니까, 아니면 최대 길이입니까?

그래서 BIGINT (1)은 한자리 수만 가능합니까? 아니면 BIGINT (1) 다른 무엇입니까? 나는 tinyint (1) max가 127이라고 생각한다. 어떻게 작동 하는가?

내가 BIGINT를 만들 수있는 가장 큰 것은 무엇입니까? mysql에 정수로 저장할 수있는 최대 수는 무엇입니까?

+0

거의 동일한 결론과 함께 같은 답변으로 5 개의 답변이 있습니다. :) – Abel

+1

예, 답을 하나만 선택할 수 있기 때문에 모두 upvoted :) – Citizen

답변

35

는 숫자가 표시되는 방법을 나타냅니다 -는 데이터가 저장되는 방식에 영향을주지 않습니다. the manual 가입일

:

다른 확장 임의적 타입의 기본 키워드 다음 괄호 정수 데이터 유형의 디스플레이 폭을 특정 MySQL을 지원하는 (예를 들어, INT (4)). 이 선택적 표시 너비는 응용 프로그램에서 공백으로 왼쪽 패딩하여 열에 지정된 너비보다 작은 정수 값을 표시하는 데 사용할 수 있습니다. 즉,이 너비는 결과 집합과 함께 반환되는 메타 데이터에 있습니다. 사용 여부는 응용 프로그램에 달려 있습니다.

표시 너비는 열에 저장할 수있는 값의 범위를 제한하지 않습니다 , 또는 컬럼에 대해 지정된 너비를 초과하는 값을 갖는 값에 대해 표시되는 자릿수. 예를 들어, SMALLINT (3)로 지정된 열은 -32768에서 32767 사이의 일반 SMALLINT | 위를 가지며 세 문자가 허용하는 범위를 벗어난 값은 3자를 초과하여 표시됩니다.

BIGINT는 항상 8 바이트이며, (서명) -9223372036854775808 9223372036854775807에 저장하거나 0 18,446,744,073,709,551,615에 (서명) 할 수 있습니다. 표시 될 때

10

대답은 this overview입니다. BIGINT는 실제로 8 바이트입니다. TinyInt 만 1.

Btw, 나는 -9223372036854775808에서 9223372036854775807까지의 범위를 고려하지 않고 +/- 2^63 :)입니다.

4

괄호 사이의 번호는 "디스플레이 폭 '이고, 데이터 타입은 실제로 저장 수의 범위 무관 할 수있다.

가 BIGINT의 범위는 부호없는 범위 당신은 여기에 대한 자세한 내용은 찾을 수 0

18446744073709551615.에있다 -9223372036854775808 9223372036854775807.하는 것입니다 http://dev.mysql.com/doc/refman/5.4/en/numeric-type-overview.html

2

128 비트 정수를 저장하려면를, 당신이 BINARY를 사용할 수 있습니다 (16).252

:

SELECT RIGHT (CONCAT (REPEAT (\ "0", 16), UNHEX (CONV (252,10,16))), 16);

또는 등가 적으로 :

SELECT UNHEX (RIGHT (CONCAT (REPEAT ("0", 32), HEX (252)), 32));

참조 최근의 IPv6 기능 INET6_ATON()와 INET6_NTOA(), http://dev.mysql.com/doc/refman/5.6/en/miscellaneous-functions.html#function_inet6-aton (하지만 MySQL의 정수 계산은 64 비트입니다) 그리고 그들은 VARBINARY (16)를 사용하는 방법에 대해 설명합니다.

관련 문제