zoukankan      html  css  js  c++  java
  • MySQL 数据类型

    整数类型

    数据类型占用空间可存储的值的范围UNSIGNED可存储的值的范围
    TINYINT 8位 -128 ~ 127 0 ~ 256
    SMALLINT 16位 -32768 ~ 32767 0 ~ 65536
    MEDIUMINT 24位 -8388608 ~ 8388607 0 ~ 16777216
    INT 32位 -2147483648 ~ 2147483647 0 ~ 4294967296
    BIGINT 64位 -9223372036854775808 ~ 9223372036854775807 0 ~ 18446744073709551616

    MySQL可以为整数类型指定宽度,例如INT(11),对大多数应用是没有意义的:它不会限制值的合法范围,只是规定了MySQL的一些交互工具用来显示字符的个数。

    实数类型

    MySQL既支持精确类型,也支持不精确类型。

    数据类型占用空间是否近似
    FLOAT 4个字节 近似
    DOUBLE 8个字节 近似
    DECIMAL / 精确

    MySQL使用DOUBLE作为内部浮点计算的类型。

    因为需要额外的空间和计算开销,所以应该尽量只在对小数进行精确计算时才使用DECIMAL。

    字符串类型

    数据类型字符串长度占用空间适用场景额外
    VARCHAR 变长 需要使用1或者2个额外字节记录字符串的长度:如果列的长度小于255字节,则只使用1个字节表示,否则使用2个字节 ①字符串列的最大长度比平均长度大很多;②列的更新很少;③使用了像UTF-8这样复杂的字符集,每个字符都使用不同的字节数进行存储 InnoDB 可以把过长的VARCHAR存储为BLOB
    CHAR 定长 存储时会删除所有的末尾空格,CHAR值会根据需要采用空格进行填充以方便比较 适合存储很短的字符串,或者所有值都接近同一个长度,例如MD5值;对于经常变更的数据,CHAR也比VARCHAR更好 /

    BloB和TEXT类型

    BLOB和TEXT都是为了存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。

    BLOB和TEXT分别属于两组不同数据类型家族: 字符串类型是TINYTEXT,SMALLTEXT,TEXT,MEDIUMTEXT,LONGTEXT;二进制类型是TINYBLOB,SMALLBLOB,BLOB,MEDIUMBLOB,LONGBLOB。BLOB是SMALLBLOB的同义词,TEXT是SMALLTEXT的同义词。

    BLOB和TEXT家族之间仅有的不同是BLOB类型存储的是二进制数据,没有排序规则或者字符集,而TEXT家族有字符集和排序规则。

    MySQL对BLOB和TEXT列进行排序与其他类型不同:它只对每个列的最前maxsortlength字节排序而不是整个字符串。

    日期和时间类型

    数据类型范围精度时区占用存储空间
    DATETIME 1001年 ~ 9999年 与时区无关 8个字节
    TIMESTAMP 1970年到2038年 显示的值依赖于时区 4个字节

    如果您觉得阅读本文对您有帮助,欢迎转载本文,但是转载文章之后必须在文章页面明显位置保留此段声明,否则保留追究法律责任的权利。

    作  者:blog.jpdou.top

    原文链接:http://blog.jpdou.top/mysql-data-type/

  • 相关阅读:
    CentOS 6 安装 python and pip
    Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作 (转)
    Vim 扩展工具 vim-ide (转)
    centos yum 完全卸载依赖
    Linux修改Shell命令提示符及颜色
    tmux 命令
    网络分析shell脚本(实时流量+连接统计)
    ICMP:Internet控制报文协议
    读《分布式一致性原理》zookeeper运维
    同网段和不同网段设备通信原理详解
  • 原文地址:https://www.cnblogs.com/jpdoutop/p/MySQL-Data-Type.html
Copyright © 2011-2022 走看看