mysql에서 테이블을 생성할 때 int 유형 뒤의 길이는 무엇을 의미하나요? 열에 값을 저장할 수 있는 최대 너비가 있습니까? int(1)로 설정해도 10,100,1000을 저장할 수 있는 이유는 무엇입니까?
int(1)의 길이 1이 허용되는 저장 너비를 나타내지 않는다는 것을 당시에는 알고 있었지만 합리적인 수준이 아니었습니다. 설명. 즉, 저는 이 길이가 무엇을 나타내는지 실제로 연구하지 않았습니다. 저는 보통 int(11)를 사용하는데 왜 11비트가 필요한지 모르겠습니다. 그래서 인터넷에서 몇 가지 정보를 확인하고 int 데이터 유형에 대해 mysql 매뉴얼에 나와 있는 내용도 주의 깊게 읽어보았습니다.
추천: "mysql tutorial"
다음은 mysql의 각 정수 유형의 저장 공간과 범위입니다. manual)
테이블에는 필드 유형, 점유된 바이트 수, 저장 가능한 최소값, 저장 가능한 최대값의 4개 열이 있습니다.
int 유형을 예로 들어보겠습니다.
int 유형 , 점유 단어 섹션 수는 4바이트입니다. 컴퓨터 원리를 공부한 학생들은 바이트가 컴퓨터 저장의 가장 작은 단위가 아니라는 것을 알아야 합니다. 비트는 0 또는 1을 나타냅니다. ; 8비트가 바이트를 구성합니다. 일반적으로 바이트는 대문자 B로 표시되고 비트는 소문자 b로 표시됩니다.
컴퓨터 저장 단위 변환:
1B=8b
1KB=1024B
1MB= 1024KB
그러면 int 유형이 저장할 수 있는 바이트 수는 4바이트이므로 int UNSIGNED(unsigned) 유형이 저장할 수 있는 최소값은 0이고 최대값은 4294967295(즉, 4B)라고 계산할 수 있습니다. =32b, 최대값은 32개로 구성됨);
다음으로 테이블을 만들 때 필드 길이에 대해 이야기해 보겠습니다.
CREATE TABLE test ( id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , number INT( 5 ) NOT NULL ) ENGINE = MYISAM ;
테스트 테이블의 숫자 필드를 예로 들면, 내가 만든 것은 다음과 같습니다. int (5)
이 길이/값은 mysql 매뉴얼에서 "M"으로 표시됩니다. 주의 깊은 친구들은 mysql 매뉴얼에서 다음 문장을 알아차렸을 것입니다: M은 최대 디스플레이 너비를 나타냅니다. 최대 유효 표시 너비는 255입니다. 표시 너비는 저장 크기나 유형에 포함된 값의 범위와 관련이 없습니다.
이 문장에는 "최대 표시 너비"라는 쉽게 혼동되는 키워드가 있기 때문에 이해하기 쉽지 않은 것 같습니다. 우리의 첫 번째 반응은 이 필드에 대한 저장 가능한 값의 최대 너비입니다. int(1)을 구축하면 데이터 10을 저장할 수 없다고 생각했습니다. 그렇지 않습니다.
이 M=5는 MYSQL 데이터베이스에 저장된 데이터를 알리기 위해 이 길이를 설정했기 때문에 간단히 이해할 수 있습니다. 물론, 5자리가 아닌 경우(이 유형의 저장 범위 내에 있는 한) MYSQL에서도 정상적으로 저장할 수 있습니다. 이는 위에서 빨간색으로 표시된 단어를 설명할 수도 있습니다.
이 필드의 "속성"을 "UNSIGNED ZEROFILL로 변경하고 효과를 살펴보겠습니다.
이제 숫자 필드의 길이(M)=5, 속성 = UNSIGNED ZEROFILL을 확인합니다. (부호 없음, 자릿수를 채우려면 0을 사용하십시오.) 이 속성을 설정한 후 테이블에 데이터를 삽입하면 시스템은 자동으로 숫자 필드 M을 왼쪽에 0으로 채우고 5자리 미만으로 채웁니다. follow
매뉴얼에는 다음과 같은 문장도 있습니다. "mysql을 일부 복잡한 연결(조인)에 사용할 때 임시 테이블을 생성할 때 문제가 발생할 수 있습니다. 이 경우 mysql은 모든 값을 신뢰하기 때문입니다. 원래 열 너비에 맞게 이 너비를 적절하게 설정하는 방법도 궁금합니다.
하지만 이 문서를 읽고 나서 분명히 알아야 할 한 가지는 길이 M은 저장하는 숫자의 크기와 아무런 관련이 없다는 것입니다.
위 내용은 MySQL int형의 길이값 문제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!