在MySQL中使用INT(1)与TINYINT(1)是否有区别?

我假设INT(1)与TINYINT(1)完全相同,但我真的不知道。 每当我的值只能是一个整数(例如值为0-9),我总是用INT(1)来表示它是一个整数,它只会是一个字符,我认为这意味着它只能是0到9的值(如果我错了,请向我解释一下)。 我总是忽略其他types的INT,你可以把这个数字作为。 我不懂MySQL,并且倾向于避免使用它可以做的更复杂的事情。

所以我的问题是,如果你为每个types定义长度为1,INT,TINYINT,SMALLINT,MEDIUMINT和BIGINT之间的各种整数types是否有区别;? 如果不是,我应该使用它们吗(我可以看到使用它们更多的语义,TINYINT比INT更具体)? 如果是这样,我可以轻松地(和/或我应该)通过我的数据库,并将我所有的INT(1)字段更改为TINYINT(1)字段?

整数列types括号中的数字是“显示宽度”。 这不会影响存储要求,因为它们是预先定义的。

进一步阅读

在这里你会更好地理解它!

 tinyint: 1 byte, -128 to +127 / 0 to 255 (unsigned) smallint: 2 bytes, -32,768 to +32,767 / 0 to 65,535 (unsigned) mediumint: 3 bytes, -8,388,608 to 8,388,607 / 0 to 16,777,215 (unsigned) int/integer: 4 bytes, -2,147,483,648 to +2,147,483,647 / 0 to 4,294,967,295 (unsigned) bigint: 8 bytes, -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 / 0 to 18,446,744,073,709,551,615 (unsigned)