在MySQL中,INT 是一种整数数据类型,用于存储整数值。INT 类型有不同的长度变体,但它们的存储大小和范围是固定的。MySQL中的INT类型有以下几种:
TINYINT: 1字节,范围是 -128 到 127(无符号是 0 到 255)SMALLINT: 2字节,范围是 -32768 到 32767(无符号是 0 到 65535)MEDIUMINT: 3字节,范围是 -8388608 到 8388607(无符号是 0 到 16777215)INT: 4字节,范围是 -2147483648 到 2147483647(无符号是 0 到 4294967295)BIGINT: 8字节,范围是 -9223372036854775808 到 9223372036854775807(无符号是 0 到 18446744073709551615)尽管INT类型有长度的概念(如INT(11)),但这只是显示宽度,并不影响存储大小或数值范围。显示宽度仅用于显示时的格式化,如果插入的值超过了显示宽度,MySQL会自动截断或四舍五入。
INT类型通常比VARCHAR类型使用更少的存储空间,因为它是固定长度的。如前所述,MySQL中的整数类型包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。
INT或BIGINT来存储用户ID。INT(11),但插入的值超过了11位?原因:INT(11)中的数字11只是显示宽度,不影响实际存储的数值大小。
解决方法:如果需要存储超过11位的整数,应该使用BIGINT类型。
CREATE TABLE example (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY (id)
);INT类型的范围?原因:插入的值超出了INT类型的数值范围。
解决方法:检查插入的值是否在INT类型的范围内,如果超出范围,考虑使用BIGINT类型。
INSERT INTO example (id) VALUES (2147483648); -- 这将失败,因为超出了INT的范围没有搜到相关的文章