数据库-列的类型-浮点数,定点数-数据类型

这篇具有很好参考价值的文章主要介绍了数据库-列的类型-浮点数,定点数-数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

类型 占用空间 负数取值范围 正数取值范围
FLOAT 4 字节 -3.4 x 10^38 3.4 x 10^38
DOUBLE 8 字节 -1.8 x 10^308 1.8 x 10^308
DECIMAL(M,d) M+2 -1.8 x 10^308 1.8 x 10^308

M表示数字的总位数,而d表示小数点后的位数
d不能大于m;文章来源地址https://www.toymoban.com/news/detail-799684.html

创建表 不指定精度

# 创建表 
create table FloatTypes(F1 float,d1 double, de decimal);
# 插入整数部分1位,小数部分的21位
insert into floatTypes values(1.1111111111111111111111,1.111111111111111111111,1.1111111111111111111);
select *from floattypes;
/*
+---------+--------------------+------+
| F1      | d1                 | de   |
+---------+--------------------+------+
| 1.11111 | 1.1111111111111112 |    1 |
+---------+--------------------+------+
f1 保存不了21位小数部分因为空间限制 float 4个字节  保存5位
d1 保存不了21位小数部分 8个字节  保存16位
de 好像更加严重 只显示整数部分 这..... 
这要是换成 金钱 得损失 .... 

那怎么办呢  其实 可以指定精度 只对于 decimal 开放  对于 float 和 double 而言 不需要 指定精度 
当然硬要指定精度 但float 和double  说:我是演员
*/

创建表 指定精度和标度

#浮点类型带精度和标度 
create table  floatTypesWithPrecAndScale(F1 float(22,21),d1 double(22,21), de decimal(22,21));

#创建floatTypesWithPrecAndScale时候 有两个警告
#查看警告
show warnings;
/*
+---------+------+------------------------------------------------------------------------------------------------------------------+
| Level   | Code | Message                                                                                                          |
+---------+------+------------------------------------------------------------------------------------------------------------------+
| Warning | 1681 | Specifying number of digits for floating point data types is deprecated and will be removed in a future release. |
| Warning | 1681 | Specifying number of digits for floating point data types is deprecated and will be removed in a future release. |
+---------+------+------------------------------------------------------------------------------------------------------------------+

+---------+------+------------------------------------------------------------------------------------------------------------------+
|等级|代码|消息|
+---------+------+------------------------------------------------------------------------------------------------------------------+
|警告| 1681 |指定浮点数据类型的位数已弃用,并将在未来版本中删除。|
|警告| 1681 |指定浮点数据类型的位数已弃用,并将在未来版本中删除。|
+---------+------+------------------------------------------------------------------------------------------------------------------+
F1 float(22,21),d1 double(22,21)  指定位数弃用
*/
#插入数据 1.1111111111111111111111
insert into floatTypesWithPrecAndScale values(1.1111111111111111111111,1.1111111111111111111111,1.1111111111111111111111);
select *from floatTypesWithPrecAndScale;

/*
+-------------------------+-------------------------+-------------------------+
| F1                      | d1                      | de                      |
+-------------------------+-------------------------+-------------------------+
| 1.111111164093017600000 | 1.111111111111111200000 | 1.111111111111111111111 |
+-------------------------+-------------------------+-------------------------+
1 row in set (0.00 sec)

你会发现这个是f1 是我们指定的21位?  所以f1是演员 本来就保存不了 21位 你让我保存 保存不了 我没有这个能力保存  (范大将军 ,我又来了)
d1也是 保存不了的
而这个de真正保存 了数据  真正的 ‘牛肉面’ 而且里面真的‘牛肉’而且是真材实料的‘铁牛牛肉面’ 

de decimal(22,21) m:最多指定65位 d:最多指定30位 decimal(65,30) 

*/

插入的位数比创建表时指定的位数要多时会按照四舍五入的规则进行插入

*/
create table  floatTypesWithPrecAndScale1(F1 float(22,2),d1 double(22,2), de decimal(22,2));

insert into floatTypesWithPrecAndScale1 values(1.7777777777777777,1.77777777777777777777,1.77777777777777777);

select *from floatTypesWithPrecAndScale1;
/*
+------+------+------+
| F1   | d1   | de   |
+------+------+------+
| 1.78 | 1.78 | 1.78 |
+------+------+------+
1 row in set (0.00 sec)
*/
insert into floatTypesWithPrecAndScale1 values(1.74444444444444444444444444444444,1.7444444444444444444444444444444444444,1.7444444444444444444444444444444444444);
 select *from floatTypesWithPrecAndScale1;
/*
+------+------+------+
| F1   | d1   | de   |
+------+------+------+
| 1.78 | 1.78 | 1.78 |
| 1.74 | 1.74 | 1.74 |
+------+------+------+
*/

到了这里,关于数据库-列的类型-浮点数,定点数-数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql数据库常见数据类型

    数据类型: MySQL支持所有标准SQL数值数据类型。 这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。 INT是INTEGER的同义词,DEC是DECIMAL的同义词。 BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、Inn

    2024年02月15日
    浏览(59)
  • 【Mysql】数据库第二讲(数据库中数据类型的介绍)

    数值越界测试: 说明: 在MySQL中,整型可以指定是有符号的和无符号的,默认是有符号的。 可以通过UNSIGNED来说明某个字段是无符号的 无符号案例: 注意 注意:尽量不使用unsigned,对于int类型可能存放不下的数据,int unsigned同样可能存放不下,与其如此,还不如设计时,将

    2024年02月09日
    浏览(55)
  • mysql数据库的数据类型 -- 4

    目录 数据类型 4.1:数据类型的分类 4.2:数值类型 4.3:字符类型 4.5:enum和set类型 4.1:数据类型的分类 数值类型 描述 TINYINT [UNSIGNED] 整数,占用1字节 SMALLINT [UNSIGNED]  整数,占用2字节 INT [UNSIGNED]  整数,占用4字节 BIGINT [UNSIGNED] 整数,占用8字节 FLOAT [(M, D)] [UNSIGNED] 单精度浮

    2024年02月04日
    浏览(41)
  • 数据库基础知识之数据类型

    mysql常用数据类型 一、数值类型(整型、浮点型) 1、整型 eg:添加一个表格:点击表——添加字段——名称——类型,年龄age是tinyint类型,要在下方勾选无符号,因为年龄都是正数,不存在负数一说,所以不需要符号。 点击保存,然后输入表名,比如t1,就出现了t1    然后

    2024年02月06日
    浏览(51)
  • MySQL数据库的数据类型和基于MySQL数据类型的综合实例项目

    数值型数据类型主要用来存储数字。MySQL的整数类型如下所示 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、 BIGINT。 类型名称 说明 存储需求 TINYINT 很小的整数 1字节 SMALLINT 小的整数 2字节 MEDIUMINT 中等大小的整数 3字节 INT 普通大小的整数 4字节 BIGINT 大整数 8字节 创建表tmp1,其中字段

    2023年04月08日
    浏览(48)
  • MySQL的数据库操作、数据类型、表操作

    目录 一、数据库操作 (1)、显示数据库 (2)、创建数据库 (3)、删除数据库 (4)、使用数据库 二、常用数据类型 (1)、数值类型 (2)、字符串类型 (3)、日期类型 三、表操作 (1)、创建表 (2)、查看表 (3)、删除表 都要看到这了,点个赞再走吧,谢谢谢谢谢

    2024年02月06日
    浏览(79)
  • sqlserver数据库创建自定义数据类型的表

    用户定义表数据类型是从SQL Server 2008开始提供的一种新功能。 本文主要向大家介绍了SQLServer数据库之Sqlserver 自定义表类型定义,使用,删除,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。 在sqlserver数据库中 创建自定义数据库类型,并且自定义数据类

    2024年02月06日
    浏览(62)
  • 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系

    🏆🏆这是小5写的第二篇城市领跑者文章,一起为所在城市领跑助力吧! 🏆🏆在实际项目中,不管是用C#后端编程语言也好,还是Java后端编程语言,都可能会用到不同端的数据类型转换和对应关系 在 C# 和 SQL Server 之间,以下是一些最常用的数据类型对应关系: 编号 C#数据

    2024年02月11日
    浏览(59)
  • Oracle数据库Clob类型Blob类型与String互转

    Clob类型为大字段类型默认4000长度,Blob为二进制类型常用存文件数据;这两种大字段类型开发中不会经常遇到,博主整理了这两种大字段与String的转换方法可参考(使用Junit直接测试)其中javax.sql.rowset.serial.SerialClob 和javax.sql.rowset.serial.SerialBlob两个类都是从JDK1.5引入;用到了

    2024年02月13日
    浏览(48)
  • 数据库内日期类型数据大于小于条件查找注意事项

    只传date格式的日期取查datetime的字段的话默认是 00:00:00 日期类型字符串需要使用 ’ ’ 单引号括住 使用大于小于条件查询某一天的日期数据 前后判断条件不能是同一天 一个例子 数据库内数据: 查询2023-08-14之后的数据: 查询2023-08-14之前的数据: 查询2023-08-14一天内的数据

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包