Mysql 简明教程
MySQL - Boolean Datatype
Boolean 数据类型用于表示逻辑和布尔代数的真值。它有两个可能的值:真或假。
例如,如果客户希望看到所有黑色的自行车,我们可以使用 BOOLEAN 运算符对它们进行筛选,如下表所示 −
这里,“IS_BLACK”是 BOOLEAN 列,它会根据自行车的颜色返回 true 或 false 值。
Boolean in MySQL
在 MySQL 中,没有内置的布尔或 Bool 数据类型。相反,MySQL 为我们提供了 TINYINT 数据类型来存储布尔值。
MySQL 将值 0 视为 FALSE,将值 1 视为 TRUE。我们还可以使用 TINYINT 数据类型存储 NULL 值。
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;