8.6. Tipo booleano

O PostgreSQL disponibiliza o tipo SQL padrão boolean. O tipo boolean pode possuir apenas um dos dois estados: "verdade" ou "falso". O terceiro estado, "desconhecido", é representado pelo valor nulo do SQL. [1] [2]

Os valores literais válidos para o estado "verdade" são:

TRUE
't'
'true'
'y'
'yes'
'1'
Para o estado "falso" podem ser utilizados os seguintes valores:
FALSE
'f'
'false'
'n'
'no'
'0'
A utilização das palavras chave TRUE e FALSE é preferida (e em conformidade com o padrão SQL).

Exemplo 8-7. Utilização do tipo boolean

CREATE TABLE teste1 (a boolean, b text);
INSERT INTO teste1 VALUES (TRUE, 'sic est');
INSERT INTO teste1 VALUES (FALSE, 'non est');
SELECT * FROM teste1;

 a |    b
---+---------
 t | sic est
 f | non est

SELECT * FROM teste1 WHERE a;

 a |    b
---+---------
 t | sic est

O Exemplo 8-7 mostra que os valores do tipo boolean são exibidos utilizando as letras t e f.

Dica: Os valores do tipo boolean não podem ser convertidos diretamente em outros tipos (por exemplo, CAST (valor_booleano AS integer) não funciona). A conversão pode ser feita utilizando a expressão CASE: CASE WHEN valor_booleano THEN 'valor se for verdade' ELSE 'valor se for falso' END. Consulte a Seção 9.13.

O tipo boolean utiliza 1 byte para seu armazenamento.

Exemplo 8-8. Classificação do tipo boolean

Segundo o padrão SQL o valor verdade é maior que o valor falso. O PostgreSQL considera o valor nulo maior que estes dois, conforme mostrado neste exemplo. [3]

\pset null -
BEGIN;
CREATE TEMPORARY TABLE t (b BOOLEAN) ON COMMIT DROP;
INSERT INTO t VALUES(true);
INSERT INTO t VALUES(false);
INSERT INTO t VALUES(null);
SELECT * FROM t ORDER BY b;
COMMIT;

 b
---
 f
 t
 -
(3 linhas)

Notas

[1]

Os sistemas gerenciadores de banco de dados SQL Server 2000, Oracle 10g e DB2 8.1 não implementam o tipo de dado boolean. (N. do T.)

[2]

O tipo de dado booleano contém os valores verdade distintos Verdade e Falso. A menos que seja proibido pela restrição NOT NULL, o tipo de dado booleano também suporta o valor verdade Desconhecido. Esta especificação não faz distinção entre o valor nulo do tipo de dado booleano e o valor verdade "Desconhecido" resultado de um predicado, condição de procura ou expressão de valor booleana do SQL; podem ser trocados um pelo outro significando exatamente a mesma coisa. (ISO-ANSI Working Draft) Foundation (SQL/Foundation), August 2003, ISO/IEC JTC 1/SC 32, 25-jul-2003, ISO/IEC 9075-2:2003 (E) (N. do T.)

[3]

Exemplo escrito pelo tradutor, não fazendo parte do manual original.

SourceForge.net Logo CSS válido!