MYSQL支持的数据类型-数值类型
一、数值类型分类
MYSQL支持所有标准SQL中的数值类型,其中包括严格数值类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISON),并在此基础上扩展增加了TINYINT、MEDIUMINT、BIGINT这三种整型,并增加了BIT类型,用来存放位数据
其中整数类型包括:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT
浮点数类型包括:FLOAT、DOUBLE
定点数类型包括:DECIMAL(DEC)(M,D)
位类型包括:BIT(M)
补充:
BIT(M) 1-8字节 最小值BIT(1) 最大值BIT(64)
二、整数类型
在整数类型中,一共分位5种(tinyint,smallint,mediuint,int,bigint),在设置整数数值类型时,要确定好取值范围,选择合适的数值类型,避免出现Out of range的情况,同时要加上数值的长度,int默认长度位11,int(11),可以和zerofill一起使用
create table t1 (id1 int); alter table t1 modify id1 int zerofill; insert into t1 values(1); select * from t1; id1 00000000001
如果插入大于宽度限制的值,不会影响数据的插入,但是数值的长度没有意义。
所有的整数类型都有一个可选的属性UNSIGEND(无符号),如果需要在字段里面保存非复数或者需要较大的上限值时,可以加入该字段,它的取值范围为:下限取0,上限值取原值的两倍。
整数类型的另一个属性:AUTO_INCREMENT。在需要产生唯一标识符或顺序时,可利用此属性。一般从1开始,每行增加1,NULL插入时也会自增,一个表中最多只能有一个AUTO_INCREMENT。对于定义该属性,应该同时定义为NOT NULL,并定义为PRIMARY KEY或定义UNIUQE键。
对于小数表示:mysql有两种表示:浮点数和定点数,浮点数包括float(单精度)和double(双精度),定点数只有一种decimal表示。定点数在mysql中以字符串形式存放,比浮点数更精确,适合用来表示货币等精度高的数据。
小数都可以用类型名称后加(M,D),M-精度:一共显示M位(整数+小数)D-标度:保留小数点后D位,但是这种是非标准用法,建议不使用,建议使用默认精度,浮点数的默认值又实际的硬件和操作系统决定,decimal默认整数为10位,小数为0位。
插入小数时会按照实际精度值显示,超入精度会四舍五入,不会报错,而插入定点数。
BIT(位)类型:略