>  기사  >  데이터 베이스  >  MYSQL에서 int(11)은 무엇을 나타냅니까?

MYSQL에서 int(11)은 무엇을 나타냅니까?

小云云
小云云원래의
2017-12-19 16:13:262323검색

직장에서 mysql을 다루어야 하는 경우가 많지만, mysql의 다양한 필드 유형에 대해서는 항상 막연하게 이해하고 있었습니다. MYSQL에서 int(11)은 무엇을 의미하나요? 잘 모르실 수도 있어서 요약해서 기록하고자 이 글을 썼습니다.

MYSQL에서 int(11)은 무엇을 나타냅니까?

사실 위의 그림은 int 유형에 대한 몇 가지 기본 지식을 매우 명확하게 보여주었습니다. 여기서는 일반적으로 사용되는 int(11)이 무엇을 의미하는지 오랫동안 생각했습니다. 이것은 int의 길이가 11자리라는 것을 나타냅니다. 어느 날 기사를 읽고 나서야 11은 길이가 아니라 문자의 표시 너비를 나타냅니다. int, 표시 너비가 어떻게 설정되든 int 유형 저장할 수 있는 최대값과 최소값은 항상 고정입니다. 다음은 일부 원본 텍스트 조각입니다

괄호 안의 숫자는 최대값을 결정하지 않습니다. 및 정수 필드에 저장할 수 있는 최소값은 항상 고정되어 있습니다.

열의 표시 너비는 해당 열에 저장할 수 있는 최대값에 영향을 주지 않습니다. INT(5) 또는 INT(11)을 사용하면 동일한 최대값을 저장할 수 있습니다. 또한 INT(20) 열이 있으면 20자리 값(BIGINT 값)을 저장할 수 있다는 의미는 아닙니다. 열은 여전히 ​​INT의 최대값까지만 저장됩니다.

기사에 나와 있듯이 int 유형의 표시 너비를 어떻게 설정하더라도 int가 저장할 수 있는 최대값과 최소값은 고정되어 있습니다. . 그렇다면 이 디스플레이 너비의 용도는 무엇입니까?
int 필드 유형이 unsigned0으로 채워짐(UNSIGNED ZEROFILL)으로 설정된 경우 자릿수가 설정된 표시 너비에 도달하지 않으면 설정된 표시 너비가 될 때까지 값 앞에 0이 추가됩니다. ZEROFILL 속성이 암시적으로 값을 부호 없는 유형으로 변환하므로 음수 값을 저장할 수 없기 때문에 부호 없는 제한이 있습니다.

구체적으로 설명하기 위해 다음 코드를 사용합니다.

먼저 테이블을 생성하세요:

CREATE TABLE int_demo (
    id INT(11) NOT NULL AUTO_INCREMENT,
    a INT(11) NOT NULL,
    b INT(11) UNSIGNED ZEROFILL NOT NULL,
    c INT(5) DEFAULT NULL,
    d INT(5) UNSIGNED ZEROFILL NOT NULL,
    e INT(15) DEFAULT NULL,
    PRIMARY KEY (`id`)
)

두 개의 데이터 조각을 삽입하세요

INSERT INTO int_demo (a, b, c, d, e) VALUES (1, 1, 1, 1, 1);
INSERT INTO int_demo (a, b, c, d, e) VALUES (1234567890, 1234567890, 1234567890, 1234567890, 1234567890);
 select * from int_demo;
id a b c d e
1 1 00000000001 1 00001 1
2 1234567890 01234567890 1234567890 1234567890 1234567890

참고: 내비게이션 소프트웨어를 사용하여 쿼리하는 경우 왼쪽에 0이 표시됩니다. 표시되지 않습니다. 하지만 데이터를 내보낼 때 실제 데이터를 볼 수 있습니다. 소프트웨어가 데이터 형식을 처리한 것 같습니다.

이전 예에서 다음과 같은 결론을 내릴 수 있습니다.

  1. 필드가 부호 없음으로 설정되고 속성이 0으로 채워지면 이 필드에 어떤 값이 저장되든 관계없이 값의 길이는 다음과 일치합니다. 예를 들어, 위의 예에서 필드 b에 삽입된 값 1은 00000000001로 표시되고 길이가 11자리에 도달할 때까지 왼쪽에 10개의 0이 추가됩니다.

  2. field는 필드 저장 값의 범위를 제한하지 않습니다. 예를 들어 필드 d는 int(5)로 설정되어 있지만 10자리 숫자 1234567890을 저장할 수 있습니다.

  3. 에서 설정한 문자 너비는 값 길이가 너비를 충족하지 않는 경우(예: d 필드 int(5)), 1을 삽입하면 길이가 5 미만이므로 5자리가 될 때까지 왼쪽에 0을 4개 추가하지만 1234567890을 삽입하면 초과합니다. 5자리이며 현재 표시 너비는 작동하지 않습니다. Related Related 권장 사항 : MySQL이 쿼리 데이터의 결과를 자동으로 직렬화하는 방법에 대한 연관

위 내용은 MYSQL에서 int(11)은 무엇을 나타냅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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