MySQL数据类型

MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
**(1)数值数据类型:**包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、浮点小数数据类型FLOAT和DOUBLE,定点小数类型DECIMAL。
**(2)日期/时间类型:**包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。
**(3)字符串类型:**包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。字符串类型又分为文本字符串和二进制字符串。

整数类型

数值型数据类型主要用来存储数字,MySQL提供了多种数值数据类型,不同的数据类型
提供不同的取值范围,可以存储的值范围越大,其所需要的存储空间也会越大。
MySQL主要提供的整数类型有:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。整数类型的属性字段可以添加AUTO_INCREMENT自增约束条件。
表5.1列出了MySQL中的数值类型。
表5.1 MySQL中的整数型数据类型
在这里插入图片描述
要注意:
显示宽度和数据类型的取值范围是无关的。显示宽度只是指明
MySQL最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充
如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,
而且能够显示出来。

例如,假如向year字段插入一个数值19999,当使用SELECT查询该列值的时候,MySQL显示的将是完整的带有5位数字的19999,而不是4位数字的值。
其他整型数据类型也可以在定义表结构时指定所需要的显示宽度,如果不指定,则系统为每一种类型指定默认的宽度值,如例5.1所示。
在这里插入图片描述
不同的整数类型有不同的取值范围,并且需要不同的存储空间,因此,应该根据实际需
要选择最合适的类型,这样有利于提高查询的效率和节省存储空间。整数类型是不带小
数部分的数值。
提示
显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存
储空间,并且
允许的最大值也不会是999,而是INT整型所允许的最大值

浮点数类型和定点数类型

MySQL中使用浮点数和定点数来表示小数。
浮点类型有两种:单精度浮点类型(FLOAT)双精度浮点类型(DOUBLE)
定点类型只有一种:DECIMAL
浮点类型和定点类型都可以用(M,N)来表示,
其中M称为精度,表示总共的位数;
N称为标度,是表示小数的位数。
表5.3列出了MySQL中的小数类型和存储需求。
在这里插入图片描述
DECIMAL类型不同于FLOAT和DOUBLE,DECIMAL实际是以串存放的,DECIMAL可能的最大取值范围与DOUBLE一样,但是其有效的取值范围由M和D的值决定
如果改变M而固定D,则其取值范围将随M的变大而变大。
从表5.3可以看到,DECIMAL的存储空间并不是固定的,而由其精度值M决定,占用M+2个字节。
在这里插入图片描述
不论定点还是浮点类型,如果用户指定的精度超出精度范围,则会四舍五入进行处
在这里插入图片描述
浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的数据范围;
它的缺点是会引起精度问题。
提示
在MySQL中,定点数以字符串形式存储,在对精度要求比较高的时候(如货币,科学数
据等)使用DECIMAL的类型比较好,另外两个浮点数进行减法和比较运算时也容易出问
题,所以在使用浮点型时需要注意,并尽量避免做浮点数比较。

日期与时间类型

待定

文本字符串类型

待定

二进制字符串类型

待定

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值