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
数据类型。