MySQL MEDIUMINT 数据类型介绍

MEDIUMINT 是 MySQL 中的一种整数类型。它占据 3 个字节,可以存储范围在 -8388608 到 8388607 之间的有符号整数。使用 MEDIUMINT 类型可以在存储数据时占用更少的空间,而且比 INT 类型更快。它通常用于需要占用更少空间的整数字段中。

语法

MEDIUMINT 的语法如下:

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

其中,M 表示显示宽度,最大值为 9。如果未指定 M,则默认为 8。

如果添加了 UNSIGNED 选项,则该字段将仅存储非负数。如果使用了 ZEROFILL 选项,则 MySQL 会在显示宽度不足时使用 0 填充字段。

使用场景

使用 MEDIUMINT 类型的场景通常是需要占用更少空间的整数字段,比如:

  • 存储日期和时间戳
  • 存储大量整数的表格
  • 作为索引键

示例

下面是两个 MEDIUMINT 类型的示例。

示例 1

假设有一个存储用户信息的表格 users,其中需要存储用户的年龄信息,可以使用 MEDIUMINT 类型来存储。具体创建表格的语句如下:

CREATE TABLE users (
    id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    age MEDIUMINT UNSIGNED
);

下面是向users表格中插入几条数据的示例:

INSERT INTO users (name, age) VALUES ('Alice', 30);
INSERT INTO users (name, age) VALUES ('Bob', 25);
INSERT INTO users (name, age) VALUES ('Charlie', 40);

然后,我们可以使用以下查询来查看表格中的数据:

SELECT * FROM users;

输出结果如下:

+----+---------+-----+
| id | name    | age |
+----+---------+-----+
| 1  | Alice   | 30  |
| 2  | Bob     | 25  |
| 3  | Charlie | 40  |
+----+---------+-----+

示例 2

另一个示例是存储一个需要大量整数的表格,假设我们需要存储一个学生表格,其中包含大量学生的学号,可以使用 MEDIUMINT 类型来存储学生的学号。具体创建表格的语句如下:

CREATE TABLE students (
    id MEDIUMINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    student_id MEDIUMINT UNSIGNED
);

上述 SQL 语句创建了一个名为 students 的表格,其中 id 列是 MEDIUMINT UNSIGNED 类型的自增主键,name 列是 VARCHAR(50) 类型的, student_id 列是 MEDIUMINT UNSIGNED 类型的。这里使用了 UNSIGNED 来确保存储的值都是正整数,因为学生的学号通常是正整数。

下面是向students表格中插入几条数据的示例:

INSERT INTO students (name, student_id) VALUES ('Alice', 1001);
INSERT INTO students (name, student_id) VALUES ('Bob', 1002);
INSERT INTO students (name, student_id) VALUES ('Charlie', 1003);

这些数据被插入到了students表格中,每一行包含一个学生的姓名和学号。在这个例子中,我们使用了INSERT INTO语句来向表格中插入数据。

结论

MEDIUMINT 数据类型是适合存储整数类型的一种数据类型,其存储空间相比于 INT 类型更加节省,但是比 SMALLINT 类型存储空间更大。如果你需要存储大量整数类型的数据,可以考虑使用 MEDIUMINT 数据类型。