PostgreSQL fournit le type boolean
du standard SQL ; voir Tableau 8.19.
Ce type dispose de plusieurs états :« true » (vrai),
« false » (faux) et un troisième état, « unknown »
(inconnu), qui est représenté par la valeur SQL NULL.
Tableau 8.19. Type de données booléen
Nom | Taille du stockage | Description |
---|---|---|
boolean | 1 octet | état vrai ou faux |
Les constantes booléennes peuvent être représentées dans les requêtes SQL
avec les mots clés SQL TRUE
, FALSE
et NULL
.
La fonction en entrée pour le type boolean
accepte ces
représentations, sous forme de chaîne de caractères, pour l'état
« true » :
true |
yes |
on |
1 |
et ces représentations pour l'état « false » :
false |
no |
off |
0 |
Les préfixes uniques de ces chaînes sont aussi acceptés, par exemple
t
ou n
. Les espaces avant ou après,
ainsi que la casse, sont ignorés.
La fonction en sortie pour le boolean
renvoie toujours soit
t
soit f
, comme indiqué dans Exemple 8.2.
Exemple 8.2. Utilisation du type 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
Les mots clés TRUE
et FALSE
sont la
méthode préférée (compatible SQL) pour l'écriture des
constantes booléennes dans les requêtes SQL. Cependant, vous pouvez aussi
utiliser les représentations sous forme de chaîne de caractères en suivant
la syntaxe générique décrite dans Section 4.1.2.7, par exemple
'yes'::boolean
.
Notez que l'analyseur comprend automatiquement que TRUE
et FALSE
sont du type boolean
, mais ce
n'est pas le cas pour NULL
car il peut avoir tout type.
Donc, dans certains contextes, vous devrez convertir explicitement
NULL
vers le type boolean
, par exemple
NULL::boolean
. À l'inverse, la conversion peut être
omise d'une valeur booléenne représentée sous la forme d'une chaîne de
caractères dans les contextes où l'analyseur peut déduire que la constante
doit être de type boolean
.