Tu as déjà vu les types de données qui stockent des nombres et du texte. Maintenant, il est temps de parler du type logique — BOOLEAN. Franchement, c'est le type de données le plus "honnête", parce qu'il répond juste à deux questions : "Oui" ou "Non". Et parfois — "Peut-être" (lire : NULL).
Le type de données logique BOOLEAN stocke des valeurs qui peuvent être seulement :
TRUE(vrai);FALSE(faux);NULL(pas de valeur).
Imagine un interrupteur : il peut être allumé TRUE, éteint FALSE ou dans un état inconnu NULL, genre si l'ampoule a disparu.
On peut dire que le type logique, c'est la base de toute prise de décision et de la logique conditionnelle en SQL. Sans lui, impossible de faire un vrai filtre dans une requête ou d'indiquer le statut de quoi que ce soit.
Exemples d'utilisation
Le type logique est super utilisé dans les bases de données. Voilà quelques cas réels :
Flags et statuts.
Par exemple, le champ is_active peut montrer si un utilisateur est actif (TRUE) ou pas (FALSE).
SELECT username, is_active
FROM users
WHERE is_active = TRUE;
Contrôle d'exécution.
Par exemple, le champ is_complete peut stocker si une tâche est terminée ou pas.
SELECT task_name
FROM tasks
WHERE is_complete = FALSE;
Vérification de disponibilité.
Le champ is_available peut indiquer si un produit est dispo en stock.
Comment utiliser BOOLEAN dans PostgreSQL ?
Le type logique dans PostgreSQL s'appelle tout simplement BOOLEAN. Allez, on va créer une table et y ajouter quelques colonnes :
- Identifiant unique de la tâche
- Nom de la tâche
- Statut logique de complétion de la tâche
Ensuite, ajoutons quelques lignes dans la table :
| task_id | task_name - VARCHAR(255) | is_complete - BOOLEAN |
|---|---|---|
| 1 | Écrire un rapport | false |
| 2 | Aller au magasin | true |
| 3 | Lire un livre | null |
Extraction des données
Voyons maintenant comment extraire des données selon la valeur logique. Par exemple, pour récupérer seulement les tâches non terminées, on écrit :
SELECT task_name
FROM tasks
WHERE is_complete = FALSE;
Cette requête va retourner seulement les tâches où is_complete vaut FALSE.
Résultat :
| task_name |
|---|
| Écrire un rapport |
Particularités du BOOLEAN
Filtrage des valeurs
Pour bosser avec le type logique, tu peux utiliser la syntaxe suivante :
= TRUE— si tu veux préciser que la valeur est vraie.= FALSE— si tu veux sélectionner les valeurs fausses.IS NULL— si tu veux choper les lignes sans valeur.
Exemple :
SELECT task_name
FROM tasks
WHERE is_complete IS NULL;
Simplification des conditions
PostgreSQL est tellement "smart" que souvent t'as même pas besoin d'écrire = TRUE. Par exemple :
SELECT task_name
FROM tasks
WHERE is_complete;
Cette requête est équivalente à WHERE is_complete = TRUE.
Erreurs classiques avec BOOLEAN
Quand tu commences avec un nouveau type de données, tu vas forcément faire des erreurs. Voilà quelques soucis typiques qui peuvent arriver :
Comparaison avec NULL. Les débutants écrivent souvent is_active = NULL. Mais NULL ne se compare pas avec =. Pour vérifier si une valeur est NULL, utilise IS NULL ou IS NOT NULL.
Indication explicite de = TRUE. Parfois les devs rajoutent des trucs inutiles, genre WHERE is_active = TRUE. C'est pas une erreur, mais tu peux simplifier en écrivant juste WHERE is_active.
Mauvaise utilisation des chaînes. Le type logique est strictement typé. Tu peux pas écrire is_active = 'TRUE' ou is_active = 'FALSE'. Utilise directement les valeurs TRUE, FALSE ou NULL.
Pourquoi c'est utile ?
Tu te demandes peut-être : mais pourquoi se prendre la tête avec ce BOOLEAN ? Pourquoi pas juste utiliser des nombres, genre 1 pour vrai et 0 pour faux ?
La réponse est simple : BOOLEAN rend ton code et tes données plus explicites. Quand quelqu'un regarde une table avec un champ is_active, il comprend direct que ce champ stocke une info logique (oui/non). Ça rend le schéma de la base plus lisible et ton modèle de données plus clair pour les autres devs.
GO TO FULL VERSION