每天一个MySQL知识点【2】

MySQL数据类型:数值类型

MySQL数值类型包括以下类别:

精确数值类型: INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

定点精确数值类型: DECIMAL, NUMERIC

近似数值类型: FLOAT, DOUBLE

位数据类型: BIT

一、精确数值类型:在这里插入图片描述
二、近似数据类型(浮点数):
  • 包括FLOAT和DOUBLE,FLOAT是单精度浮点数,占4个字节;DOUBLE是双精度浮点数,占8个字节。

  • FLOAT(M,D)或者DOUBLE(M,D),表示该字段最多能存储M位数(整数位+小数位),D代表小数位长度。注意,这种表示方法不是标准SQL的用法。

  • 因为FLOAT和DOUBLE保存的是近似值,对于精度要求较高的数据,比如金额等,使用DECIMAL数据类型。

三、定点精确数值类型:
  • MySQL有两种表示小数的方式:浮点数和定点数。

  • 浮点数就是FLOAT和DOUBLE,定点数DECIMAL和NUMERIC。NUMERIC与DECIMAL的实现没有区别。

  • DECIMAL(M,D),表示该字段最多能存储M位数(整数位+小数位),D代表小数位长度。比如工资salary字段的数据类型为DECIMAL(5,2),那么它的取值范围就是:-999.99 到 999.99。

四、位数据类型:
  • BIT用来存储二进制数,BIT(M),M的范围为1到64。

  • 二进制数的字面值可以用b’val’和0bval来表示。val是一个用0和1来表示的二进制数。

  • 查询结果中,直接返回二进制的方式可能显示效果不太友好,可以通过数值上下文或者一些函数来进行转换,BIN(二进制),HEX(十六进制),OCT(八进制)。

比如:

mysql> CREATE TABLE t (b BIT(8));
mysql> INSERT INTO t SET b = b'11111111';
mysql> INSERT INTO t SET b = b'1010';
mysql> INSERT INTO t SET b = b'0101';

select b+0, BIN(b), OCT(b),HEX(b) from t

输出的结果如下:
在这里插入图片描述

号外号外:

本公众号开通了MySQL每日知识点的特色栏目,大概有100期左右,每次发布的内容可能不会很多,但都是一些比较重要的、工作中经常会遇到的一些知识点。MySQL版本使用的是5.7;如未特别说明,默认使用的存储引擎是InnoDB。

欢迎关注公众号【互联网全栈架构】,获取最新的MySQL知识点。

【下期预告】:MySQL数据类型:日期时间类型
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值