MySQL 数据类型

整数类型

数据类型占用空间可存储的值的范围UNSIGNED可存储的值的范围
TINYINT8位-128 ~ 1270 ~ 256
SMALLINT16位-32768 ~ 327670 ~ 65536
MEDIUMINT24位-8388608 ~ 83886070 ~ 16777216
INT32位-2147483648 ~ 21474836470 ~ 4294967296
BIGINT64位-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551616

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

实数类型

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

数据类型占用空间是否近似
FLOAT4个字节近似
DOUBLE8个字节近似
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字节排序而不是整个字符串。

日期和时间类型

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

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

作  者:blog.jpdou.top

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

转载于:https://www.cnblogs.com/jpdoutop/p/MySQL-Data-Type.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值