MySQL 布尔类型

MySQL 布尔类型

布尔类型是最简单的数据类型,它始终返回两个可能的值,即true或false。它常用于获得确认的形式,即是或否的值。

MySQL不包含内置的布尔或Bool数据类型。它们使用 TINYINT 数据类型代替布尔或Bool数据类型。 MySQL将零值视为false,非零值视为true。如果您想使用布尔字面值,请使用永远评估为0和1值的true或false。0和1表示整数值。

执行以下语句以查看布尔字面值的整数值:

Mysql> Select TRUE, FALSE, true, false, True, False;

成功执行后,出现以下结果:

MySQL 布尔类型

MySQL布尔值示例

我们可以将布尔值存储在MySQL表中作为整数数据类型。让我们创建一个名为student的表,演示在MySQL中使用布尔数据类型的用法:

mysql> CREATE TABLE student (
    studentid INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(40) NOT NULL,
    age VARCHAR(3),
    pass BOOLEAN
);

在上面的查询中,我们可以看到在显示表的定义时,pass字段被定义为一个布尔型;它包含如下的TINIINT:

mysql> DESCRIBE student;

MySQL 布尔类型

使用以下查询语句,在上面的表中添加两行:

mysql> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);

当以上查询执行时,MySQL立即检查表中的布尔数据类型。如果找到布尔字面值,则会将其转换为整数值0和1。执行以下查询以从student表中获取数据:

Mysql> SELECT  studentid, name, pass FROM student;

你将得到以下输出,其中true和false字面值将被转换为0和1的值。

MySQL 布尔类型

由于MySQL始终将TINYINT视为布尔类型,因此我们也可以将任何整数值插入布尔列中。执行以下语句:

Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);

您将得到以下结果:

MySQL 布尔类型

在某些情况下,您需要以真和假文字的形式获得结果。在这种情况下,您需要执行带有以下选择语句的if()函数:

Mysql> SELECT  studentid, name, IF(pass, 'true', 'false') completed FROM student1;

它将会给出以下输出:

MySQL 布尔类型

MySQL布尔运算符

MySQL还允许我们在布尔数据类型中使用运算符。执行以下查询以获取表student中所有通过的结果。

SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;

此语句会返回以下输出:

MySQL 布尔类型

以上语句仅在值等于1时返回通过结果。我们可以通过使用 IS 操作符来修复它。此操作符使用布尔值验证该值。以下语句解释了这一点:

SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;

执行此语句后,您将获得以下结果:

MySQL 布尔类型

如果你想查看待处理结果,请使用以下 IS FALSEIS NOT TRUE 运算符:

SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE;

OR,

SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;

你将会得到以下输出:

MySQL 布尔类型

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程