PostgreSQL proporciona el tipo estándar de
SQL boolean;
consulta la Table 8.19.
El tipo boolean puede tener varios estados:
“true” (verdadero), “false” (falso), y un tercer estado,
“unknown” (desconocido), que está representado por el
valor nulo de SQL.
Table 8.19. Tipo de datos booleano
| Nombre | Tamaño de almacenamiento | Descripción |
|---|---|---|
boolean | 1 byte | estado de verdadero (true) o falso (false) |
Las constantes booleanas pueden representarse en consultas SQL mediante las palabras
clave de SQL TRUE, FALSE
y NULL.
La función de entrada del tipo de datos para el tipo boolean acepta estas
representaciones de cadena para el estado “true”:
true |
yes |
on |
1 |
y estas representaciones para el estado “false”:
false |
no |
off |
0 |
También se aceptan prefijos únicos de estas cadenas, por
ejemplo t o n.
Se ignora el espacio en blanco inicial o final, y no importan las mayúsculas o minúsculas.
La función de salida del tipo de datos para el tipo boolean siempre emite
bien t o bien f, como se muestra en la
Example 8.2.
Example 8.2. Uso del tipo boolean
CREATE TABLE test1 (a boolean, b text); INSERT INTO test1 VALUES (TRUE, 'sic est'); INSERT INTO test1 VALUES (FALSE, 'non est'); SELECT * FROM test1; a | b ---+--------- t | sic est f | non est SELECT * FROM test1 WHERE a; a | b ---+--------- t | sic est
Las palabras clave TRUE y FALSE son
el método preferido (compatible con SQL) para escribir
constantes booleanas en consultas SQL. Pero también puedes usar las representaciones
en cadena siguiendo la sintaxis genérica de constantes literales de cadena
descrita en la Section 4.1.2.7, por
ejemplo 'yes'::boolean.
Ten en cuenta que el analizador comprende automáticamente
que TRUE y FALSE son de
tipo boolean, pero no ocurre lo mismo
con NULL porque este puede tener cualquier tipo.
Por lo tanto, en algunos contextos es posible que tengas que realizar una conversión explícita de NULL
a boolean, por
ejemplo NULL::boolean. Por el contrario, la conversión se puede
omitir de un valor booleano de literal de cadena en contextos donde el analizador
puede deducir que el literal debe ser de tipo boolean.