Mysql 简明教程

MySQL - Boolean Datatype

Boolean 数据类型用于表示逻辑和布尔代数的真值。它有两个可能的值:真或假。

例如,如果客户希望看到所有黑色的自行车,我们可以使用 BOOLEAN 运算符对它们进行筛选,如下表所示 −

mysql boolean

这里,“IS_BLACK”是 BOOLEAN 列,它会根据自行车的颜色返回 true 或 false 值。

Boolean in MySQL

在 MySQL 中,没有内置的布尔或 Bool 数据类型。相反,MySQL 为我们提供了 TINYINT 数据类型来存储布尔值。

MySQL 将值 0 视为 FALSE,将值 1 视为 TRUE。我们还可以使用 TINYINT 数据类型存储 NULL 值。

Syntax

以下是 MySQL 中 BOOLEAN 运算符的语法 −

CREATE TABLE table_name (
   Column_name BOOLEAN
);

Example

在 MySQL 中,0 被定义为 FALSE,任何非零值被定义为 TRUE −

SELECT TRUE, FALSE;

Output

如我们从下面的输出中看到的,TRUE 和 FALSE 分别表示为 1 和 0 −

Example

在 MySQL 中,布尔值(TRUE 和 FALSE)不区分大小写 −

SELECT true, false, TRUE, FALSE, True, False;

Output

产生的输出如下:

Example

现在,使用以下查询创建名为 CUSTOMERS 的表。此处,AVAILABILITY 列指定了客户是否可用。如果位值是 0 (FALSE),则客户不可用。如果它为 1(TRUE),则客户可用 −

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   NAME VARCHAR(40),
   AVAILABILITY BOOLEAN
);

下面是生成的输出−

Query OK, 0 rows affected (0.02 sec)

要获取有关 CUSTOMERS 表的信息,请使用以下查询 −

DESCRIBE CUSTOMERS;

如果我们查看在创建表时已设置为 BOOLEAN 的 AVAILABILITY 列,它现在显示 TINYINT 的类型 −

现在,让我们使用以下 INSERT 查询在 CUSTOMERS 表中插入一些记录 −

INSERT INTO CUSTOMERS VALUES
(1, 'Ramesh', FALSE),
(2, 'Khilan', TRUE),
(4, 'Kaushik', NULL);

使用以下查询,我们可以显示表中的所有值 −

SELECT * FROM CUSTOMERS;

我们可能会看到 AVAILABILITY 列中的值分别设置为 0 和 1。−

Replacing BOOLEAN 0,1 with TRUE and FALSE

如我们在上面的 CUSTOMERS 表中看到的,BOOLEAN 数据类型显示 0 和 1 值,而不是 TRUE 和 FALSE。在 MySQL 中,我们可以使用 CASE 语句将 BOOLEAN 数据类型转换为 TRUE 和 FALSE 值。

MySQL CASE 语句是一个条件语句,它遍历条件,并在满足第一个条件时返回一个值。因此,一旦一个条件为真,它将会停止读取下一段代码并返回结果。

如果没有条件为真,它将返回 ELSE 子句中的值。如果没有 ELSE 子句,也没有条件为真,它将返回 NULL。

Syntax

以下是 MySQL 中 CASE 语句的语法 −

CASE
   WHEN condition1 THEN result1
   WHEN condition2 THEN result2
   ...
   WHEN conditionN THEN resultN
   ELSE result
END;

Example

为了更好地理解,让我们考虑使用以下查询创建的 BIKES 表 −

CREATE TABLE BIKES (
   S_NO INT AUTO_INCREMENT PRIMARY KEY,
   COMPANY VARCHAR(40) NOT NULL,
   PRICE INT NOT NULL,
   COLOUR VARCHAR(40) NOT NULL,
   IS_BLACK BOOLEAN
);

Example

上述代码的输出如下:

Query OK, 0 rows affected (0.03 sec)

现在,让我们使用 INSERT 语句将值插入到 BIKES 表中,如下所示 −

INSERT INTO BIKES (COMPANY, PRICE, COLOUR, IS_BLACK)
VALUES ('Royal Enfield', 300000, 'Black', 1);
INSERT INTO BIKES (COMPANY, PRICE, COLOUR, IS_BLACK)
VALUES ('BMW', 900000, 'Blue', 0);
INSERT INTO BIKES (COMPANY, PRICE, COLOUR, IS_BLACK)
VALUES ('Jawa', 150000, 'Black', 1);
INSERT INTO BIKES (COMPANY, PRICE, COLOUR, IS_BLACK)
VALUES ('Triumph', 1200000, 'Red', 0);

获得的 BIKES 表如下 −

现在,让我们显示 BIKES 表中的所有记录,其中颜色 BLACK 由 TRUE 或 FALSE 表示 −

SELECT *,
CASE IS_BLACK
WHEN 1 THEN 'TRUE'
WHEN 0 THEN 'FALSE'
END AS IS_BOOLEAN
FROM BIKES;

Output

输出显示如下 −

Example

在以下查询中,我们正在过滤 BIKES 表中颜色黑色为 TRUE 的记录 −

SELECT * FROM BIKES WHERE IS_BLACK IS TRUE;

Output

如我们从下面的输出中看到的,Royal Enfield 和 Jawa 是黑色(true)−

Example

在表“BIKES”中我们过滤了 color black 是 FALSE 的记录 −

SELECT * FROM BIKES WHERE IS_BLACK IS FALSE;

Output

输出表示 BMW 和 Triumph 颜色不是黑色(false) −

Boolean Operator Using a Client Program

除了使用 MySQL 查询在 MySQL 表中执行布尔运算符外,我们还可以使用客户端程序对表执行另一种操作。

MySQL 提供了各种连接器和 API,你可以使用这些连接器和 API 编写程序(用各自的编程语言),以便与 MySQL 数据库通信。提供的连接器使用 Java、PHP、Python、JavaScript、C++ 等编程语言。本部分提供了在 MySQL 表中执行布尔运算符的程序。

Syntax

以下是各种编程语言中 MySQL 布尔运算符的语法 −

Example

以下是该操作在各种编程语言中的实现 −