mysql5.7空间运算_msyql5.7数据类型和运算符

本文介绍了MySQL5.7中的数据类型,包括数值类型(整数、浮点数和定点数)的详细内容。整数类型如tinyint、smallint等有不同的存储空间和取值范围;浮点数类型如float和double,以及定点数decimal,都涉及到精度和标度的概念。文章强调了在精度要求高的场景下,使用decimal类型更为合适,并提醒注意浮点数的精度问题和比较运算的潜在风险。
摘要由CSDN通过智能技术生成

mysql数据类型介绍

msyql介绍支持多种数据库,主要有数值类型,日期时间类型和字符串类型。

1.数值数据类型:包括整数类型 tinyint smallint mediumint int bigint 浮点小数据类型float和double,定小数类型desimal。

2.日期时间类型:包括year time date datetime和timestamp。

3.字符串类型:包括char varchar binary varbinary blog text enum和set等 字符串又分为文本字符串和二进制字符串。

整数类型

数值型数值类型主要用来存储数字,mysql提供了多种数值数据类型,不同的数据类型提供笔值的取值范围,可以存储范围越大,其所需要的存储空间也会越大。mysql主要提供的整数类型有 tinyint smallint mediumint int bigint 整数类型的属性字符段可以添加auto_increment 自增约束条件。

aa471328203b0e7fb72af47d1001b9ab.png

从表中可以看到,不同类型整数存储所需的字节数是不同的,占用字节数最近小的是TINYINT类型,占用字节最大的是BIGINT类型,相应的占字节越来越多的类型所能表示的数值范围越大。

2aa110180ab2a559e6995f3ef16431e7.png

id字段的数据类型为int(11),注意到后面的数字11,这表示的是该数据类型指定显示宽度,指定能够显示的数值中数字的个数。假设声明一个int类型的字段:

year int(4)

该声明指明,在year字段中的数据一般显示4位数字的宽度。

e04b39705f97bb0fb9bad267d1b322e2.png

创建表tmp1,其中字段x y z m n数据类型依次为tinyint smallint mediumint int bigint sql语句如下:

1a46cc55d29bb4d1ed1e5aabfd31836c.png

可以看到,系统将添加不同默认显示宽度。这些显示宽度保证每一种数据类型可以取到取值范围内的所有值。

列如: tinyint有个符号数和无符号数的取值范围分别为可以取值到取值范围分别-128~127 和 0~255,由于负号占了一个数字位,因此tinyint默认的显示宽度为4.同理其他数据类型的默认显示宽度与其他默认显示宽度与其有符号数的最小值的宽度相同。

浮点数类型和定点数类型

mysql中使用浮点数和定点数来表示小数。浮点数类型有两种:单精度浮点类型和双精度浮点类型。定点类型只有一种:decimal。浮点类型和定点类型都用(M,N)来表示,其中M称为精度,表示总共的位数;N称为标度,是表示小数位数如图所示:

4ef985a883e18edbc06939370125e383.png

decimal类型不同于FLOAT和DOUBLE DECIMAL实际是以串存放的,DECIMAL可能的最大取值范围与DOUBLE一样,但是其有效的取值范围由M和D的取值范围。如果改变M而固定D,则其取值范围将随M的变大而变大。

提示!不论是定点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处理。

创建表tmp2 其中x y z 数据类型依次为FLOAT(5,1),DOUBLE(5,1)和DECIMAL(5,1)向表中插入数据5.12 5.15和5.123,sql语句如下:

8d174f4f9c570759f72e75319ac31c18.png

可以看到在插入数据时,Mysql给出一个警告信息,使用show warnings;语句查看报警信息:

679ce9df35c9fdef823c48a0bb13acbe.png

可以看到FLOAT和DOUBLE在进行四舍五入时没有给出警告,给出z字段数值被截断的报告。

查看结果:

d6443ee7500bfda2fc7e445ad899a3ba.png

FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度,DECIMAL如不指定精度,默认(10,00)。

浮点数相对点数的优点是长度一定的情况下,浮点数能够表示更大的数据范围;它的缺点会引起精度问题。

提示!在mysql中定点数以字符串形式存储,在对精度要求比较高的时候(如货币,科学数据等)使用decimal的数据类型比较好,另外两个浮点数进行减法和比较运算时也容易出问题,所以在使用浮点型时需要注意,并尽量避免做浮点数比较!

总结!数据库很重要我每天都坚持学习一些!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值