首页 > 网络 > 网络热点

MySQL专题1:

常驻编辑 网络热点 2022-06-04 字段   索引   节点   字节   长度   区别   类型   引擎   文件   专题   数据

Float、Decimal 存储金额的区别?

MySQL中存在 float, double 等非标准数据类型, 也有 decimal 这种标准数据类型EuL拜客生活常识网

其区别在于: float, double等非标准类型在DB中保存的是近似值, 而Decimal则以字符串的形式保存数值.EuL拜客生活常识网

float和double 数据的精确度取决于分配给每种数据类型的存储长度, 其中float分配了4字节, 而double分配了8字节, 采用float和double本来就是不准的
decimal类型是MySQL官方唯一指定能精确存储的类型, 和金钱相关的类型都要存储为decimal
EuL拜客生活常识网



EuL拜客生活常识网

Datetime、Timestamp 存储时间的区别?

Datetime

  1. 保存格式为YYYYMMDDHHMMSS(年月日时分秒)的整数, 与时区无关, 存入的是什么值就是什么值, 不会根据当前时区进行转换
  2. mysql 5.6.4之后可以存储小数片段, 最多到小数点后6位
  3. mysql 5.6.4之前没有小数片段, 精确到秒. 新数据不兼容旧数据(无法往回导入)
  4. 存储范围从0000-00-00 00:00:00 到'9999-12-31 23:59:59'
  5. 长度8个字节, datetime(n), n是显示的小数位数, 即使小数位数是0存储也是6位小数, 仅仅显示0位而已
  6. 显示时, 显示日期和时间

Timestamp

  1. 存入的是自1970-01-01午夜(格林尼治标准时间)以来的毫秒数, 和unix时间戳相同. 与时区有关, 查询时转为相应的时区时间.
  2. it stores the number of milliseconds
  3. 存储范围'1970-01-01 00:00:01'?UTC to?'2038-01-19 03:14:07'?
  4. 默认值为CURRENT_TIMESTAMP(), 其实也就是当前的系统时间, 这一列只能由系统自动更新, 不能由sql更新, timestamp类型适合用来记录数据的最后修改时间, 因为只要你更改了记录中其他字段的值, timestamp字段的值都会被自动更新
  5. 长度4字节, 因为存储长度的原因, 决定了它支持的范围的比datetime的要小



EuL拜客生活常识网

CHAR, VARCHAR, BINARY, VARBINARY 存储字符的区别?

CHAR

CHAR(N) 用来存储非二进制字符串, 插入少于N个字符的会自动在尾部加空格, 查询时, 尾部的空格就会被丢弃掉(客户端可以忽略这个, 当作存入和取出的一致就行). CHAR 使用固定长度的空间进行存储, CHAR(4)存储4个字符, 根据编码方式的不同占用不同的字节, GBK 编码不论是中文还是英文, 每个字符占用2个字节, UTF8编码每个字符占用3个字节.EuL拜客生活常识网

VARCHAR

VARCHAR(N) 用来存储非二进制字符串, 插入少于N个字符的不填补空格, 查询时, 尾部的空格不会被丢弃掉EuL拜客生活常识网

BINARY

BINARY(N)存储二进制字符串, 插入少于N个字节的会自动在尾部加0x00, 取出时, 所有的字节都保留, 返回定义长度的字节长度, 在比较的时候, 所有的字节都是有效的, 并且0x00 小于 space (space对应的是0x20)EuL拜客生活常识网

VARBINARY

相关阅读:

  • 字段类型有哪些(字段长度怎么设置)
  • 技术人必备的接口测试神器:apifox、apipost、yapi,实用
  • 我做开发测试犯的错
  • 基于SpringBoot微服务开发中的异常处理最佳实践
  • 你今天玩游戏了吗?游戏道具了解下
  • 面渣逆袭:MySQL六十六问,两万字+五十图详解!有点六
  • 什么是CSRF
  • 最全SQL
  • 云原生(十四)
  • MySQL索引原理篇:深入数据库底层揭开索引机制的神秘面
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。