• mysql 的数据类型


    分类

    类型

    M 

    UNSIGNED 

    ZEROFILL 

    范围

    说明

     

     

     

     

     

    bit 

    yes 

    no 

    no 

    1~64b 

    bit(2)表示2个二进制位,取值范围0~3

    tinyint 

    yes 

    yes 

    yes 

    1B 

    标记UNSIGNED时,范围为0~255。当标记ZEROFILL时,同时表示标记了UNSIGNED。当位数不足M时,添加前导0。例如tinyint(5),当值为123时,那么会添加2个前导零,即00123。

    smallint 

    yes 

    yes 

    yes 

    2B 

    同上

    mediumint 

    yes

    yes 

    yes 

    3B 

    同上

    int 

    yes 

    yes 

    yes 

    4B 

    同上

    integer 

    yes 

    yes 

    yes 

    4B 

    与int完全相同

    bigint 

    yes 

    yes 

    yes 

    8B 

    同上

     

     

     

     

     

    char 

    yes 

    no 

    no 

    255B 

    固定长度字符串类型。char(4),当数据长度为2时,会在后面添加2个空格补位。

    varchar 

    yes 

    no 

    no 

    65535B 

    可变长度字符串。varchar(4),当数据长度为2时,不会添加空格补位。占3个字节,其中一个字节用来记录长度。当数据长度大于255时,记录长度就需要2个字节了。

    tinytext 

    yes 

    no 

    no 

    28--1B

    可变长度字符串。

    text 

    no 

    no 

    no 

    216-1B

    同上。

    mediumtext 

    no 

    no 

    no 

    224-1B

    同上。

    longtext 

    no 

    no 

    no 

    232-1B

    同上。

     

     

     

     

    binary 

    yes 

    no 

    no 

    255B 

    固定长度二进制类型。binary(10),当数据为5B时,会添加5B来补位。即长度为10B。

    varbinary 

    yes  

    no 

    no 

    255B 

    可变长度二进制类型。varbinary(10),当数据为5B时,不会补位,长度为6B,其中1B用来记录长度。

    tinyblob 

    no 

    no 

    no 

    28--1B(256B)

    可变长度二进制类型。

    blob 

    no 

    no 

    no 

    216-1B(64K)

    同上

    mediumblob 

    no 

    no 

    no 

    224-1B(16M)

    同上

    longblob 

    no 

    no 

    no 

    232-1B(4G)

    同上

     

     

     

     

    float 

    yes 

    yes 

    yes 

    ±3.4E38

    float(5,2)表示长度为5,其中2位小数。与Java中float精度相同!

    double 

    yes 

    yes 

    yes 

    ±1.79E308

    同上。

    numeric 

    yes  

    yes  

    yes 

    小数点前后有效位之和不大于65位。

    使用与float、double相同,但存储方式不同,把9位十进制数压缩成4个字节来存储。相当与把浮点数当成字符来保存,但进行了压缩。比float、double更安全可靠。不会出现精度缺失的问题。

    decimal 

    yes 

    yes 

    yes 

    65位

    在MySQL中decimal与numeric是完全相同的。二者在表示钱时,很有用。

    bool 

    no 

    no 

    no 

    no 

    表示布尔值,但真实上是使用tinyint(1)表示的。当值为0时表示假,当值为非0时表示真。-128也是真。

    boolean 

    no 

    no 

    no 

    no 

    与bool完全相同。

     


    date 

    no 

    no 

    no 

    no 

    yyyy-mm-dd 

    datetime 

    no 

    no 

    no 

    no 

    yyyy-mm-dd hh:mm:ss 

    timestamp 

    yes 

    no 

    no 

    no 

    时间戳,用在记录插入与更新自动记录时间。

    year 

    yes 

    no 

    no 

    no 

    year(2),表示两位的年

    time 

    no 

    no 

    no 

    no 

    只表示时间

     

  • 相关阅读:
    点击回到顶部
    rem根据屏幕大小适配字体大小
    使用layui-tree美化左侧菜单,点击生成tab选项
    字符串
    mysql ORDER BY field(STATUS, 0,1) 根据字段特定排序问题
    js防止短时间内重复点击
    tp5 where a and (b or c)
    array_diff遇到的坑
    前端开发必配置:html5shiv.js和respond.min.js的作用说明!
    phpmailer QQ邮件发送
  • 原文地址:https://www.cnblogs.com/Prozhu/p/5540343.html
Copyright © 2020-2023  润新知