SQL BOOLEAN (BIT) 操作符怎么用?

文章导读
上一个 测验 下一个 Boolean 是一种通用数据类型,用于存储 true 或 false 值。当我们在表列中定义变量时使用它。
📋 目录
  1. MySQL 中的 Boolean
  2. MS SQL Server 中的 Boolean
  3. 过滤 Boolean 数据
  4. 否定 Boolean 条件
  5. 处理 NULL 值
  6. 更新布尔值
A A

SQL - BOOLEAN

目录
  • MySQL 中的 Boolean
  • MS SQL Server 中的 Boolean
  • 过滤 Boolean 数据
  • 否定 Boolean 条件
  • 处理 NULL 值
  • 更新 Boolean 值


上一个
测验
下一个

Boolean 是一种通用数据类型,用于存储 true 或 false 值。当我们在表列中定义变量时使用它。

例如,客户想要所有红色汽车的列表。因此,我们可以使用下面的表中给出的 BOOLEAN 操作符来查找。

Boolean Operator

在这里,IS_RED 是 BOOLEAN 列,根据汽车的颜色返回 TRUE 或 FALSE 值。

像 PostgreSQL 和 PL/SQL 这样的数据库提供了 Boolean 数据类型,缩写为 BOOL。而像 MySQL 和 Oracle SQL 这样的数据库没有 Boolean 数据类型。为了表示 Boolean 值,它们分别提供了 TINYINT 和 BIT 数据类型。

MySQL 中的 Boolean

MySQL 提供了多种处理 Boolean 数据的方式。您可以使用 BOOL、BOOLEAN 或 TINYINT 来表示 Boolean 值。

当您使用 BOOL 或 BOOLEAN 时,MySQL 内部会将它们转换为 TINYINT。类似于许多编程语言如 PHP、C 和 C++,MySQL 将 TRUE 字面量表示为 1,将 FALSE 字面量表示为 0。

示例

在这里,我们创建一个名为 'CARS' 的表,其中包含 BOOLEAN 列。创建表的查询如下 −

CREATE TABLE CARS (
   ID INT NOT NULL,
   Name VARCHAR(150),
   IsRed BOOLEAN
);

在上面的示例中,创建了一个带有 BOOLEAN 列 IsRed 的表。您可以在此列中插入 1 表示 TRUE 或 0 表示 FALSE,以表示相应的 Boolean 值。

MS SQL Server 中的 Boolean

在 MS SQL Server 中,没有直接的 BOOLEAN 数据类型。相反,您可以使用 BIT 数据类型来表示 Boolean 值,其中 0 表示 FALSE,1 表示 TRUE。BIT 数据类型也可以接受 NULL 值。

示例

以下是在 SQL Server 中创建带有 BOOLEAN 列的表的示例 −

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   Name VARCHAR(150),
   IsAvailable BIT
);

在上面的示例中,创建了一个名为 CUSTOMERS 的表,其中包含以 BIT 数据类型表示的 BOOLEAN 列 IsAvailable。您可以在此列中插入 0 表示 FALSE、1 表示 TRUE,或 NULL 表示未知值。

现在您了解了 SQL Server 和 MySQL 中 Boolean 数据类型的实现,让我们探索如何在 SQL 中处理 Boolean 数据,包括基于 Boolean 列的过滤和查询。

过滤 Boolean 数据

您可以在 SQL 中基于 Boolean 列过滤数据。例如,在 MySQL 中,要查找所有红色汽车,可以使用 BOOLEAN 列 'IsRed' 过滤 TRUE 值,如下所示 −

SELECT * FROM CARS WHERE IsRed = TRUE;

在 SQL Server 中,要查找红色汽车,可以按以下方式过滤 TRUE 值 (IsRed = 1) −

SELECT * FROM CARS WHERE IsRed = 1;

否定 Boolean 条件

您也可以否定 Boolean 条件来查找不是 TRUE 的记录。例如,要查找非红色汽车,可以在 MySQL 中使用以下查询 −

SELECT * FROM CARS WHERE IsRed = 0;

SQL Server 中的查询如下 −

SELECT * FROM CARS WHERE IsRed = FALSE;

处理 NULL 值

您也可以在 SQL 中处理 Boolean 数据的 NULL 值。如前所述,SQL Server 中的 BIT 数据类型和 MySQL 中的 BOOL/BOOLEAN 数据类型都可以接受 NULL 值,这些值可以表示未知或未指定的条件。

要过滤 Boolean 列中具有 NULL 值的记录,您可以在 MySQL 和 SQL Server 中使用 IS NULLIS NOT NULL 条件 −

-- 查找可用性未指定的汽车
SELECT * FROM CARS WHERE IsAvailable IS NULL;

-- 查找可用性已指定的汽车
SELECT * FROM CARS WHERE IsAvailable IS NOT NULL;

在上面的查询中,我们根据 IsAvailable 列是否为 NULL 或非 NULL 来过滤汽车。

更新布尔值

你也可以在 SQL 表中更新 Boolean 值。要在 MySQL 中更改 Boolean 列的值,可以使用以下所示的 UPDATE 语句 −

-- 将 ID 为 123 的汽车的 IsRed 更改为 TRUE
UPDATE CARS SET IsRed = TRUE WHERE ID = 123;

在上面的示例中,我们为 ID 为 123 的特定汽车更新了 IsRed 列,将其设置为 TRUE。

要在 SQL Server 中更新 Boolean 值,请使用以下查询 −

-- 将 ID 为 123 的汽车的 IsRed 更改为 TRUE
UPDATE CARS SET IsRed = 1 WHERE ID = 123;