PostgreSQL学习篇9.1 布尔类型
2016-12-06 15:20
656 查看
boolean的状态要么是true要么是false,如果是unknown,用NULL表示。 boolean在SQL中可以用不带引号的TRUE和FALSE表示,也可以用更多的表示真假的带引号的字符表示,如'true','false','yes','no','1','0'等 测试: test=# create table t (id int, nan boolean, note text); CREATE TABLE test=# insert into t values(1,TRUE,'TRUE'); INSERT 0 1 test=# insert into t values(2,FALSE,'FALSE'); INSERT 0 1 test=# insert into t values(3,tRue,'tRue'); INSERT 0 1 test=# insert into t values(4,fAlse,'fAlse'); INSERT 0 1 test=# insert into t values(5,'tRuE','tRuE'); test=# delete from t where id=5; DELETE 1 test=# insert into t values(5,'tRuE','''tRuE'''); INSERT 0 1 test=# insert into t values(6,'fAlsE','''fAlsE'''); INSERT 0 1 test=# insert into t values(7,'t','''t'''); INSERT 0 1 test=# insert into t values(8,'f','''f'''); INSERT 0 1 test=# insert into t values(9,'yes','''yes'''); INSERT 0 1 test=# insert into t values(10,'0','''0'''); INSERT 0 1 test=# select * from t; id | nan | note ----+-----+--------- 1 | t | TRUE 2 | f | FALSE 3 | t | tRue 4 | f | fAlse 5 | t | 'tRuE' 6 | f | 'fAlsE' 7 | t | 't' 8 | f | 'f' 9 | t | 'yes' 10 | f | '0' (10 rows) test=# insert into t values(11,'',''''''); ---与Oracle不同,Oracle没有Boolean数据类型。。。 ERROR: invalid input syntax for type boolean: "" LINE 1: insert into t values(11,'',''''''); ^ test=# insert into t values(11,null,'null'); INSERT 0 1 test=# select * from t; id | nan | note ----+-----+--------- 1 | t | TRUE 2 | f | FALSE 3 | t | tRue 4 | f | fAlse 5 | t | 'tRuE' 6 | f | 'fAlsE' 7 | t | 't' 8 | f | 'f' 9 | t | 'yes' 10 | f | '0' 11 | | null (11 rows) test=# insert into t values(11,NULL,'NULL'); INSERT 0 1 test=# select * from t; id | nan | note ----+-----+--------- 1 | t | TRUE 2 | f | FALSE 3 | t | tRue 4 | f | fAlse 5 | t | 'tRuE' 6 | f | 'fAlsE' 7 | t | 't' 8 | f | 'f' 9 | t | 'yes' 10 | f | '0' 11 | | null ---注意null在表中存的为空值,并非null这个单词,因为,如果这个单词本身是4个字母的单词。 11 | | NULL (12 rows) test=# select * from t where nan='t'; id | nan | note ----+-----+-------- 1 | t | TRUE 3 | t | tRue 5 | t | 'tRuE' 7 | t | 't' 9 | t | 'yes' (5 rows) test=# select * from t where nan; --挺神奇的查询方式 id | nan | note ----+-----+-------- 1 | t | TRUE 3 | t | tRue 5 | t | 'tRuE' 7 | t | 't' 9 | t | 'yes' (5 rows) test=# select * from t where nan<>'t'; id | nan | note ----+-----+--------- 2 | f | FALSE 4 | f | fAlse 6 | f | 'fAlsE' 8 | f | 'f' 10 | f | '0' (5 rows) test=# select * from t where not nan; id | nan | note ----+-----+--------- 2 | f | FALSE 4 | f | fAlse 6 | f | 'fAlsE' 8 | f | 'f' 10 | f | '0' (5 rows) test=# select * from t where nan is null; id | nan | note ----+-----+------ 11 | | null 11 | | NULL (2 rows) test=# select * from t where nan is unknown; ---神奇 id | nan | note ----+-----+------ 11 | | null 11 | | NULL (2 rows) test=# select * from t where nan is not null; id | nan | note ----+-----+--------- 1 | t | TRUE 2 | f | FALSE 3 | t | tRue 4 | f | fAlse 5 | t | 'tRuE' 6 | f | 'fAlsE' 7 | t | 't' 8 | f | 'f' 9 | t | 'yes' 10 | f | '0' (10 rows) 布尔类型的操作符:逻辑操作符和比较操作符 逻辑操作符: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
相关文章推荐
- PostgreSQL9.5.9学习篇布尔类型操作符select查询
- PostgreSQL学习篇9.3 浮点数类型
- PostgreSQL学习篇13.1 统计信息的收集
- PostgreSQL学习篇16.2 同步流复制的standby数据库
- postgresql 9.1 查看表和索引的大小 4000
- PostgreSQL数据类型-数据类型简介和布尔类型
- [笔记]将系统的数据库从MySQL 5.5迁移到PostgreSQL 9.1
- postgresql(V-9.1) debian7.x(wheezy)安装过程+配置详解+数据库的基本使用方法
- postgreSQL9.1忘记postgres用户密码怎么办
- PostgreSQL学习篇9.4 序列类型
- Postgresql9.1 本地连接远程数据库
- PostgreSQL9.1 with PostGIS 2.1.4 for mapping coordinates on linux/ubuntu 已经打包成deb 可下载
- intall postgresql 9.1 on CentOS
- 安装Drupal7.12+Postgresql9.1(Ubuntu Server 12.04)
- POSTGRESQL 9.1 FATAL: password authentication failed for user "postgres"
- PostgreSQL学习篇9.5 货币类型
- Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装)
- PostgreSQL学习篇10.2 表
- CentOS 安装PostgreSQL 9.1
- 在Ubuntu12.04上安装postgresql9.1和postgis1.5