집 >데이터 베이스 >MySQL 튜토리얼 >MYSQL에서 int(11)은 무엇을 나타냅니까?
직장에서 mysql을 다루어야 하는 경우가 많지만, mysql의 다양한 필드 유형에 대해서는 항상 막연하게 이해하고 있었습니다. MYSQL에서 int(11)은 무엇을 의미하나요? 잘 모르실 수도 있어서 요약해서 기록하고자 이 글을 썼습니다.
사실 위의 그림은 int 유형에 대한 몇 가지 기본 지식을 매우 명확하게 보여주었습니다. 여기서는 일반적으로 사용되는 int(11)이 무엇을 의미하는지 오랫동안 생각했습니다. 이것은 int의 길이가 11자리라는 것을 나타냅니다. 어느 날 기사를 읽고 나서야 11은 길이가 아니라 문자의 표시 너비를 나타냅니다. int, 표시 너비가 어떻게 설정되든 int 유형 저장할 수 있는 최대값과 최소값은 항상 고정입니다. 다음은 일부 원본 텍스트 조각입니다
괄호 안의 숫자는 최대값을 결정하지 않습니다. 및 정수 필드에 저장할 수 있는 최소값은 항상 고정되어 있습니다.열의 표시 너비는 해당 열에 저장할 수 있는 최대값에 영향을 주지 않습니다. INT(5) 또는 INT(11)을 사용하면 동일한 최대값을 저장할 수 있습니다. 또한 INT(20) 열이 있으면 20자리 값(BIGINT 값)을 저장할 수 있다는 의미는 아닙니다. 열은 여전히 INT의 최대값까지만 저장됩니다.
기사에 나와 있듯이 int 유형의 표시 너비를 어떻게 설정하더라도 int가 저장할 수 있는 최대값과 최소값은 고정되어 있습니다. . 그렇다면 이 디스플레이 너비의 용도는 무엇입니까?
int 필드 유형이 unsigned 및 0으로 채워짐(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이 표시됩니다. 표시되지 않습니다. 하지만 데이터를 내보낼 때 실제 데이터를 볼 수 있습니다. 소프트웨어가 데이터 형식을 처리한 것 같습니다.
이전 예에서 다음과 같은 결론을 내릴 수 있습니다.
필드가 부호 없음으로 설정되고 속성이 0으로 채워지면 이 필드에 어떤 값이 저장되든 관계없이 값의 길이는 다음과 일치합니다. 예를 들어, 위의 예에서 필드 b에 삽입된 값 1은 00000000001로 표시되고 길이가 11자리에 도달할 때까지 왼쪽에 10개의 0이 추가됩니다.
field는 필드 저장 값의 범위를 제한하지 않습니다. 예를 들어 필드 d는 int(5)로 설정되어 있지만 10자리 숫자 1234567890을 저장할 수 있습니다.
에서 설정한 문자 너비는 값 길이가 너비를 충족하지 않는 경우(예: d 필드 int(5)), 1을 삽입하면 길이가 5 미만이므로 5자리가 될 때까지 왼쪽에 0을 4개 추가하지만 1234567890을 삽입하면 초과합니다. 5자리이며 현재 표시 너비는 작동하지 않습니다. Related Related 권장 사항 : MySQL이 쿼리 데이터의 결과를 자동으로 직렬화하는 방법에 대한 연관
위 내용은 MYSQL에서 int(11)은 무엇을 나타냅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!