购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

5.2 布尔类型

布尔类型也是常用的数据类型,本节将详细讲解此类型的使用方法。

5.2.1 布尔类型介绍

boolean的值要么是true(真),要么是false(假),如果是unknown(未知)状态,用NULL表示。boolean在SQL中可以用不带引号的TRUE或FALSE表示,也可以用其他表示“真”和“假”的带引号字符表示,如'true'、'false'、'yes'、'no',等等,具体见下面的测试:


osdba=# CREATE TABLE t (id int, col1 boolean, col2 text);
CREATE TABLE
osdba=# INSERT INTO t VALUES (1,TRUE, 'TRUE');
INSERT 0 1
osdba=# INSERT INTO t VALUES (2,FALSE, 'FALSE');
INSERT 0 1
osdba=# 
osdba=# INSERT INTO t VALUES (3,tRue, 'tRue');
INSERT 0 1
osdba=# INSERT INTO t VALUES (4,fAlse, 'fAlse');
INSERT 0 1
osdba=# 
osdba=# INSERT INTO t VALUES (5,'tRuE', '''tRuE''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (6,'fALsE', '''fALsE''');
INSERT 0 1
osdba=# 
osdba=# INSERT INTO t VALUES (7,'true', '''true''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (8,'false', '''false''');
INSERT 0 1
osdba=# 
osdba=# INSERT INTO t VALUES (9,'t', '''t''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (10,'f', '''f''');
INSERT 0 1
osdba=# 
osdba=# 
osdba=# INSERT INTO t VALUES (11,'y', '''y''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (12,'n', '''n''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (13,'yes', '''yes''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (14,'no', '''no''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (15,'1', '''1''');
INSERT 0 1
osdba=# INSERT INTO t VALUES (16,'0', '''0''');
INSERT 0 1
osdba=# select * from t;
 id | col1 |  col2   
----+------+---------
  1 | t    | TRUE
  2 | f    | FALSE
  3 | t    | tRue
  4 | f    | fAlse
  5 | t    | 'tRuE'
  6 | f    | 'fALsE'
  7 | t    | 'true'
  8 | f    | 'false'
  9 | t    | 't'
 10 | f    | 'f'
 11 | t    | 'y'
 12 | f    | 'n'
 13 | t    | 'yes'
 14 | f    | 'no'
 15 | t    | '1'
 16 | f    | '0'
(16 rows)
osdba=# select * from t where col1;
 id | col1 |  col2  
----+------+--------
  1 | t    | TRUE
  3 | t    | tRue
  5 | t    | 'tRuE'
  7 | t    | 'true'
  9 | t    | 't'
 11 | t    | 'y'
 13 | t    | 'yes'
 15 | t    | '1'
(8 rows)

osdba=# select * from t where not col1;
 id | col1 |  col2   
----+------+---------
  2 | f    | FALSE
  4 | f    | fAlse
  6 | f    | 'fALsE'
  8 | f    | 'false'
 10 | f    | 'f'
 12 | f    | 'n'
 14 | f    | 'no'
 16 | f    | '0'
(8 rows)

5.2.2 布尔类型的操作符

布尔类型可以使用的操作符是逻辑操作符和比较操作符。

表5-2 布尔AND、OR运算真值表

表5-3 NOT运行真值表

常用的逻辑操作符有:AND、OR、NOT。

SQL使用三值的布尔逻辑:TRUE、FALSE和NULL,其中NULL代表“未知”。运算规则见表5-2和表5-3。

操作符AND和OR左右两边的操作是可以互相交换的,也就是说,“a AND b”结果与“b AND a”的结果是相同的。

布尔类型可以使用“IS”这个比较运算符,具体如下:

·expression IS TRUE。

·expression IS NOT TRUE。

·expression IS FALSE。

·expression IS NOT FALSE。

·expression IS UNKNOWN。

·expression IS NOT UNKNOWN。 F0o/vNi+QEiIjiKaBsedthcBL0kRe7SfxL/ukohnyRXZa/jvjOvb0X9LgzRJJSq4

点击中间区域
呼出菜单
上一章
目录
下一章
×