mysql 테이블 필드를 디자인할 때 int(5)는 필드 길이가 5라는 뜻인가요?
그렇게 생각하신다면 계속해서 읽어주시면 새로운 것을 얻으리라 믿습니다.
기본 키 ID 하나와 길이 필드 하나만 있는 새 테이블을 생성합니다. 여기서 길이 필드는 int(5)로 설정됩니다.
#新建test表 CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `length` int(5) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
길이 필드에는 길이가 5 이하인 숫자만 저장할 수 있다는 것이 사실인가요? 데이터를 삽입해 볼까요?
123456789라는 더 큰 데이터를 삽입합니다. 이 데이터는 정상적으로 삽입이 가능한지 확인하기 위해 총 9자리입니다.
#插入一条大数据 insert into test (length) values (123456789);
int(5)는 5보다 큰 길이의 데이터를 삽입할 수 있다는 것이 밝혀졌으므로 이제 int(5)가 데이터의 너비를 나타내지 않는다는 것이 확실해졌습니다.
#查看插入数据 mysql> select * from test; +------------+-----------+ | id | length | +------------+-----------+ | 1 | 123456789 | +------------+-----------+
mysql에서는 int 필드의 길이가 실제로 4바이트로 고정되어 있습니다. int(11)을 사용하든 int(5)를 사용하든 필드의 길이는 4바이트로 고정되어 있습니다.
int(5)는 실제로 다른 속성인 zerofill과 함께 사용됩니다. 즉, 필드 값의 너비가 5보다 작으면 너비가 크거나 같으면 자동으로 앞에 0이 채워집니다. 5로 설정하려면 0을 채울 필요가 없습니다.
#int(5) length 字段添加了 zerofill 属性 mysql> select * from test; +----+--------+ | id | length | +----+--------+ | 1 | 00888 | | 2 | 00012 | | 3 | 12345 | | 4 | 123456 | +----+--------+
이 필드에 zerofill 속성을 추가해야 합니다. 그렇지 않으면 int(5)가 작동하지 않습니다.
#int(5) length 字段没有 zerofill 属性 mysql> select * from test; +----+--------+ | id | length | +----+--------+ | 1 | 888 | | 2 | 12 | | 3 | 12345 | | 4 | 123456 | +----+--------+
정수 필드의 길이를 설정하려면tinyint, smallint,mediumint, int, bigint 유형을 선택해야 합니다. 이러한 정수 유형은 고정 길이를 나타냅니다.
부호 있는 정수를 저장하려는 경우 zerofill 속성은 지원되지 않으며 자동으로 0으로 변환됩니다. 이는 감소와 관련된 일부 비즈니스에서 고려해야 합니다.
위 내용은 mysql에서 int(5)의 길이는 얼마입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!