MySQL数据类型

前言

最近学习SQL,掌握其中的数据类型还是很重要的。上课上过SQL Server,Oracle。自己学了MySQL和SQLite,语法和数据类型基本想通,只不过查询方式和操作有很大的区别。大的功能不说,以MySQL为例记录一下数据类型。

  • 整数数据类型
    TINYINT、BIT、BOOL————1
    SMALLINT—————————2
    MEDIUMINT—————————3
    INT—————————————4
    BIGINT———————————8
  • 浮点型数据类型
    FLOAT
    DOUBLE
    DECIMAL
  • 常规字符串类型
    [national]char(M)[binary|ASCII|unicode]
    char
    [national]varchar(M)[binary]
  • TEXT和BLOB类型
    TINYBLOB、TINYTEXT
    BLOB、TEXT
    MEDIUMBLOB、MEDIUMTEXT
    LONGBLOB、LONGTEXT
  • ENUM和SET类型
    Enum(“value1”,”value2”,………)
    Set(“value1”,”value2”,………)
  • 日期和时间数据类型

    DATE 日期,格式YYYY-MM-DD

    TIME 时间,格式HH:MM:SS

    DATETIME 日期和时间,格式YYYY-MM-DD HH:MM:SS

    TIMESTAMP 时间标签,在处理报告时使用显示格式取决于M的值

    YEAR 年份可指定两位数字和四位数字的格式

  • 在创建表时,使用哪种数字类型应遵循以下原则:

    (1)选择最小的可用类型,如果数值永远不超过127,则使用TINYINT比使用INT强。

    (2)对于完全都是数字的,可以选择整数类型。

    (3)浮点型用于可能具有小数部分的数,例如货物单价、网上购物交付金额等。

  • 在创建表和使用字符串类型时应遵循以下原则:

    (1)从速度方面考虑,要选择固定的列,可以使用CHAR类型。

    (2)要节省空间,使用动态的列,可以使用VARCHAR类型。

    (3)要将列中的内容限制在一种选择,可以使用ENUM类型。

    (4)允许在一个列中又多于一个的条目,可以使用SET类型。

    (5)如果要搜索的内容不区分大小写,可以使用TEXT类型。

    (6)如果要搜索的内容需要区分大小写,可以使用BLOB类型。

2015/5/27 posted in  MySQL