http://dev.mysql.com/doc/refman/5.5/en/data-types.html
MySQL的列类型主要有三种:数字、字串和日期。
字符串列类型
==========
字符串列类型用于存储任何类型的字符数据,如名字、地址或者报纸文章。下面是MySQL中可用的字符串列类型类型 | 最大数据长度(Byte) | 备注 |
CHAR | 155 | 固定长度字符串。右边补空格至指定固定长度,搜索时后缀空格删除 |
VARCHAR | 255 | 可变长字符串。后缀空格在存储值时被删除 |
TINYBLOB | 255 | 微二进制对象。需要长度+1字节的存储,搜索时区分大小写 |
TINYTEXT | 255 | 微字符串。需要长度+1字节的存储,搜索时忽略大小写 |
BLOB | 65535(64K-1) | 普通二进制对象。需要长度+2字节的存储 |
TEXT | 65535 | 普通字符串对象。需要长度+2字节的存储 |
MEDIUMBLOB | 16777215(16M-1) | 中等二进制对象。需要长度+3字节的存储 |
MEDIUMTEXT | 16777215 | 中等字符串对象。需要长度+3字节的存储 |
LONGBLOB | 4294967295(4G-1) | 大二进制对象。需要长度+4字节的存储 |
LONGTEXT | 4294967295 | 大字符串对象。需要长度+4字节的存储 |
ENUM | (65535*_) | 最多65535个指定的值,即NULL或"" |
SET | (64*_) | 最多64个值,来自指定清单 |
日期和时间列类型
==============
日期和时间列类型用于处理时间数据,可以存储当日的时间或出生日期这样的数据。下面是MySQL中可用的时间列类型
类型 | 格式 | 范围 |
DATETIME | 'YYYY-MM-DD HH:MM:SS' | '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' |
DATE | 'YYYY-MM-DD' | '1000-01-01'到'9999-12-31' |
TIMESTAMP | 'YYYYMMDDHHMMSS' | '1970-01-01 00:00:00'到'2037-01-01 00:00:00' |
TIME | 'HH:MM:SS' | |
YEAR | 'YYYY' | '1901'到'2155' |
数字列类型
=========
数字列类型用于储存各种数字数据,如价格、年龄或者数量。数字列类型主要分为两种:整数型和浮点型。
所有的数字列类型都允许有两个选项:UNSIGNED和ZEROFILL。
选择UNSIGNED的列不允许有负数,选择了ZEROFILL的列会为数值添加零。
下面是MySQL中可用的数字列类型
类型 | 大小 | 长度(Byte) |
TINYINT | -128~127(SIGNED),0~255(UNSIGNED) | 1 |
BIT | 1-64 | |
SMALLINT | -32768~32767(SIGNED),0~65535(UNSIGNED) | 2 |
MEDIUMINT | -8388608~8388607(SIGNED),0~16777215(UNSIGNED) | 3 |
INT | -2147493648~2147493647(SIGNED),0~4294967295(UNSIGNED) | 4 |
INTEGER | 同INT | 4 |
BIGINT | -9223372036854775808~9223372036854775807(SIGNED),0~18446744073709551615(UNSIGNED) | 8 |
FLOAT(precision) | ||
FLOAT | ||
DOUBLE | ||
DOUBLE PRECISION | ||
REAL | ||
DECIMAL | ||
DEC | ||
NUMERIC |