SQL - NOT NULL Constraint: A Beginner's Guide
Hallo da, zukünftige Datenbank-Zauberer! Heute tauchen wir in die aufregende Welt von SQL ein und erkunden ein wichtiges Konzept: die NOT NULL Bedingung. Machen Sie sich keine Sorgen, wenn Sie neu im Programmieren sind; ich werde Sie auf dieser Reise Schritt für Schritt führen, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Also, rollen wir die Ärmel hoch und fangen an!
Die SQL NOT NULL Bedingung
Was ist NOT NULL?
Stellen Sie sich vor, Sie füllen ein Formular für eine neue Bibliothekskarte aus. Einige Felder sind optional, wie Ihr zweiter Name, aber andere sind absolut notwendig, wie Ihr Vorname und Ihre Adresse. In der Welt der Datenbanken spielt die NOT NULL Bedingung eine ähnliche Rolle. Sie stellt sicher, dass eine Spalte immer einen Wert enthalten muss; sie kann nicht leer bleiben.
Warum ist NOT NULL wichtig?
Denken Sie an eine Schuldatenbank. Käme es Sinn, eine Schülerkartei ohne Namen oder Schüler-ID zu haben? Wahrscheinlich nicht! Die NOT NULL Bedingung hilft dabei, die Datenintegrität zu erhalten, indem sie verhindert, dass wichtige Informationen weggelassen werden.
Erstellen einer NOT NULL Bedingung in einer Tabelle
Lassen Sie uns mit der Erstellung einer einfachen Tabelle für unsere eingebildete Bibliothek beginnen. Wir nennen sie "Books".
CREATE TABLE Books (
BookID INT NOT NULL,
Title VARCHAR(100) NOT NULL,
Author VARCHAR(50) NOT NULL,
PublicationYear INT,
ISBN VARCHAR(13) NOT NULL
);
In diesem Beispiel:
-
BookID
,Title
,Author
undISBN
sind als NOT NULL markiert, weil wir diese Felder für unerlässlich halten. -
PublicationYear
hat keine NOT NULL Bedingung,also ist es optional.
Nun versuchen wir, einige Daten einzufügen:
-- Dies wird funktionieren
INSERT INTO Books (BookID, Title, Author, PublicationYear, ISBN)
VALUES (1, 'To Kill a Mockingbird', 'Harper Lee', 1960, '9780446310789');
-- Dies wird auch funktionieren (das optionale PublicationYear wird weggelassen)
INSERT INTO Books (BookID, Title, Author, ISBN)
VALUES (2, '1984', 'George Orwell', '9780451524935');
-- Dies wird fehlschlagen, weil wir den Autor weglassen, der NOT NULL ist
INSERT INTO Books (BookID, Title, PublicationYear, ISBN)
VALUES (3, 'The Great Gatsby', 1925, '9780743273565');
Der letzte INSERT-Befehl wird einen Fehler werfen, weil wir die NOT NULL Bedingung der Autorenspalte verletzen.
Entfernen einer NOT NULL Bedingung aus der Tabelle
Manchmal erkennen wir, dass ein Feld, das wir ursprünglich für entscheidend hielten, tatsächlich optional sein kann. Angenommen, wir entscheiden, dass die ISBN nicht immer notwendig ist (vielleicht für sehr alte Bücher). So können wir die NOT NULL Bedingung entfernen:
ALTER TABLE Books
MODIFY COLUMN ISBN VARCHAR(13);
Jetzt kann die ISBN NULL sein. Aber denken Sie daran, Constraints in bestehenden Tabellen zu ändern, sollte vorsichtig erfolgen, insbesondere in Produktionsumgebungen!
Hinzufügen einer NOT NULL Bedingung zu einer bestehenden Tabelle
Was ist, wenn wir später erkennen, dass wir sicherstellen müssen, dass jedes Buch ein Erscheinungsjahr hat? Wir können die NOT NULL Bedingung zu einer bestehenden Spalte hinzufügen:
-- Zuerst müssen wir sicherstellen, dass es keine NULL-Werte in der Spalte gibt
UPDATE Books
SET PublicationYear = 0
WHERE PublicationYear IS NULL;
-- Jetzt können wir die NOT NULL Bedingung hinzufügen
ALTER TABLE Books
MODIFY COLUMN PublicationYear INT NOT NULL;
Das ist, was passiert:
- Wir aktualisieren alle NULL-Werte auf 0 (oder eine andere geeignete Standardwert).
- Wir ändern die Tabelle, um die NOT NULL Bedingung hinzuzufügen.
Es ist entscheidend, bestehende NULL-Werte zu behandeln, bevor die Bedingung hinzugefügt wird; andernfalls wird der ALTER TABLE-Befehl fehlschlagen.
Ein Wort der Warnung
Das Hinzufügen von NOT NULL Constraints zu bestehenden Tabellen mit Daten kann knifflig sein. Sichern Sie immer Ihre Daten, bevor Sie solche Änderungen vornehmen!
Best Practices für die Verwendung von NOT NULL
Praxis | Beschreibung |
---|---|
Sparsam verwenden | Verwenden Sie NOT NULL nur für Spalten, die wirklich einen Wert haben müssen |
Überlegungen zu Standards | Für Spalten, die immer einen Wert haben sollten, aber möglicherweise nicht bereitgestellt werden, erwägen Sie die Verwendung von DEFAULT zusammen mit NOT NULL |
Planen Sie im Voraus | Versuchen Sie, NOT NULL Spalten bereits in der Entwurfsphase zu identifizieren, um spätere Tabellenänderungen zu vermeiden |
Dokumentieren | Dokumentieren Sie klar, warum bestimmte Spalten NOT NULL sind, in Ihrer Schemadesign |
Schlussfolgerung
Und das war's, meine neugierigen Schüler! Wir haben die Welt der NOT NULL Constraints durchquert, von der Erstellung von Tabellen mit NOT NULL Spalten bis hin zum Hinzufügen und Entfernen dieser Constraints in bestehenden Tabellen. Denken Sie daran, dass NOT NULL wie eine strenge Bibliothekarin ist, die sicherstellt, dass alle wichtigen Details in unseren Datenbank-"Büchern" korrekt ausgefüllt sind.
Während Sie Ihre SQL-Abenteuer fortsetzen, werden Sie feststellen, dass NOT NULL nur eines von vielen Werkzeugen in Ihrem Datenbank-Werkzeugkasten ist. Es mag klein erscheinen, aber glauben Sie mir, es ist mächtig in der Aufrechterhaltung der Datenintegrität. Ich habe unzählige Datenbankkatastrophen verhindert, die durch gut platzierte NOT NULL Constraints vermieden wurden!
Weiters üben, bleiben Sie neugierig, und bevor Sie es wissen, werden Sie SQL-Abfragen im Schlaf schreiben (obwohl ich nicht wirklich empfehlen würde, dass Sie das tun – Tastaturen sind schlechte Kissen!).
Frohes Coden, zukünftige Datenmeister!
Credits: Image by storyset