먼저 mysql에서 문자열 유형 varchar(M)과 숫자 유형 tinyint(M)의 차이점을 알아볼까요?
문자열 열 유형: varchar(M) 측면에서 M은 필드에 저장할 수 있는 최대 문자 길이, 즉 필드 길이입니다. 설정에 따라 필드 길이를 초과하는 데이터를 삽입할 경우 오류가 발생할 수 있으며, 오류가 발생하지 않더라도 삽입한 데이터는 미리 정의된 필드 길이에 맞게 자동으로 잘립니다. 따라서 varchar(20)과 varchar(40)은 서로 다릅니다. 이는 필드가 저장할 수 있는 데이터의 길이를 실제로 반영합니다 .
숫자 열 유형: 길이 수정자는 최대 표시 너비를 나타내며 필드의 물리적 저장과는 아무 관련이 없습니다. 즉,tinyint(1)과tinyint(4)가 저장할 수 있는 숫자 범위는 모두 -128...127(또는 부호 없는 값의 경우 0...255)입니다. 물론 동일한 데이터 유형입니다. , 여전히 약간의 차이가 있습니다. 아래 지침이 있습니다. tinyint
데이터 유형의 경우 1바이트만 차지합니다.
- 서명됨, 범위는 -128~127, 기본 길이는 4입니다.Range 알고리즘
:tinyint는 1바이트를 차지하고, 1바이트는 8비트, 즉 1*8=8로 표현할 수 있는 숫자의 수는 2의 8승(2^8 = 256개)입니다. ) .
Difference: zerofill을 사용하는 경우 실제 길이가 지정된 표시 길이에 도달하지 않으면 앞에 0이 채워집니다. (zerofill의 기능은 간단히 말해서 0을 채우는 것입니다)Test
CREATE TABLE `pre_demo` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', `unsigned_t` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000', `signed_t` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000', `t1` tinyint(1) unsigned zerofill NOT NULL DEFAULT '0', `t2` tinyint(2) unsigned zerofill NOT NULL DEFAULT '00', `t3` tinyint(3) unsigned zerofill NOT NULL DEFAULT '000', `t4` tinyint(4) unsigned zerofill NOT NULL DEFAULT '0000', `t5` tinyint(5) unsigned zerofill NOT NULL DEFAULT '00000', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
그런 다음 테스트 데이터를 삽입합니다.
NSERT INTO pre_demo VALUES(NULL,8,8,8,8,8,8,8); INSERT INTO pre_demo VALUES(NULL,123,123,123,123,123,123,123);
마지막으로 데이터 테이블의 데이터를 쿼리합니다.
rrreerrree위 내용은 Mysqltinyint(1)과tinyint(4)의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!