- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - RDBMS 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 截断表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表数据
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION vs UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接 vs 右连接
- SQL - UNION vs JOIN
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 备选键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚集索引
- SQL - 非聚集索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - CHECK 约束
- SQL - DEFAULT 约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 公共表表达式
- SQL - GROUP BY vs ORDER BY
- SQL - IN vs EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - 布尔值
布尔值是一种通用数据类型,用于存储真或假值。在定义表中列的变量时使用。
例如,客户想要所有红色汽车的列表。因此,我们可以使用下表中所示的布尔运算符找到它:
这里,IS_RED 是布尔列,根据汽车的颜色返回 TRUE 或 FALSE 值。
PostgreSQL 和 PL/SQL 等数据库提供布尔数据类型,缩写为 BOOL。而 MySQL 和 Oracle SQL 等数据库没有布尔数据类型。为了表示布尔值,它们分别提供 TINYINT 和 BIT 数据类型。
MySQL 中的布尔值
MySQL 提供了多种处理布尔数据的方法。您可以使用 BOOL、BOOLEAN 或 TINYINT 来表示布尔值。
当您使用 BOOL 或 BOOLEAN 时,MySQL 会将其内部转换为 TINYINT。与许多编程语言(如 PHP、C 和 C++)类似,MySQL 将 TRUE 字面量表示为 1,将 FALSE 字面量表示为 0。
示例
在这里,我们正在创建一个带有布尔列的表“CARS”。创建表的查询如下:
CREATE TABLE CARS ( ID INT NOT NULL, Name VARCHAR(150), IsRed BOOLEAN );
在上例中,创建了一个带布尔列IsRed的表。您可以将 TRUE 作为 1 或 FALSE 作为 0 插入此列以表示相应的布尔值。
MS SQL Server 中的布尔值
在 MS SQL Server 中,没有直接的布尔数据类型。相反,您可以使用 BIT 数据类型来表示布尔值,其中 0 表示 FALSE,1 表示 TRUE。BIT 数据类型还可以接受 NULL 值。
示例
以下是使用 SQL Server 创建带有布尔列的表的示例:
CREATE TABLE CUSTOMERS ( ID INT NOT NULL, Name VARCHAR(150), IsAvailable BIT );
在上例中,创建了一个名为 CUSTOMERS 的表,其中包含一个布尔列IsAvailable,表示为 BIT 数据类型。您可以在此列中插入 0 表示 FALSE,1 表示 TRUE,或 NULL 表示未知值。
现在您已经了解了布尔数据类型在 SQL Server 和 MySQL 中是如何实现的,让我们来探讨如何在 SQL 中处理布尔数据,包括基于布尔列的过滤和查询。过滤布尔数据
您可以根据 SQL 中的布尔列过滤数据。例如,在 MySQL 中,要查找所有红色汽车,您可以使用布尔列“IsRed”来过滤 TRUE 值,如下所示:
SELECT * FROM CARS WHERE IsRed = TRUE;
在 SQL Server 中,要查找红色的汽车,您可以过滤 TRUE 值 (IsRed = 1),如下所示:
SELECT * FROM CARS WHERE IsRed = 1;
否定布尔条件
您还可以否定布尔条件以查找不是 TRUE 的记录。例如,要查找不是红色的汽车,请在 MySQL 中使用以下查询:
SELECT * FROM CARS WHERE IsRed = 0;
以下是 SQL Server 中的查询:
SELECT * FROM CARS WHERE IsRed = FALSE;
处理 NULL 值
您也可以在 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 或非 NULL 来过滤汽车。
更新布尔值
您也可以更新 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;