详解MySQL的常用数据类型

文章详细介绍了MySQL中的数据类型,包括编码和字符、数值类型(整数和浮点数)的存储与范围、字符串类型以及日期和时间类型,特别是对INT长度、VARCHAR存储空间和DECIMAL的精度进行了深入讨论。建议选择合适的数据类型以优化存储和性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MySQL 数据类型

MySQL支持很多数据类型,以便我们能在复杂的业务场景中支持各种各样的数据格式,存储适当的数据内容。我们在设计数据库时,正确的使用数据库类型对整个数据库的整洁和高效,会有很大的帮助。

MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

1.1、mysql中编码和字符

在 mysql 中,一个中文汉字所占的字节数与编码格式有关:

  • 如果是GBK编码,则一个中文汉字占2个字节,英文占1个字节
  • 如果是UTF8编码,则一个中文汉字占3个字节,而英文字母占1字节。

比如定义某个字段数据类型为:varchar(32),表示这个可以存储 32 个字符,此时表示的是字符,所以跟中英文无关,也就是该字段可以存储 32 个中文,或者是 32 个英文,或者是 32 个中文和英文的混搭都行。但如果字符数超过 32 个的话就会报错。

二、数值类型

MySQL 支持所有标准 SQL 数值数据类型,mysql 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。并且 MySQL 允许我们指定数值字段中的值是否有正负之分(UNSIGNED)或者用零填补(ZEROFILL)

在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和 BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。浮点型有:FLOAT、DOUBLE、DECIMAL。

下面的表显示了需要的每个数值类型的存储所占用的字节和可表示的数值范围:

1 bit 即 1位  1字节 = 8 bit  1K = 1024字节  1M = 1024K

在这里插入图片描述

比如 INT 类型,该类型所占字节为 4 个字节。比如数据库中某列的字段类型为 INT,则每条数据的该列的数据都会占服务器容量的 4 个字节的存储容量,并且该列所能显示的数值范围只能是 -128~127 ,或者如果该列是无符号的话,则范围是 0~255。如果你存储超出最大范围则会提示 out of range value …,比如往 INT 且有符号的数据类型里面存储 2147483648 的值,则会报错并且不会存储成功。

2.1、整数类型的长度

常用的整数数据类型有 tinyint ,smallint ,mediumint , int ,bigint 共计5种。

在声明整数类型列时,我们可以跟上一个数值,例如 int(n) ,但实际上这里的 n 跟存储没有什么关系,无论 n 是什么,INT 数据类型都是 4 个字

评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹤冲天Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值