CodeGym /Kurse /SQL SELF /Logischer Datentyp: BOOLEAN

Logischer Datentyp: BOOLEAN

SQL SELF
Level 15 , Lektion 3
Verfügbar

Du hast schon Datentypen kennengelernt, die Zahlen und Text speichern. Jetzt ist es Zeit, über den logischen Datentyp – BOOLEAN – zu sprechen. Das ist wahrscheinlich der "ehrlichste" Datentyp, denn er beantwortet nur zwei Fragen: "Ja" oder "Nein". Und manchmal – "Vielleicht" (lies: NULL).

Der logische Datentyp BOOLEAN speichert Werte, die nur sein können:

  • TRUE (wahr);
  • FALSE (falsch);
  • NULL (kein Wert vorhanden).

Stell dir einen Lichtschalter vor: Er kann eingeschaltet sein TRUE, ausgeschaltet FALSE oder im Zustand "unbekannt" NULL, falls die Glühbirne plötzlich verschwindet.

Man kann sagen, dass der logische Datentyp die Grundlage für Entscheidungen und bedingte Logik in SQL ist. Ohne ihn wäre es unmöglich, einen vernünftigen Filter in einer Abfrage zu bauen oder einen Status für irgendwas zu markieren.

Anwendungsbeispiele

Der logische Datentyp wird in Datenbanken oft verwendet. Hier ein paar echte Use Cases:

Flags und Status.

Zum Beispiel kann das Feld is_active anzeigen, ob ein User aktiv ist (TRUE) oder nicht (FALSE).

SELECT username, is_active
FROM users 
WHERE is_active = TRUE;

Kontrolle der Ausführung.

Zum Beispiel kann das Feld is_complete speichern, ob eine Aufgabe erledigt ist.

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Verfügbarkeitsprüfung.

Das Feld is_available kann anzeigen, ob ein Produkt auf Lager ist.

Wie benutzt man BOOLEAN in PostgreSQL?

Der logische Datentyp in PostgreSQL heißt einfach BOOLEAN. Lass uns eine Tabelle erstellen und ein paar Spalten hinzufügen:

  • Eindeutige Aufgaben-ID
  • Aufgabenname
  • Logischer Status, ob die Aufgabe erledigt ist

Danach fügen wir ein paar Einträge in die Tabelle ein:

task_id task_name - VARCHAR(255) is_complete - BOOLEAN
1 Bericht schreiben false
2 Zum Laden gehen true
3 Buch lesen null

Daten abfragen

Jetzt schauen wir, wie man Daten basierend auf dem logischen Wert abruft. Zum Beispiel, um nur unerledigte Aufgaben zu bekommen, schreibst du:

SELECT task_name
FROM tasks 
WHERE is_complete = FALSE;

Diese Abfrage gibt nur die Aufgaben zurück, bei denen is_complete gleich FALSE ist.

Ergebnis:

task_name
Bericht schreiben

Besonderheiten bei BOOLEAN

Werte filtern

Um mit dem logischen Typ zu arbeiten, kannst du folgenden Syntax benutzen:

  • = TRUE — wenn du explizit angeben willst, dass der Wert wahr ist.
  • = FALSE — wenn du falsche Werte auswählen willst.
  • IS NULL — wenn du Einträge ohne Wert auswählen willst.

Beispiel:

SELECT task_name
FROM tasks 
WHERE is_complete IS NULL;

Bedingungen vereinfachen

PostgreSQL ist so "smart", dass du oft nicht mal = TRUE explizit schreiben musst. Zum Beispiel:

SELECT task_name
FROM tasks 
WHERE is_complete;

Diese Abfrage ist gleichbedeutend mit WHERE is_complete = TRUE.

Typische Fehler beim Umgang mit BOOLEAN

Wenn du mit einem neuen Datentyp anfängst, sind Fehler unvermeidlich. Hier ein paar typische Probleme, die auftreten können:

Vergleich mit NULL. Anfänger schreiben oft is_active = NULL. Aber NULL kann man nicht mit = vergleichen. Um zu prüfen, ob ein Wert NULL ist, benutze IS NULL oder IS NOT NULL.

Explizites = TRUE angeben. Manchmal bauen Entwickler unnötige Konstrukte wie WHERE is_active = TRUE ein. Das ist kein Fehler, aber du kannst es kürzer schreiben, einfach WHERE is_active.

Falsche Verwendung von Strings. Der logische Typ ist streng typisiert. Du kannst nicht is_active = 'TRUE' oder is_active = 'FALSE' schreiben. Benutze direkt die Werte TRUE, FALSE oder NULL.

Wozu das Ganze?

Du fragst dich vielleicht: Warum das Leben so kompliziert machen und diesen BOOLEAN einführen? Warum nicht einfach Zahlen nehmen, wo 1 für wahr und 0 für falsch steht?

Die Antwort ist einfach: BOOLEAN macht deinen Code und deine Daten viel aussagekräftiger. Wenn jemand eine Tabelle mit dem Feld is_active sieht, ist sofort klar, dass dieses Feld eine logische Entität (ja/nein) speichert. Das verbessert die Lesbarkeit des Datenbankschemas und macht dein Datenmodell für andere Entwickler verständlicher.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION