Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > MySQL常见字段类型长度

MySQL数据库常见字段类型长度汇总大全

作者:程序员Forlan

这篇文章主要给大家介绍了关于MySQL数据库常见字段类型长度汇总大全的相关资料,需要的朋友可以参考下

一、整数

TINYINT

SMALLINT

MEDIUMINT

INT

BIGINT

二、字符串

CHAR

VARCHAR

BINARY

VARBINARY

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT

TINYBLOB

BLOB

MEDIUMBLOB

LONGBLOB

TEXT和BLOB字段类型之间的主要区别?

选择TEXT还是BLOB主要取决于你的数据需求和场景。如果你正在存储大量的文本数据,并且需要考虑到字符集和排序规则,那么TEXT可能是更好的选择。如果你正在存储大型二进制对象或与字符集和排序规则无关的数据,那么BLOB可能更适合你的需求。

三、浮点数

NUMERIC(M, D), DECIMAL(M, D)

FLOAT

FLOAT 是单精度浮点数数据类型,用于存储近似值。

FLOAT 类型的数值可能会有舍入误差,因为浮点数使用二进制表示,无法精确表示某些十进制小数。

存储:32位(4字节)来存储数值,并且可以存储大约7位有效数字。

DOUBLE

DOUBLE 是双精度浮点数数据类型,也用于存储近似值。

与 FLOAT 类似,DOUBLE 类型的数值也可能会有舍入误

存储:使用64位(8字节)来存储数值,并且可以存储大约15位有效数字。

浮点数的区别?

DECIMAL 和 NUMERIC 是精确数值类型,用于需要精确计算的场景,如货币值。它们以字符串形式存储,不会引入舍入误差。

FLOAT 和 DOUBLE 是浮点数类型,用于存储近似值。它们使用二进制表示,可能会有舍入误差。

DECIMAL 和 NUMERIC 需要指定精度和标度,而 FLOAT 和 DOUBLE 则不需要。

存储大小方面,DECIMAL 和 NUMERIC 的存储大小根据指定的精度和标度而定,而 FLOAT 固定为4字节,DOUBLE 固定为8字节。

四、总结

选择字段的原则

int(1)定义的长度影响写入的长度?

这里的int(1)插入123可以成功的,只要不超过int类型的表示范围-2^31 - 2^31-1,所以说字段括号的长度是没有意义的,不影响写入长度。

varchar(5)与varchar(255)保存同样的内容,有区别?

我们知道,varchar(n) ,n<=255使用额外一个字节保存长度,n>255使用额外两个字节保存长度。实际上,两者的硬盘存储空间相同,但内存空间占用不同,是括号的指定大小,因为将行从存储引擎层复制到SQL层时,varchar将转换为字段char以获得利用固定宽度行的优势,因此,内存中的字符串将填充到声明的varchar列的最大长度。

具体可以查阅,MySQL官方文档:https://dev.mysql.com/doc/refman/5.7/en/data-types.html

MySQL5.0.3版本之后varchar类型的变化

1)、MySQL 5.0.3 之前:0-255字节,如:varchar(20)中的20表示字节数,如果存放utf-8编码的话只能放6个汉字。varchar(n),这里的n表示字节数。

MySQL 5.0.3 之后:0-65535字节,varchar(20)表示字符数,不管什么编码,既汉字也能放20个。但最多占65532字节(两个字节存放长度,小于255字节用1个字节存放长度),varchar(n)这里的n表示

总结 

到此这篇关于MySQL数据库常见字段类型长度汇总的文章就介绍到这了,更多相关MySQL常见字段类型长度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文