数据类型占用空间取值范围(有符号)取值范围(无符号)小整数型
tinynt1字节-128~1270~255大整数型
smallint2字节-32768~327670~65535大整数型
MEDIUMINT3字节±83886080~16777215大整数型
INT或INTEGER4字节±21474836480~4294967295大整数型
BIGINT8字节±92233720368547758080~18446744073709551615极大整数型

其中int是使用最广泛的,本文只针对整数型的数据类型取值范围做了一个整理.如果需要查看完整的数据类型比较,请参阅:mysql的数据类型一文.

属性:

unsigned:无符号,列的值从0开始,不为负

zerofill:固定宽度的数字,用0填充至固定宽度,例如学号1会变成0001 注意:zerofill属性默认决定列为unsigned属性(不为负)

使用例子:

create table tablename(
列1    TINYINT    unsigned    默认值,   //整数类默认是带负号的,如果数值没有符号,可以设置为unsigned
列2    TINYINT(5)    zerofill    默认值       // 括号内5意思代表自动补充0后的字符宽度,例如学号1,则显示00001
性别   enum('男','女')                          // 括号内5意思代表自动补充0后的字符宽度,例如学号1,则显示00001
)

使用小技巧:

存放时间:虽然mysql有存放时间的数据类型,但是我们发现很多cms系统也好,大型网站也好.大多数都是使用的int来存放.使用10位的时间戳来存放时间不管是排序的效率,还是计算时间间隔时写程序代码都是非常方便的.只是看起来不那么直观.需要展示的时候转换一下即可.因为转换起来非常方便!

存放ip地址:可以把ip地址转换为整数型来存放.一般情况下没这个必要.因为看起来不直观.一个char也占不了多少空间,但是对于非常庞大的ip数据来说.能优化一点是一点.

存性别的数据类型选用整数型要比字符串效率高,而且节省空间.一个 tinynt足够用