>데이터 베이스 >MySQL 튜토리얼 >mysql의 긴 정수 유형은 무엇입니까?

mysql의 긴 정수 유형은 무엇입니까?

青灯夜游
青灯夜游원래의
2022-06-14 16:40:295133검색

mysql의 긴 정수 유형은 "BIGINT"입니다. BIGINT는 ab 바이트 또는 64비트 정수 값으로 매우 큰 정수 값을 저장할 때 매우 유용합니다. BIGINT는 다른 정수 데이터 유형과 마찬가지로 부호 있는 데이터 유형이나 부호 없는 데이터 유형일 수 있습니다. 부호 있는 데이터 유형은 열이 양수 및 음수 정수 값을 저장할 수 있음을 의미하고, 부호 없는 데이터 유형은 열이 양수 값만 저장할 수 있음을 의미합니다. 서명된 BIGINT 유형의 범위는 "-9223372036854775808"에서 "9223372036854775807" 사이입니다.

mysql의 긴 정수 유형은 무엇입니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

정수형은 숫자형 데이터라고도 합니다. 숫자형 데이터형은 주로 숫자를 저장하는 데 사용됩니다.

MySQL은 다양한 숫자 데이터 유형을 제공합니다. 다양한 데이터 유형은 저장할 수 있는 값 범위가 클수록 필요한 저장 공간도 커집니다.

MySQL에서 제공하는 주요 정수 유형은 TINYINT, SMALLINT, MEDIUMINT, INT 및 BIGINT이며 AUTO_INCREMENT 자동 증가 제약 조건을 해당 속성 필드에 추가할 수 있습니다. 다음 표에는 MySQL의 숫자 유형이 나열되어 있습니다.

Type Size Range(서명됨) Range(unsigned) Purpose
TINYINT 1바이트 (-128, 127) (0, 255) 작은 정수 값
SMALLINT 2바이트 (-32 768, 32 767) (0, 65 535) 큰 정수 값
MEDIUMINT 3개 바이트 (-8 388 608, 8 388 607) (0, 16 777 215) 큰 정수 값
INT 또는 INTEGER 4바이트 (-2 147 483 648 , 2 147 483 647) (0 , 4 294 967 295) 큰 정수 값
BIGINT 8바이트 (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0, 18 446 744 073 709 551 615) 최대 정수 값

위 표에서 볼 수 있듯이 다양한 유형의 정수 저장에 필요한 바이트 수가 다릅니다. TINYINT 유형이 가장 작은 바이트 수를 차지하고 BIGINT 유형이 가장 많은 바이트를 차지합니다. 더 많은 바이트를 차지할수록 표현할 수 있는 값의 범위가 커집니다. 따라서 mysql의 긴 정수 유형은 "BIGINT"입니다.

MySQL BIGINT

BIGINT는 ab 바이트 또는 64비트 정수 값으로, 큰 정수 값을 저장할 때 매우 유용합니다.

MySQL BIGINT는 다른 MySQL 정수 데이터 유형과 마찬가지로 서명되거나 서명되지 않을 수 있습니다. 부호 있는 데이터 유형은 열이 양수 및 음수 정수 값을 모두 저장할 수 있음을 의미합니다. 이는 MySQL에서 대부분의 정수 유형에 대한 기본 유형입니다. 따라서 모든 정수 유형 열은 명시적으로 지정하지 않는 한 양수와 음수를 모두 저장할 수 있습니다.

반면에 부호 없는 데이터 유형은 열에 양의 정수 값만 저장할 수 있음을 의미합니다.

서명된 MySQL BIGINT 유형의 범위는 -9223372036854775808에서 9223372036854775807 사이입니다.

서명되지 않은 BIGINT 유형의 경우 값 범위는 0~18446744073709551615입니다.

BIGINT 유형의 또 다른 속성은 ZEROFILL입니다. 열에 이 속성을 지정하면 해당 열은 자동으로 UNSIGNED로 설정됩니다.

zerofill 속성은 공백을 0으로 채웁니다.

BIGINT 예:

BIGINT 유형을 사용하는 방법을 설명하기 위해 몇 가지 예를 살펴보겠습니다.

CREATE DATABASE IF NOT EXISTS integers;
USE integers;

다음으로, 아래 쿼리에 표시된 대로 테이블을 만들고 다양한 BIGINT 열로 채워 보겠습니다.

CREATE TABLE examples(x BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, y BIGINT UNSIGNED, z BIGINT ZEROFILL );

예제 1

먼저 모든 양수 값을 추가해 보겠습니다. ​​테이블로:

INSERT INTO examples(x,y,z) VALUES (1,2,3);

위의 예제 쿼리에서 이러한 값은 signed, unsigned 및 zerofill BIGINT 유형 범위에 있기 때문에 허용됩니다.

SELECT * FROM examples;

mysql의 긴 정수 유형은 무엇입니까?

예제 2

다음 경우에는 음수 값을 모두 추가해 보겠습니다. 쿼리 예는 다음과 같습니다.

INSERT INTO examples(x,y,z) VALUES (-1,-2,-3);
ERROR 1264 (22003): Out of range value for column 'y' at row 1

이 경우 y 열이 부호가 없기 때문에 쿼리가 실패합니다. 따라서 열에 음수 값을 할당하는 것은 열 범위를 벗어나는 것입니다.

예제 3

위의 세 번째 열과 비슷한 상황을 관찰할 수 있습니다. zerofill 속성은 자동으로 열을 부호 없는 상태로 만들어 범위를 벗어나는 음수 값을 추가하게 합니다. 예는 다음과 같습니다:

INSERT INTO examples(x,y,z) VALUES (-1,2,-3);
ERROR 1264 (22003): Out of range value for column 'z' at row 1

예제 4

이제 각 유형의 최대값을 추가해 보겠습니다. 쿼리 예는 다음과 같습니다.

INSERT INTO examples(x,y,z) VALUES (-9223372036854775808, 9223372036854775808, 9223372036854775808);

위 예에서는 모든 값이 범위 내에 있으므로 쿼리가 성공적으로 실행됩니다.

다음 쿼리를 고려해보세요.

INSERT INTO examples(x,y,z) VALUES (9223372036854775807, 9223372036854775808, 9223372036854775808);

모든 값이 최대값임을 알 수 있습니다. x 열이 AUTO_INCREMENT로 설정되어 있으므로 여기에 값을 추가하면 실패합니다.

INSERT INTO examples(y,z) VALUES (9223372036854775808, 9223372036854775808);
ERROR 1062 (23000): Duplicate entry '9223372036854775807' for key 'examples.PRIMARY'

그러나 MySQL에서 엄격 모드가 비활성화된 경우 범위를 벗어난 값을 삽입할 수 있습니다.

SELECT * FROM examples;

mysql의 긴 정수 유형은 무엇입니까?[관련 권장 사항:

mysql 비디오 튜토리얼

]

위 내용은 mysql의 긴 정수 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.