SQL - BOOLEAN (BIT) Operator: A Friendly Guide for Beginners
Hallo zusammen, zukünftige SQL-Zauberer! Heute machen wir uns auf eine aufregende Reise in die Welt der Booleschen Operatoren in SQL. Keine Sorge, wenn ihr noch nie eine Zeile Code geschrieben habt – ich werde euer treuer Guide sein, und wir werden dieses Thema schrittweise angehen. Also, holt euch ein Getränk nach eurem Geschmack und tauchen wir ein!
Was ist ein Boolean in SQL?
Bevor wir uns den Details zuwenden, beginnen wir mit den Grundlagen. Ein Boolean ist ein Datentyp, der nur zwei mögliche Werte haben kann: WAHR oder FALSCH. Es ist wie ein Lichtschalter – er ist entweder an oder aus, ohne einen Mittelzustand. In SQL verwenden wir Booleans, um Entscheidungen zu treffen und Daten basierend auf bestimmten Bedingungen zu filtern.
Nun sehen wir, wie verschiedene Datenbankysteme mit Booleans umgehen.
Boolean in MySQL
MySQL, eines der beliebtesten Datenbankysteme, hat keinen eingebauten BOOLEAN-Typ. Stattdessen verwendet es TINYINT(1), um Boolean-Werte darzustellen. Hier ist eine kurze Übersicht:
- WAHR wird durch 1 dargestellt
- FALSCH wird durch 0 dargestellt
Lassen wir eine einfache Tabelle erstellen, um dies zu demonstrieren:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
is_enrolled TINYINT(1)
);
INSERT INTO students (id, name, is_enrolled) VALUES
(1, 'Alice', 1),
(2, 'Bob', 0),
(3, 'Charlie', 1);
In diesem Beispiel haben wir eine students
-Tabelle mit einer is_enrolled
-Spalte erstellt, die als unser Boolean fungiert. Alice und Charlie sind eingeschrieben (WAHR), während Bob nicht eingeschrieben ist (FALSCH).
Boolean in MS SQL Server
Microsoft SQL Server hat andererseits einen dedizierten BIT-Datentyp für Boolean-Werte. So funktioniert es:
- WAHR wird durch 1 dargestellt
- FALSCH wird durch 0 dargestellt
Lassen wir die gleiche Tabelle in MS SQL Server erstellen:
CREATE TABLE students (
id INT PRIMARY KEY,
name VARCHAR(50),
is_enrolled BIT
);
INSERT INTO students (id, name, is_enrolled) VALUES
(1, 'Alice', 1),
(2, 'Bob', 0),
(3, 'Charlie', 1);
Die Struktur ist ähnlich, aber wir verwenden BIT anstelle von TINYINT(1) für die is_enrolled
-Spalte.
Filtering Boolean Data
Nun, da wir unsere Daten haben, lernen wir, wie man sie mit Boolean-Bedingungen filtert. Hier passiert das wahre Magische!
Finding Enrolled Students
Um alle eingeschriebenen Schüler zu finden, können wir diese Abfrage verwenden:
SELECT * FROM students WHERE is_enrolled = TRUE;
Oder in MySQL:
SELECT * FROM students WHERE is_enrolled = 1;
Dies wird Alice und Charlie, unsere eingeschriebenen Schüler, zurückgeben.
Finding Non-Enrolled Students
Um Schüler zu finden, die nicht eingeschrieben sind, können wir dies tun:
SELECT * FROM students WHERE is_enrolled = FALSE;
Oder in MySQL:
SELECT * FROM students WHERE is_enrolled = 0;
Dies wird Bob, unseren nichteingeschriebenen Schüler, zurückgeben.
Negating Boolean Conditions
Manchmal möchten wir die Umkehrung einer Bedingung finden. Wir können den NOT-Operator für dies verwenden:
SELECT * FROM students WHERE NOT is_enrolled;
Diese Abfrage wird alle Schüler zurückgeben, die nicht eingeschrieben sind, was derselben Abfrage entspricht, um nichteingeschriebene Schüler zu finden.
Working with NULL Values
In SQL repräsentiert NULL einen unbekannten oder fehlenden Wert. Es ist weder WAHR noch FALSCH. Beim Umgang mit Booleans müssen wir vorsichtig mit NULL-Werten sein. Lassen wir einen Schüler mit einem unbekannten Einschreibestatus hinzufügen:
INSERT INTO students (id, name, is_enrolled) VALUES (4, 'David', NULL);
Nun, wenn wir unsere vorherigen Abfragen ausführen, wird David weder in der Liste der eingeschriebenen noch der nichteingeschriebenen Schüler appearieren. Um Schüler mit einem unbekannten Einschreibestatus zu finden, können wir verwenden:
SELECT * FROM students WHERE is_enrolled IS NULL;
Diese Abfrage wird David, unseren Schüler mit einem unbekannten Einschreibestatus, zurückgeben.
Updating Boolean Values
Zuletzt schauen wir uns an, wie man Boolean-Werte aktualisiert. Angenommen, Bob entscheidet sich, sich einzuschreiben:
UPDATE students SET is_enrolled = TRUE WHERE name = 'Bob';
Oder in MySQL:
UPDATE students SET is_enrolled = 1 WHERE name = 'Bob';
Jetzt ist Bob eingeschrieben!
Conclusion
Und das war's, Leute! Wir haben die Grundlagen der Booleschen Operatoren in SQL behandelt. Denkt daran, Booleans sind wie einfache ja/nein-Fragen in eurer Datenbank. Sie sind unglaublich nützlich zum Filtern von Daten und zum Treffen von Entscheidungen in euren Abfragen.
Hier ist eine schnelle Referenztabelle der Methoden, die wir behandelt haben:
Operation | MySQL Syntax | MS SQL Server Syntax |
---|---|---|
Create Boolean Column | TINYINT(1) | BIT |
Set TRUE | 1 | 1 |
Set FALSE | 0 | 0 |
Filter TRUE | WHERE column = 1 | WHERE column = TRUE |
Filter FALSE | WHERE column = 0 | WHERE column = FALSE |
Negate | WHERE NOT column | WHERE NOT column |
Check for NULL | WHERE column IS NULL | WHERE column IS NULL |
Übt diese Konzepte, und bald werdet ihr Boolesche Operatoren wie ein Profi verwenden! Denkt daran, der Schlüssel zum Beherrschen von SQL ist Übung und Geduld. Hört nicht auf, verschiedene Abfragen auszuprobieren – das ist, wie wir alle lernen und wachsen als Programmierer.
Happy Coding, und möge der Boolean mit euch sein!
Credits: Image by storyset