本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情
目录
今天阿文介绍的内容
- MySQL中的数据类型
- 整数类型
- 浮点类型
MySQL数据类型介绍
MySQL支持多种数据类型,主要有数值类型、日期/时间类型和字符串类型。
- 数值类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、浮点小数数据类型FLOAT和DOUBLE,定点小数类型DECIMAL。
- 日期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。
- 字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。字符串类型又分为文本字符串和二进制字符串。
1.整数类型
数值型数据类型主要用来存储数字,MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越大,其所需要的存储空间也会越大。整数类型的属性字段可以添加AUTO_INCREMENT自增约束条件。
下表列出了MySQL中数据类型:
例如:
year INT(4);
该声明指明,在year字段中的数据一般只显示4位数字的宽度。在定义时数据类型后面括号中的数字,它表示的是该数据类型指定的显示宽度,即能够显示的数值中数字的个数。
注意:显示宽度和数据类型的取值范围是无关的。显示宽度只是指明MySQL最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依然可以插入,而且能够显示出来。例如,向year字段插入一个数值19999,当使用SELECT查询该列值的时候,MySQL显示的将是完整的带有5位数字的19999,而不是4位数字的值。如果不指定显示宽度,则系统为每一种类型指定默认的宽度值。
提示:
显示宽度只用于显示,并不能限制取值范围和占用空间。例如:INT(3)会占用4字节的存储空间,并且允许的最大值不会是999,而是INT整型所允许的最大值。
2.浮点数类型和定点数类型
MySQL中使用浮点数和定点数来表示小数。
浮点数类型有两种:
单精度浮点类型(FLOAT)双精度浮点类型(DOUBLE)
定点数类型只有一种:DECIMAL。
浮点数类型和定点数类型都可以用(M,N)来表示。其中,M称为精度,表示总共的位数;N称为标度,表示小数的位数。
下表列出了MySQL中的小数类型和存储需求:
例如:
CREATE TABLE temp
{
x FLOAT(5,1),
Y DOUBLE(5,1),
Z DECIMAL(5,1)
};
注意:不论是定点数还是浮点数类型,如果用户指定的精度超出精度范围,则会四舍五入。FLOAT和DOUBLE在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决定),DECIMAL若不指定精度则默认为(10,0)。
提示:
在MySQL中,定点数以字符串形式存储,在对精度要求比较高的时候(如货币、科学数据等)使用DECIMAL的类型比较好,另外两个浮点数进行减法和比较运算时容易出问题,所以在使用浮点数时需要注意,并尽量避免做浮点数比较。
总结
- 在MySQL中有3大种数据类型:数值类型、日期/时间类型和字符串类型
- 整数类型有5种,且可以设置
显示宽度参数 - 浮点类型有2大种:
浮点数与定点数,它们使用的场景不相同
好了,今天阿文就介绍到这了...