MySQL存布尔值

2024年08月04日 MySQL存布尔值 极客笔记

MySQL存布尔值

在MySQL中,我们可以使用布尔类型来存储true/false或者1/0等逻辑值。布尔类型在MySQL中有多种表示方式,但最常见的方式是使用TINYINT(1)。

TINYINT(1)存储布尔值

TINYINT是MySQL的一种整数类型,可以存储范围在-128到127之间的整数。而在使用TINYINT(1)时,它只占用一个字节的存储空间,并且可以用来存储布尔值。

创建一个表格来存储布尔值:

CREATE TABLE test_boolean (
    id INT AUTO_INCREMENT PRIMARY KEY,
    is_active TINYINT(1)
);

在这个表中,is_active列被定义为TINYINT(1),可以存储布尔值。接下来我们向这个表中插入一些数据:

INSERT INTO test_boolean (is_active) VALUES (1), (0), (1), (0);

现在我们可以查询这个表格的数据:

SELECT * FROM test_boolean;

结果应该如下所示:

| id | is_active |
|----|-----------|
| 1  | 1         |
| 2  | 0         |
| 3  | 1         |
| 4  | 0         |

这样我们就成功地使用TINYINT(1)存储了布尔值。

使用枚举类型存储布尔值

除了使用TINYINT(1),我们也可以使用枚举类型来存储布尔值。在MySQL中,枚举类型允许我们定义一个有限的值集合,可以用来存储几种固定的值。

创建一个表格来存储布尔值:

CREATE TABLE test_boolean_enum (
    id INT AUTO_INCREMENT PRIMARY KEY,
    is_active ENUM('Y', 'N')
);

在这个表中,is_active列被定义为枚举类型,只能存储’Y’或’N’这两个值。接下来我们向这个表中插入一些数据:

INSERT INTO test_boolean_enum (is_active) VALUES ('Y'), ('N'), ('Y'), ('N');

现在我们可以查询这个表格的数据:

SELECT * FROM test_boolean_enum;

结果应该如下所示:

| id | is_active |
|----|-----------|
| 1  | Y         |
| 2  | N         |
| 3  | Y         |
| 4  | N         |

使用BOOL和BOOLEAN类型

在MySQL中,BOOL和BOOLEAN类型也可以用来存储布尔值,但它们只是TINYINT(1)的别名。也就是说,实际上它们还是使用TINYINT(1)来存储布尔值的。

CREATE TABLE test_boolean_bool (
    id INT AUTO_INCREMENT PRIMARY KEY,
    is_active BOOL
);

INSERT INTO test_boolean_bool (is_active) VALUES (1), (0), (1), (0);

SELECT * FROM test_boolean_bool;

结果应该和使用TINYINT(1)存储布尔值时一样。

总结

在MySQL中,我们可以使用TINYINT(1)、枚举类型、BOOL和BOOLEAN类型来存储布尔值。这些类型都可以很方便地存储true/false或者1/0等逻辑值。在设计数据库表结构时,根据实际需求选择合适的布尔类型来存储数据,可以更高效地利用存储空间和提高查询效率。

本文链接:http://so.lmcjl.com/news/9971/

展开阅读全文