MySQL 中布尔值的 TINYINT 与 ENUM(0, 1)

作者:编程家 分类: mysql 时间:2025-10-24

MySQL 是一种常用的关系型数据库管理系统,它支持多种数据类型,包括布尔值。在 MySQL 中,布尔值可以使用 TINYINT 类型或 ENUM(0, 1) 类型来表示。本文将介绍这两种数据类型,并提供一些案例代码来演示它们的使用。

MySQL 中的布尔值类型

在 MySQL 中,布尔值可以使用 TINYINT 类型来表示。TINYINT 类型占用 1 个字节的存储空间,可以存储范围为 -128 到 127 的整数值。由于布尔值只有两种可能的取值,即真和假,我们可以将 TINYINT 类型的值限制在 0 和 1 之间来表示布尔值。

此外,MySQL 还提供了 ENUM 类型来表示布尔值。ENUM 类型是一个枚举类型,可以定义一组允许的值。在布尔值的情况下,我们可以定义一个 ENUM(0, 1) 类型,其中 0 表示假,1 表示真。

使用 TINYINT 类型表示布尔值的案例

下面是一个使用 TINYINT 类型表示布尔值的案例代码:

sql

CREATE TABLE users (

id INT PRIMARY KEY,

name VARCHAR(50),

active TINYINT

);

INSERT INTO users (id, name, active) VALUES

(1, 'Alice', 1),

(2, 'Bob', 0),

(3, 'Charlie', 1);

SELECT * FROM users WHERE active = 1;

在上面的代码中,我们创建了一个名为 users 的表,其中包含 id、name 和 active 三个列。active 列使用 TINYINT 类型来表示布尔值,1 表示用户处于活跃状态,0 表示用户处于非活跃状态。

接下来,我们向表中插入了三条记录,并使用 SELECT 语句查询了所有处于活跃状态的用户。通过将 active 列的值设置为 1,我们可以轻松地过滤出活跃用户。

使用 ENUM 类型表示布尔值的案例

下面是一个使用 ENUM 类型表示布尔值的案例代码:

sql

CREATE TABLE users (

id INT PRIMARY KEY,

name VARCHAR(50),

active ENUM('0', '1')

);

INSERT INTO users (id, name, active) VALUES

(1, 'Alice', '1'),

(2, 'Bob', '0'),

(3, 'Charlie', '1');

SELECT * FROM users WHERE active = '1';

在上面的代码中,我们创建了一个与之前相同的 users 表,其中 active 列使用 ENUM 类型来表示布尔值。在 ENUM 类型的定义中,我们指定了允许的值为 '0' 和 '1'。

然后,我们向表中插入了三条记录,并使用 SELECT 语句查询了所有处于活跃状态的用户。与使用 TINYINT 类型相比,我们需要将 active 列的值用引号括在查询时也需要使用引号来匹配值。

本文介绍了 MySQL 中布尔值的两种表示方法:TINYINT 类型和 ENUM 类型。通过使用这些数据类型,我们可以在数据库中存储和操作布尔值。无论是使用 TINYINT 还是 ENUM,我们都可以轻松地过滤和查询出符合特定条件的记录。

希望本文对你理解 MySQL 中布尔值的表示方法有所帮助!