Documentation PostgreSQL 9.6.24 > Langage SQL > Types de données > Type booléen | |
Types date/heure | Types énumération |
PostgreSQL™ fournit le type boolean du standard SQL ; voir Tableau 8.19, « Type de données booléen ». 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, « Utilisation du type boolean. ».
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, « Constantes d'autres types », 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.