MySQL SMALLINT 数据类型介绍
SMALLINT
是 MySQL 中一种用于存储整数类型数据的数据类型,它可以存储从-32768 到 32767 的整数。
语法
创建表格时,可以使用以下语法定义一个 SMALLINT
数据类型的列:
column_name SMALLINT [UNSIGNED] [ZEROFILL]
其中,column_name
是列的名称,UNSIGNED
和 ZEROFILL
是可选项。如果指定了 UNSIGNED
,则表示该列只存储正数。如果指定了 ZEROFILL
,则表示在输出该列的值时,使用零填充前导位数。
使用场景
由于 SMALLINT
数据类型可以存储较小的整数,因此它通常用于以下情况:
- 存储枚举类型数据
- 存储状态标识符,如启用/禁用、真/假等
- 存储较小的计数器或计量器
示例
示例 1
假设我们需要存储一些用户数据,其中包括用户 ID、用户名和用户年龄。用户年龄是一个较小的整数,我们可以使用 SMALLINT
数据类型来存储它。以下是创建用户表格的示例:
CREATE TABLE users (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
下面是向 users
表格中插入几条数据的示例:
INSERT INTO users (name, age) VALUES ('Alice', 23);
INSERT INTO users (name, age) VALUES ('Bob', 27);
INSERT INTO users (name, age) VALUES ('Charlie', 19);
示例 2
另一个示例是存储一个需要较小整数的表格,假设我们需要存储一个员工表格,其中包含员工的工号和工龄,可以使用 SMALLINT
类型来存储员工的工龄。具体创建表格的语句如下:
CREATE TABLE employees (
id INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age SMALLINT UNSIGNED,
PRIMARY KEY (id)
);
下面是向 employees
表格中插入几条数据的示例:
INSERT INTO employees (name, age) VALUES ('Alice', 2);
INSERT INTO employees (name, age) VALUES ('Bob', 5);
INSERT INTO employees (name, age) VALUES ('Charlie', 1);
结论
SMALLINT
数据类型是一种用于存储较小整数的数据类型,它通常用于存储枚举类型数据、状态标识符以及较小的计数器或计量器。如果您需要存储更大的整数,请考虑使用其他整数类型,例如 INT 或 BIGINT。在使用 SMALLINT 数据类型时,需要根据存储的数据范围和大小来选择合适的有符号或无符号类型,以充分利用存储空间。