Sql 简明教程
SQL - BOOLEAN
Boolean 是存储 true 或 false 值的通用数据类型。在表列中定义变量时使用它。
例如,客户想要一张所有 red 汽车的列表。因此,我们可以使用 BOOLEAN 运算符找到它,如下表所示 −
此处, IS_RED 是 BOOLEAN 列,根据汽车颜色返回 TRUE 或 FALSE 值。
Boolean in MySQL
MySQL 提供了多种处理布尔数据的方法。您可以使用 BOOL、BOOLEAN 或 TINYINT 表示布尔值。
使用 BOOL 或 BOOLEAN 时,MySQL 会在内部将它们转换为 TINYINT。类似于 PHP、C 和 C++ 等许多编程语言,MySQL 将 TRUE 字面值表示为 1,将 FALSE 字面值表示为 0。
Boolean in MS SQL Server
在 MS SQL Server 中,没有直接的 BOOLEAN 数据类型。相反,可以使用 BIT 数据类型表示布尔值,其中 0 表示 FALSE,1 表示 TRUE。BIT 数据类型也可以接受 NULL 值。
Filtering Boolean Data
您可以在 SQL 中根据布尔型列筛选数据。例如,在 MySQL 中,要查找所有红色汽车,可以使用 BOOLEAN 列“IsRed”筛选 TRUE 值,如下所示:
SELECT * FROM CARS WHERE IsRed = TRUE;
在 SQL Server 中,要查找红色的汽车,可以按以下方式筛选 TRUE 值(IsRed = 1):
SELECT * FROM CARS WHERE IsRed = 1;
Negating Boolean Conditions
您还可以否定布尔条件以查找 NOT TRUE 的记录。例如,要在 MySQL 中查找不是红色的汽车,请使用以下查询:
SELECT * FROM CARS WHERE IsRed = 0;
以下是在 SQL Server 中的查询:
SELECT * FROM CARS WHERE IsRed = FALSE;
Working with NULL Values
您还可以在 SQL 中处理布尔数据的 NULL 值。如前所述,SQL Server 中的 BIT 数据类型和 MySQL 中的 BOOL/BOOLEAN 数据类型可以接受 NULL 值,其中可以表示未知或未指定条件。
要筛选布尔型列中具有 NULL 值的记录,您可以在 MySQL 和 SQL Server 中使用 IS NULL 或 IS NOT NULL 条件:
-- Finding cars with unspecified availability
SELECT * FROM CARS WHERE IsAvailable IS NULL;
-- Finding cars with specified availability
SELECT * FROM CARS WHERE IsAvailable IS NOT NULL;
在上述查询中,我们根据 IsAvailable 列是 NULL 还是 NOT NULL 来筛选汽车。
Updating Boolean Values
您还可以在 SQL 表中更新布尔值。要更改 MySQL 中布尔型列的值,可以使用 UPDATE 语句,如下所示:
-- Changing IsRed to TRUE for car with ID 123
UPDATE CARS SET IsRed = TRUE WHERE ID = 123;
在上述示例中,我们更新了 ID 为 123 的特定汽车的 IsRed 列,将其设置为 TRUE。
要在 SQL Server 中更新布尔值,请使用以下查询:
-- Changing IsRed to TRUE for car with ID 123
UPDATE CARS SET IsRed = 1 WHERE ID = 123;