MySQL SMALLINT 数据类型介绍

SMALLINT 是 MySQL 中一种用于存储整数类型数据的数据类型,它可以存储从-32768 到 32767 的整数。

语法

创建表格时,可以使用以下语法定义一个 SMALLINT 数据类型的列:

column_name SMALLINT [UNSIGNED] [ZEROFILL]

其中,column_name 是列的名称,UNSIGNEDZEROFILL 是可选项。如果指定了 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 数据类型时,需要根据存储的数据范围和大小来选择合适的有符号或无符号类型,以充分利用存储空间。