PostgreSQL9.5.9学习篇布尔类型操作符select查询

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

介绍:

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

逻辑操作符: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)



 本文转自 wjw555 51CTO博客,原文链接:http://blog.51cto.com/wujianwei/1970348

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
5天前
|
SQL 关系型数据库 数据库
PostgreSQL性能飙升的秘密:这几个调优技巧让你的数据库查询速度翻倍!
【10月更文挑战第25天】本文介绍了几种有效提升 PostgreSQL 数据库查询效率的方法,包括索引优化、查询优化、配置优化和硬件优化。通过合理设计索引、编写高效 SQL 查询、调整配置参数和选择合适硬件,可以显著提高数据库性能。
40 1
|
6月前
|
SQL 关系型数据库 数据库
实时计算 Flink版操作报错之使用SQL 将 PostgreSQL 的 date 类型字段转换为 TIMESTAMP 类型时遇到报错,该如何处理
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3月前
|
SQL 存储 关系型数据库
新手如何入门学习PostgreSQL?
新手如何入门学习PostgreSQL?
|
3月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
40 3
|
3月前
|
缓存 关系型数据库 数据库
PostgreSQL 查询性能
【8月更文挑战第5天】PostgreSQL 查询性能
72 8
|
3月前
|
关系型数据库 测试技术 数据库
在 PostgreSQL 中使用 BETWEEN 操作符
【8月更文挑战第12天】
186 0
|
4月前
|
Java 关系型数据库 API
使用Spring Boot和PostgreSQL构建高级查询
使用Spring Boot和PostgreSQL构建高级查询
|
5月前
|
SQL 关系型数据库 数据库
Python执行PostgreSQL数据库查询语句,并打印查询结果
本文介绍了如何使用Python连接和查询PostgreSQL数据库。首先,确保安装了`psycopg2`库,然后创建数据库连接函数。接着,展示如何编写SQL查询并执行,例如从`employees`表中选取所有记录。此外,还讨论了处理查询结果、格式化输出和异常处理的方法。最后,提到了参数化查询和事务处理以增强安全性及确保数据一致性。
Python执行PostgreSQL数据库查询语句,并打印查询结果
|
4月前
|
SQL 存储 关系型数据库
关系型数据库PostgreSQL学习
【7月更文挑战第4天】
454 2
|
5月前
|
SQL 关系型数据库 数据库
Python查询PostgreSQL数据库
木头左教你如何用Python连接PostgreSQL数据库:安装`psycopg2`库,建立连接,执行SQL脚本如创建表、插入数据,同时掌握错误处理和事务管理。别忘了性能优化,利用索引、批量操作提升效率。下期更精彩!💡 csvfile
Python查询PostgreSQL数据库