数据类型 | 占用空间 | 取值范围(有符号) | 取值范围(无符号) | 小整数型 |
tinynt | 1字节 | -128~127 | 0~255 | 大整数型 |
smallint | 2字节 | -32768~32767 | 0~65535 | 大整数型 |
MEDIUMINT | 3字节 | ±8388608 | 0~16777215 | 大整数型 |
INT或INTEGER | 4字节 | ±2147483648 | 0~4294967295 | 大整数型 |
BIGINT | 8字节 | ±9223372036854775808 | 0~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足够用