blob数据类型_MySQL 数据类型

dae182771136e0c4b0734583b48371f1.png

? 使用 MySQL 这么长时间了,经常使用的情况时,除了自增主键和日期时间之外 ,能 Varchar 的基本上都给 Varchar 了。团队内部还出现过 VARCHAR(2)、VARCHAT(4)、…、VARCHAT(2^N) 的情况,现在看来确实有点搞笑。

数据类型

  • 数值类型

    • 整数:tinyint、smallint、mediumint、int、bigint

    • 小数:float、double、real、decimal

  • 日期和时间类型:date、time、datetime、timestamp、year

  • 字符串类型

    • 字符串:char、varchat

    • 大文本:tinytext、text、mediumtext、longtext

    • 其他:enum、set

  • 二进制类型:tinyblob、blob、mediumblob、longblob

  • 空间数据类型:geometry、geometrycollection、point、linestring

  • JSON 数据类型

整型

eebb99d2a87adfc43e14316ae6b126ca.png

浮点型

ab011200bbbeae101e0162432150bc10.png

定点型

DECIMAL 范围

这里我复制一下官方文档的解释:

The declaration syntax for a DECIMAL column is DECIMAL(M,D). The ranges of values for the arguments are as follows:

  • M is the maximum number of digits (the precision). It has a range of 1 to 65.

  • D is the number of digits to the right of the decimal point (the scale). It has a range of 0 to 30 and must be no larger than M.

If D is omitted, the default is 0. If M is omitted, the default is 10.

  • 高精度的数据类型,常用来存储交易相关的数据

  • decimal(M, D) 解释:M 代表总精度(小数点前后数字总个数),D 代表刻度(小数点后的位数)。比如:decimal(5, 2) 表示存储范围为 -999.99~999.99

  • decimal(M, D) 范围:1<= M <= 65、0 <= D <= 30

  • 如果省略 D,默认值是 0。如果省略 M,默认值是 10

  • 存储空间变长(M+2 bytes)

日期与时间型

875feabe720e8d9d668aefe7308951a7.png

包含两位数年份值的日期是模糊的,因为世纪是未知的。MySQL 使用这些规则解释两位数的年值:

  • 00~69 范围内的年份值被转换为 2000~2069

  • 70~99 范围内的年份值被转换为 1970~1999

字符串型

3771291264e95cd4de037b53b63e3c86.png

a95610457ab7d1f63859ab59c457f595.png

关于 char(M)、varchar(M) 和 text 的问题:

  • char(M) 和 varchar(M) 中 M 代表 字符个数,并不是字节个数。当使用 UTF-8 时意味着可以插入 M 个字符,但实际会占用 M*3 个字节

  • char(M) 不管实际值都会占用 M 个字符的空间,页 varchar(M) 只会占用实际字符应该占用的空间 +1,并且实际空间为 +1 <= M

  • 超过 char(M) 和 varchar(M) 的 M 设置后,字符串会被截断

  • char 的上限为 255 字符,varchar 和 text 的上限 65535 字符

  • char 在存储的时候会截断尾部的空格,varchar 和 text 不会

  • varchar 会使用 1~3 个字节来存储长度,而 text 不会

23d2a7eb7ecbf5757eba513b7e238b81.png

如上所述:

  • char 存定长,速度快,存在空间浪费的可能,会处理尾部空格,上限 255

  • varchar 存变长,速度慢,不存在空间浪费,不处理尾部空格,上限 65535,但是有存储长度实际 65532 最大可用

  • text,存变长大数据,速度慢,不存在空间浪费,不处理尾部空格,上限 65535,会用额外空间存放数据长度,因此可以全部使用 65535

e56616355b6e2d5f62f1352001e769f6.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值