MySQL数据类型-数值型

数值类型是MySQL最基本的数据类型,也是使用最多的类型,主要包括整型、浮点型、精确数值型等。

数值类型:
  • BIT
  • TINYINT
  • BOOL/BOOLEAN
  • SMALLINT
  • MEDIUMINT
  • INT/INTEGER
  • BIGINT
  • DECIMAL/DEC/FIXED
  • FLOAT
  • DOUBLE/REAL
BIT:

位类型,位长度为1~64,默认为1。
示例:
create table t(bitmap bit(10));
insert into t value(b’1101001011′);
select bin(bitmap) from t;

TINYINT:

1个字节的整型,取值范围为-128~127,TINYINT UNSIGNED 取值范围为0~255。
示例:
create table t(id tinyint);
insert into t values(1);

BOOL/BOOLEAN:

BOOL/BOOLEAN实际上是一个TINYINT,0为FALSE,非0为TRUE。
create table t(id bool);
insert into t values(true);

SMALLINT:

2个字节的整型,取值范围为-32768~32767,SMALLINT UNSIGNED取值范围为0 ~ 65535。
示例:
create table t(id  smallint unsigned);

MEDIUMINT:

3个字节的整型,取值范围为-8388608~8388607,MEDIUMINT UNSIGNED 取值范围为
0~16777215。
示例:
create table t(id mediumint);

INT/INTEGER:

4个字节的整型,取值范围为-2147483648~2147483647,INT UNSIGNED 取值范围为0~4294967295。
示例:
create table t(id integer unsigned);

BIGINT:

8字节的整型,取值范围为-9223372036854775808~9223372036854775807,BIGINT UNSIGNED取值范围为0~18446744073709551615。

SERIAL 类型实际上是BIGINT的一个别名,相当于 BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE

示例:
create table t(id bigint unsigned);

DECIMAL(M,D):

精确数值类型,能够定义小数点前后的位数,M表示小数点前后总的位数,最大为65,D为小数点后的位数,最大为30。常用于金融货币,需要精确计算的场合。DEC/FIXED都是DECIMAL的别名。
示例:
create table t(id decimal(65,30));

FLOAT(M,D):

单精度浮点数类型,占用4个字节。
示例:
create table t(id float(6,2));

DOUBLE(M,D):

双精度浮点数精英,占用8个字节。REAL类型是DOUBLE类型的一个别名。
示例:
create table t(id double(10,4));

发表评论