SQL BOOLEAN (BIT)运算符
布尔型(Boolean)是一种通用的数据类型,用于存储真或假的值。它在我们在表的某一列中定义变量时使用。
例如,一个客户想要获取所有 “红色” 的汽车清单。因此,我们可以使用布尔型运算符如下表所示来找到这些汽车-
在这里,“IS_RED”是一个BOOLEAN列,根据车辆的颜色返回TRUE或FALSE值。
SQL中的布尔类型
SQL没有布尔数据类型(作为关键字)。相反,它提供了BIT数据类型。BIT数据类型是接受值0、1和NULL的整数值。
- 值0表示FALSE,值1表示TRUE。
-
我们还可以使用bit数据类型存储NULL值。
-
BIT数据类型的范围是1到64。这意味着SQL BOOLEAN仅需要一个比特位来存储值。
像PostgreSQL和PL/SQL这样的数据库提供了布尔数据类型,缩写为BOOL。而像MySQL和Oracle SQL这样的数据库没有布尔数据类型。为了表示布尔值,它们分别提供了TINYINT和BIT数据类型。
语法
以下是SQL BIT数据类型的基本语法-
示例
在以下查询中,我们正在创建一个名为“CUSTOMERS”的表,其中包含三列,分别是“ID”,“NAME”和“AVAILABLITY”。
“AVAILABILITY”列表示客户是否可用。如果客户不可用,则存储位值0(FALSE),如果客户可用,则存储位值1(TRUE)。
结果
执行上述查询的结果如下 –
验证
可以通过使用SELECT语句检索表的内容来验证更改是否反映在表中。以下是显示Customers表中记录的查询语句-
表格显示如下-
使用SQL BIT数据类型插入数据
一旦您创建了一个具有布尔数据类型的表列,您需要将0、1或NULL作为值传递给它。如果具有BIT数据类型的列的值不是这3个值之一,则会生成错误。
示例
在下面的查询中,我们尝试向上面创建的CUSTOMERS表中插入数据-
输出
以下是所获得的结果−
验证
SELECT语句用于打印指定表格的内容。为了验证更改是否在CUSTOMERS表格中反映出来,我们可以使用以下语句进行验证:
表格显示如下 –
将BIT 0,1替换为TRUE和FALSE
如上所述,BIT数据类型显示0和1的值,而不是TRUE和FALSE。在SQL中,我们可以使用CASE语句将BIT数据类型转换为TRUE和FALSE。
SQL CASE 语句是一种条件语句,它可以帮助我们根据特定条件做出决策。它评估一组条件,并在满足相应条件时返回结果。
语法
以下是CASE语句的基本语法:
示例
为了更好地理解,让我们考虑包含汽车制造商、类型、传输方式和颜色等详细信息的CARS表,如下所示:
现在,使用以下INSERT语句将值插入到这个表中−
表将被创建为 –
现在,让我们尝试显示CARS表中颜色为红色的所有汽车,用TRUE表示;否则用FALSE表示(布尔值)−
输出
以下是产生的结果−
使用存储过程的BIT数据类型
我们也可以在SQL Server中的存储过程中使用BIT数据类型。存储过程是一组可以多次执行的SQL语句。
存储过程使用BIT参数来确定是否执行某个动作。在使用位类型值(或任何其他数据类型)之前,我们需要先声明这个类型的变量,然后将其用作参数。
语法
以下是接受BIT参数的存储过程的基本语法 –
在这里,存储过程接受一个名为 @myBit 的BIT类型参数。然后,它使用IF语句验证 @myBit 的值,并根据其是真还是假执行不同的操作。
示例
在以下查询中,我们尝试创建一个名为 REDFlag 的存储过程,根据 @REDFlag 变量的值获取CARS表的详细信息。
输出
在执行上述查询时,我们得到以下输出结果:
验证
创建存储过程成功后,我们需要使用Exec子句来执行它。由于它期望一个类型为BIT的输入值,我们传递了1(对于color = RED为TRUE)。
输出
执行上述查询后,我们得到以下输出。它显示了红色汽车的列表。
验证
如果我们需要获取颜色不是红色的汽车列表,我们只需要调用上面创建的过程,并通过传递0来实现-
输出
以下是产生的结果−