介绍:

布尔类型的操作符:逻辑操作符和比较操作符  

逻辑操作符:and,or,not  

需要注意的是:false and null结果为false  

比较运算符:is  

is true  

is false  

is not true  

is not false  

is unknown  

is not unknown  

is null  

is not null 


登陆测试数据库创建测试测试表插入数据来演示:

1.登陆库testdb1:

[postgres@localhost ~]$ psql -Utestwjw -h 127.0.0.1 -d testdb1 -p 36985

Password for user testwjw: 输入密码:558996

psql.bin (9.5.9)

Type "help" for help.

2.创建表:

boolean的状态要么是true要么是false,如果是unknown,用NULL表示。  

boolean在SQL中可以用不带引号的TRUE和FALSE表示,也可以用更多的表示真假的带引号的字符表示,如'true','false','yes','no','1','0'等   

testdb1=> create table t (id int, nan boolean, note text); 

CREATE TABLE

3.查看库中所有的表:

testdb1=> \dt

        List of relations

 Schema | Name  | Type  |  Owner  

--------+-------+-------+---------

 public | t     | table | testwjw

 public | tlb01 | table | testwjw


testdb1=>

4.t表中插入数据:

testdb1=> insert into t values(1,TRUE,'TRUE'); 

INSERT 0 1

testdb1=> insert into t values(2,FALSE,'FALSE');

INSERT 0 1

testdb1=> insert into t values(3,tRue,'tRue')

testdb1-> ;

INSERT 0 1

testdb1=> insert into t values(4,fAlse,'fAlse');

INSERT 0 1

给t表中插入空数值NULL:

testdb1=> insert into t values(11,null,'null');

INSERT 0 1

testdb1=> insert into t values(11,NULL,'NULL'); 

INSERT 0 1

5.查看表中的数值:

testdb1=> select * from t;

 id | nan | note  

----+-----+-------

  1 | t   | TRUE

  2 | f   | FALSE

  3 | t   | tRue

  4 | f   | fAlse

 11 |     | null

 11 |     | NULL

(6 rows)

select * from t where nan='t';

id | nan | note 

----+-----+------

  1 | t   | TRUE

  3 | t   | tRue

(2 rows)

testdb1=> select * from t where nan; 特殊的查询方式:

 id | nan | note 

----+-----+------

  1 | t   | TRUE

  3 | t   | tRue

(2 rows)

testdb1=> 

testdb1=> select * from t where nan<>'t'; 

 id | nan | note  

----+-----+-------

  2 | f   | FALSE

  4 | f   | fAlse

(2 rows)

testdb1=> 

testdb1=> select * from t where not nan; 

 id | nan | note  

----+-----+-------

  2 | f   | FALSE

  4 | f   | fAlse

(2 rows)

testdb1=> 

testdb1=> select * from t where  nan or not nan;

 id | nan | note  

----+-----+-------

  1 | t   | TRUE

  2 | f   | FALSE

  3 | t   | tRue

  4 | f   | fAlse

(4 rows)

testdb1=> select * from t where  nan and not nan;

 id | nan | note 

----+-----+------

(0 rows)


testdb1=> select * from t where nan is null;

 id | nan | note 

----+-----+------

 11 |     | null

 11 |     | NULL

(2 rows)


testdb1=> select * from t where nan is unknown; ####神奇

 id | nan | note 

----+-----+------

 11 |     | null

 11 |     | NULL

(2 rows)

testdb1=> 

testdb1=> select * from t where nan is not null;

 id | nan | note  

----+-----+-------

  1 | t   | TRUE

  2 | f   | FALSE

  3 | t   | tRue

  4 | f   | fAlse

(4 rows)

testdb1=>

插入数值:

testdb1=> insert into t values(7,'t','''t'''); 

INSERT 0 1

testdb1=>  insert into t values(8,'f','''f''');

INSERT 0 1

testdb1=> insert into t values(9,'yes','''yes'''); 

INSERT 0 1

testdb1=>  insert into t values(10,'0','''0''');  

INSERT 0 1

testdb1=> select * from t;

 id | nan | note  

----+-----+-------

  1 | t   | TRUE

  2 | f   | FALSE

  3 | t   | tRue

  4 | f   | fAlse

 11 |     | null

 11 |     | NULL

  7 | t   | 't'

  8 | f   | 'f'

  9 | t   | 'yes'

 10 | f   | '0'

(10 rows)


testdb1=> select * from t where nan is not true ;

 id | nan | note  

----+-----+-------

  2 | f   | FALSE

  4 | f   | fAlse

 11 |     | null

 11 |     | NULL

  8 | f   | 'f'

 10 | f   | '0'

(6 rows)


testdb1=> select * from t where nan is  true ;

 id | nan | note  

----+-----+-------

  1 | t   | TRUE

  3 | t   | tRue

  7 | t   | 't'

  9 | t   | 'yes'

(4 rows)


testdb1=> select * from t where nan is not false ;

 id | nan | note  

----+-----+-------

  1 | t   | TRUE

  3 | t   | tRue

 11 |     | null

 11 |     | NULL

  7 | t   | 't'

  9 | t   | 'yes'

(6 rows)