01-MySQL支持的数据类型

1、数值类型

  • 整数类型

MySQL 支持的整数类型有 SQL 标准中的整数类型 INTEGER,SMALLINT,TINYINT、MEDIUMINT和BIGINT。其整数类型的特性如下表所示:

在上述INT类型中,又有三个可选属性,分别是:

  1. (M):M 指定了 INT 型数据显示的宽度。
  2. UNSIGNED:UNSIGNED(无符号)修饰符规定字段的值只能保存正数。
  3. ZEROFILL:ZEROFILL(零填充)修饰符规定可以用 0(不是空格)来填补输出的值。使用这个修饰符可以阻止 MySQL 数据库存储负值。
  •  浮点数类型和定点数类型

浮点数类型包括单精度(FLOAT)和双精度(DOUBLE)两种,定点数类型只包括DEC/DECIMAL/NUMERIC 一种,DEC/DECIMAL 与 NUMERIC 表示的是同一种数据类型。

浮点数类型所占空间大小及表数范围如下表所示:

 在浮点数数中有一个默认值参数(M,D),“(M,D)”中的 M 表示浮点数据类型中数字的总个数,D 表示小数点后数字的个数。

注意:

  (1) M 的取值范围为 0~255。但由于 FLOAT 只能保证 6 位有效数字的准确性,所以在FLOAT(M,D)中,当 M<=6 时,数字通常是准确的;而 DOUBLE 只能保证 16 位有效数字的准确性,所以在 DOUBLE(M,D)中,当 M<=16 时,数字也通常是准确的。
  (2) D 的取值范围为 0~30,同时必须满足 D<=M,否则会报错。
  (3)浮点数类型(M,D)的用法为非标准用法,如果需要数据库迁移,则不要这么使用。

定点数的类型特性如下所示:

  (1) DECIMAL 类型的 M 默认值为 10,D 默认值为 0。如果在创建表时,定义某字段为DECIMAL 类型而没有带任何参数,则等同于 DECIMAL(10,0),如果只带一个参数,则该参数为 M 值,D 则取默认值 0。
  (2) M 的取值范围为 1~65,取 0 时会被设为默认值 10,超出范围则会报错。
  (3) D 的取值范围为 0~30,同时必须满足 D<=M,否则会报错。
 

猜你喜欢

转载自www.cnblogs.com/clearlie/p/13201841.html