MySQL的数据类型及其常用修饰符详解

================================================================================

概述:


================================================================================

Mysql的数据类型

    在mysql数据库当中,每一个库都是有多张表来组成的,每一个表都是由行和列来组成的。列通常将其称为字段。所谓建表就是声明列的过程,数据是以文件的形式保存在系统上的。因此,不同的列类型,占用的空间不一样。选列的原则:够用又不浪费即可;

在选择数据类型时考虑如下因素:

  • 占据空间

  • 储存范围

在声明列的时候,为什么要声明某个字段的数据类型?

 数据类型有如下意义:

  • 确定该字段的值的类型;

  • 可以确定该字段所占据的空间;

  • 可以确定该字段是定长还是变长的;

  • 该字段如何进行比较以及排序;

  • 该字段是否能够索引;

数据类型大概柯分为:

  • 数值型、字符型、日期时间型、枚举型、布尔型

 1.数值型

数值型分为整型浮点型:

整型

  • 整型包括:TINYINT、SMALLINT、MEDIUINT、INT、BIGINT

wKioL1g3mobgsiRQAAEOuN_LocM545.png

浮点型

  • 包括单精度双精度浮点型

  • float(l.f):其中l表示浮点型的长度,不包含正负符号和小数点。f表示小数点后面数字的位数。

 2.字符型

字符型:包括CHAR、VARCHAR、BINARY、VARBINARY、TEXT、BLOB等类型

wKiom1g3mqOxypGaAACjNfEmuW8532.png

 3.日期时间型

日期时间型:包括DATE、TIME、DATETIME、TIMESTAMP

wKiom1g3mrPRp64CAABsxlmpJZs268.png

 4.枚举型和布尔型

枚举型ENUM

  • 就是列出某个字段的所有可能取得值。储存范围是0-65535bytes。如ENUM('F','M')。

布尔型:

  • 只有两种取值,1表示true,0表示false

Mysql的字段修饰符

   在声明字段的时候,可以为这些字段添加额外的修饰符,不同的数据类型,其修饰符也是不一样的。

字段修饰符如下表:

       数据类型
     常见的修饰符
   

           
         
   整型

  • UNSIGNED:无符号,表示非负(UNSIGNED要定义在NULL或NOT NULL之前);

  • NULL:允许为空;

  • NOT NULL:允许非空;

  • DEFAULT N:定义默认值;

  • AUTO_INCREMNET:自动增长,自动增长的字段必须是整型、非空、非负、唯一键或主键。

       浮点型float
  • UNSIGNED,NULL,NOT NULL,DEFAULT N



 
            字符型
     (char,varchar和text)
  • NULL,NOT NULL,DEFAULT 'string'

  • CHARACTER SET 字符集:设置字符集。

  • show character set可以查看mysql支持的所有字符集;

  • show variables like ‘%charac%’可以查看mysql支持的默认字符集。

  • collation '排序规则':设定排序规则;

  • show collation可以查看mysql支持的所有排序规则;

            字符型
    (binary、varbinary和blob)
 
NULL,NOT NULL,DEFAULT(但不适用于BLOB类型)
               日期时间型NULL,NOT NULL,DEFAULT ‘string’
          枚举型(ENUM)NULL,NOT NULL,DEFAULT 'string'