MySQL 常用数据类型,看看你们是不是都知道

MySQL 是一款流行的开源数据库管理系统,在 Web 开发、大数据处理等领域被广泛应用。作为关系型数据库,MySQL 支持多种数据类型,包括整数类型、浮点数类型、日期与时间类型、字符串类型、枚举和集合类型、布尔类型、位类型、极限值类型、JSON 类型和空间数据类型等。本文将全面详细地介绍 MySQL 数据库中常用的数据类型。

1. 整数类型

整数类型包括以下几种:

1.1 TINYINT 类型

TINYINT 类型是 MySQL 中最小的整数类型,占用 1 个字节(8 位),可存储范围为 -128 到 127,无符号类型可存储范围为 0 到 255。TINYINT 类型通常用于存储布尔值或者枚举值。

1.2 SMALLINT 类型

SMALLINT 类型占用 2 个字节(16 位),可存储范围为 -32768 到 32767,无符号类型可存储范围为 0 到 65535。SMALLINT 类型通常用于存储较小的整数值。

1.3 MEDIUMINT 类型

MEDIUMINT 类型占用 3 个字节(24 位),可存储范围为 -8388608 到 8388607,无符号类型可存储范围为 0 到 16777215。MEDIUMINT 类型通常用于存储中等大小的整数值。

1.4 INT 类型

INT 类型占用 4 个字节(32 位),可存储范围为 -2147483648 到 2147483647,无符号类型可存储范围为 0 到 4294967295。INT 类型通常用于存储较大的整数值。

1.5 BIGINT 类型

BIGINT 类型占用 8 个字节(64 位),可存储范围为 -9223372036854775808 到 9223372036854775807,无符号类型可存储范围为 0 到 18446744073709551615。BIGINT 类型通常用于存储极大的整数值。

2. 浮点数类型

浮点数类型包括以下几种:

2.1 FLOAT 类型

FLOAT 类型占用 4 个字节,可存储单精度浮点数,保留 7 位有效数字。FLOAT 类型通常用于存储较小的浮点数值。

2.2 DOUBLE 类型

DOUBLE 类型占用 8 个字节,可存储双精度浮点数,保留 15 位有效数字。DOUBLE 类型通常用于存储较大的浮点数值。

2.3 DECIMAL 类型

DECIMAL 类型用于存储精确的小数值,支持可变长度的数值范围和精度。DECIMAL 类型一般用于存储财务数据、统计数据等需要精确计算的数据。

3. 日期与时间类型

日期与时间类型包括以下几种:

3.1 DATE 类型

DATE 类型用于存储日期值,占用 3 个字节。DATE 类型的取值范围是 ‘1000-01-01’ 到 ‘9999-12-31’。

3.2 TIME 类型

TIME 类型用于存储时间值,占用 3 个字节。TIME 类型的取值范围是 ‘-838:59:59’ 到 ‘838:59:59’。

3.3 DATETIME 类型

DATETIME 类型用于存储日期和时间值,占用 8 个字节。DATETIME 类型的取值范围是 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’。

3.4 TIMESTAMP 类型

TIMESTAMP 类型用于存储日期和时间值,占用 4 个字节。TIMESTAMP 类型的取值范围是 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-19 03:14:07’ UTC(32 位系统),或 ‘1970-01-01 00:00:01’ UTC 到 ‘9999-12-31 23:59:59’ UTC(64 位系统)。

4. 字符串类型

字符串类型包括以下几种:

4.1 CHAR 类型

CHAR 类型用于存储固定长度的字符串,长度可指定为 0 到 255 之间。对于 CHAR 类型的列,如果存储的字符串长度不足指定长度,MySQL 将在右侧填充空格。

4.2 VARCHAR 类型

VARCHAR 类型用于存储可变长度的字符串,长度可指定为 0 到 65535 之间。VARCHAR 类型只存储实际使用的字符,因此比 CHAR 类型更节省空间。

4.3 BLOB 类型

BLOB 类型用于存储二进制数据,包括图像、音频、视频等。BLOB 类型可以存储最多 65535 个字节的数据。

4.4 TEXT 类型

TEXT 类型用于存储较大的文本数据,可以存储最多 65535 个字节的数据。TEXT 类型有四个子类型:TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT,分别用于存储不同大小的文本数据。

5. 枚举和集合类型

枚举和集合类型用于存储限定的值列表,常用于存储分类、状态等信息。

5.1 ENUM 类型

ENUM 类型用于存储一个固定的值列表,最多支持 65535 个不同的值。ENUM 类型中的每个值都有一个整数关联,范围从 1 到 N(N 表示 ENUM 类型中的值数量)。

5.2 SET 类型

SET 类型用于存储多个值的集合,最多支持 64 个不同的值。SET 类型中的每个值也都有一个整数关联,范围从 1 到 2^N-1(N 表示 SET 类型中的值数量)。

6. 布尔类型

布尔类型 BOOL 或 BOOLEAN 是 MySQL 中的别名,实际上是 TINYINT(1) 的同义词。这种类型只占用 1 个字节,可以存储 0 或 1 表示真或假。

7. 位类型

位类型 BIT 用于存储位字段值,可以存储从 1 到 64 个位。BIT(M) 类型占用 CEILING(M/8) 个字节,其中 CEILING 表示取整函数,M 表示位数。

8. 极限值类型

MySQL 还提供了一些极限值类型,分别为 TINYINT UNSIGNED、SMALLINT UNSIGNED、MEDIUMINT UNSIGNED、INT UNSIGNED、BIGINT UNSIGNED 和 FLOAT UNSIGNED。这些类型只存储非负整数和浮点数值,无符号类型可存储范围是 0 到 2^n-1(n 表示所占用的字节数)。

9. JSON 类型

JSON 类型用于存储 JSON 格式的文本数据,可以存储最多 4GB 的数据。

10. 空间数据类型

空间数据类型用于存储空间数据,包括点、线、面和复杂的地理空间对象。空间数据类型有四种:GEOMETRY、POINT、LINESTRING 和 POLYGON。

以上就是 MySQL 数据库中的所有主要的数据类型,包括整数类型、浮点数类型、日期与时间类型、字符串类型、枚举和集合类型、布尔类型、位类型、极限值类型、JSON 类型和空间数据类型。使用不同的数据类型可以更好地存储不同类型的数据,并使数据库设计更加合理和高效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大家都说我身材好

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

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

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

打赏作者

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

抵扣说明:

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

余额充值