📅  最后修改于: 2020-11-18 01:52:10             🧑  作者: Mango
布尔值是最简单的数据类型,总是返回两个可能的值,即true或false。它始终可以用来以YES或No值的形式获得确认。
MySQL不包含内置的Boolean或Bool数据类型。它们提供TINYINT数据类型,而不是Boolean或Bool数据类型。 MySQL认为零值是false,非零值是true。如果要使用布尔字面量,请使用true或false,其总值为0和1。 0和1代表整数值。
执行以下语句以查看布尔字面量的整数值:
Mysql> Select TRUE, FALSE, true, false, True, False;
成功执行后,将显示以下结果:
我们可以将布尔值作为整数数据类型存储在MySQL表中。让我们创建一个表格学生,演示在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> INSERT INTO student(name, pass) VALUES('Peter',true), ('John',false);
执行上述查询后,MySQL会立即检查表中的布尔数据类型。如果找到了布尔字面量,它将被转换为整数值0和1。执行以下查询以从学生表中获取数据:
Mysql> SELECT studentid, name, pass FROM student;
您将获得以下输出,其中将true和false字面量转换为0和1值。
由于MySQL始终使用TINYINT作为布尔值,因此我们也可以将任何整数值插入Boolean列。执行以下语句:
Mysql> INSERT INTO student(name, pass) VALUES('Miller',2);
您将得到以下结果:
在某些情况下,您需要使用true和false字面量获取结果。在这种情况下,您需要使用select语句执行if()函数,如下所示:
Mysql> SELECT studentid, name, IF(pass, 'true', 'false') completed FROM student1;
它将给出以下输出:
MySQL还允许我们对布尔数据类型使用运算符。执行以下查询以获取表格Student的所有及格结果。
SELECT studentid, name, pass FROM student1 WHERE pass = TRUE;
该语句返回以下输出:
上面的语句仅在值等于1时返回通过结果。我们可以使用IS运算符来修复它。该运算符使用布尔值验证该值。以下语句对此进行了解释:
SELECT studentid, name, pass FROM student1 WHERE pass is TRUE;
执行此语句后,您将得到以下结果:
如果要查看挂起的结果,请使用IS FALSE或IS NOT TRUE运算符,如下所示:
SELECT studentid, name, pass FROM student1 WHERE pass IS FALSE;
OR,
SELECT studentid, name, pass FROM student1 WHERE pass IS NOT TRUE;
您将获得以下输出: