MySQL数值类型
MySQL数值类型
MySQL⽀持所有标准的SQL数值数据类型。这些类型包括数值数据类型INTEGER、SMALLINT、DECIMAL、NUMERIC和近似数值数据类型FLOAT、REAL、DOUBLE 、PRECISION。其中关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且⽀持MyISAM、MEMORY、InnoDB和BDB表。作为SQL标准的扩展,MySQL也⽀持整数的数据类型TINYINT、MEDIUMINT和BIGINT。如下表所⽰的整数类型的存储以及范围。
整数型数据存储以及范围
类型字节
最⼩值最⼤值
(有符号/⽆符号)(有符号/⽆符号)
TINYINT1-128127
0255 SMALLINT2-3276832767
065535 MEDIUMINT3-83886088388607
mysql创建表数据类型016777215 INT4-21474836482147483647
0429*******
BIGINT8-
9223372036854775808
9223372036854775807 018446744073709551615
对于浮点列类型,在MySQL中单精度值使⽤4个字节,双精度值则使⽤8个字节。
FLOAT类型⽤于表⽰近似数值数据类型。MySQL标准允许在关键字FLOAT的后⾯的括号内选择⽤位指定精度(但不能为指数范围)。MySQL还⽀持确定存储⼤⼩的精度规定。0到23的精度对应FLOAT列的4字节单精度。24到53的精度对应DOUBLE列的8字节双精度。
MySQL允许使⽤⾮标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。这⾥,“(M,D)”表⽰该值⼀共显⽰M位整数,其中D位位于⼩数点后⾯。例如,定义为FLOAT(7,4)的⼀个列可以显⽰为-999.9999。MySQL保存值时进⾏四舍五⼊,因此如果在FLOAT(7,4)列内插⼊999.00009,近似结果是999.0001。
MySQL将DOUBLE视为DOUBLE PRECISION(⾮标准扩展)的同义词。MySQL还将REAL视为DOUBLE PRECISION(⾮标准扩展)的同义词,除⾮SQL服务器模式包括REAL_AS_FLOAT选项。
为了保证最⼤可能的可移植性,需要使⽤近似数值数据值存储的代码应使⽤FLOAT或DOUBLE PRECISION,不规定精度或位数,防⽌数据精度丢失。
当要在⼀个数值列内保存⼀个超出该列允许范围的值时,MySQL的操作取决于此时有效的SQL模式。如果模式未设置,MySQL将值裁剪到范围的相应端点,并保存裁减好的值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。