整型
TINYINT存储范围:有符号值:-128到127,无符号值:0到255。
SMALLINT存储范围:有符号值:-32768到32767(2的15次方-1),无符号值:0到65535(2的16次方-1)
MEDIUMINT存储范围:有符号值:-8388608到8388607(2的23次方-1)无符号值:0到16777215(2的24次方-1)
INT存储范围:有符号值:-2147483648到2147483647(2的31次方-1)无符号值:0到4294967295(2的32次方-1)
BIGINT存储范围:有符号值:-2的63次方到2的63次方-1,无符号值:0到2的64次方-1。
有符号值:数字最高位用0或1表示该数字是正数还是负数。无符号值:不存在负数,永远为正
TINYINT一个字节,BIGINT8个字节,在使用的时候,选择最合理的数据类型,而不是最大的数据类型 。
浮点型
FLOAT[(M,D)]:
M是数字总位数,D是小数点后面的位数,如果M和D被省略,根据硬件允许的限制来保存值,单精度浮点数精确到大约7位小数位。
DOUBLE[(M,D)
双精度浮点存储范围将近是单精度的10倍,存储范围越大,所占空间就越大 ,因此要合理选择类型
日期时间型
DATE:
1000年1月1日到9999年12月31日。
DATETIME:
1000年1月1日00点到9999年12月31日23点59分59秒。
TIMESTAMP:
1970年1月1日0点到2037年间的一个值。
TIME:
-8385959到8385959之间的类型。
YEAR:
可以存储两位,也可以存储4位,默认是存储4位,1970到2069年之间的日期
字符型
CHAR(M):
0<=M<=255。定长类型,如果我们写的是CHAR(5),如果输入的值是abc,那么计算机会自动补上两个空格,也就是当实际存储的没有达到指定长度,那么会自动加空格补齐
VARCHAR(M):
0<=M<=65535变长类型,你存储的是什么就是什么,存的abc就是abc
TINYTEXT:
小于2的8次方,
TEXT:
小于2的16次方,
MEDIUMTEXT:小于2的24次方,
LONGTEXT
小于2的32次方,
ENUM('value1','value'...):
1或2个字节,取决于枚举值的个数,最多65535个。
SET('value1','value2',...)
1,2,3,4或者8个字节,取决于set成员数量的多少,最多64个。