집 >데이터 베이스 >MySQL 튜토리얼 >mysql의 긴 정수 유형은 무엇입니까?
mysql의 긴 정수 유형은 "BIGINT"입니다. BIGINT는 ab 바이트 또는 64비트 정수 값으로 매우 큰 정수 값을 저장할 때 매우 유용합니다. BIGINT는 다른 정수 데이터 유형과 마찬가지로 부호 있는 데이터 유형이나 부호 없는 데이터 유형일 수 있습니다. 부호 있는 데이터 유형은 열이 양수 및 음수 정수 값을 저장할 수 있음을 의미하고, 부호 없는 데이터 유형은 열이 양수 값만 저장할 수 있음을 의미합니다. 서명된 BIGINT 유형의 범위는 "-9223372036854775808"에서 "9223372036854775807" 사이입니다.
이 튜토리얼의 운영 환경: 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;
예제 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의 긴 정수 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!