mysql数据类型

mysql数据类型

整数类型

在这里插入图片描述

浮点数类型

在这里插入图片描述

浮点数中无符号数值取值范围是有符号数值取值范围的一半,因为mysql存储浮点数,最高位为符号位,因此无符号数值中符号位没有意义,所以取值少了一半。

浮点数不精确,因为浮点数在mysql中存储是采用二进制方式存储的,如果尾数不是0或者5的话,二进制数无法精确的表达,,只会在取值允许的范围内进行近似处理(四舍五入)

定点整数:DECIMAL

定点整数一定是精准的,mysql存储decimal类型数据将整数和小数部分分开分别采用十六进制存储,所有的数值都可以精准表达。mysql用DECIMAL(M,D)的方式标识高精度小数。M 表示整数部分加小数部分,一共有多少位,M<=65。D 表示小数部分位数,D<M。

文本类型
  • CHAR(M):固定长度字符串。CHAR(M) 类型必须预先定义字符串长度。如果太短,数据可能会超出范围;如果太长,又浪费存储空间。VARCHAR(M): 可变长度字符串。
  • VARCHAR(M) 也需要预先知道字符串的最大长度,不过只要不超过这个最大长度,具体存储的时候,是按照实际字符串长度存储的。
  • TEXT:字符串。系统自动按照实际长度存储,不需要预先定义长度。
  • ENUM: 枚举类型,取值必须是预先设定的一组字符串值范围之内的一个,必须要知道字符串所有可能的取值。
  • SET:是一个字符串对象,取值必须是在预先设定的字符串值范围之内的 0 个或多个,也必须知道字符串所有可能的取值。
TEXT类型又分为4种
  • TINYTEXT:255 字符(这里假设字符是 ASCII 码,一个字符占用一个字节,下同)。

  • TEXT: 65535 字符。

  • MEDIUMTEXT:16777215 字符。

  • LONGTEXT: 4294967295 字符(相当于 4GB)。

    TEXT 有一个问题:由于实际存储的长度不确定,MySQL 不允许 TEXT 类型的字段做主键。

日期与时间类型

在这里插入图片描述

注意:

  1. 时间类型 TIME 的取值范围不是 -23:59:59~23:59:59,原因是 MySQL 设计的 TIME 类型,不光表示一天之内的时间,而且可以用来表示一个时间间隔,这个时间间隔可以超过 24 小时。
  2. 在定义数据类型时,如果确定是整数,就用 INT;如果是小数,一定用定点数类型 DECIMAL;如果是字符串,只要不是主键,就用 TEXT;如果是日期与时间,就用 DATETIME。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值