Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Grundkurs 1: Die Sprache erlernen

Constraint nachträglich ergänzen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sie müssen Constraints nicht schon beim Erstellen einer Tabelle mit anlegen. Wenn Sie dieses Video angesehen haben, wissen Sie, wie Sie die ALTER TABLE-Anweisung nutzen können, um nachträglich Constraints zu ergänzen.

Transkript

In diesem Video sehen Sie, wie Sie bei einer Tabelle im Nachhinein ein Constraint ergänzen können. Ich habe dazu dieses CREATE TABLE Commander vorbereitet, bei dem eine Tabelle gänzlich ohne ein Constraint erzeugt wird. Es handelt sich um die Tabelle "Patienten", deren Kürzel, Nachname, Vorname, Geschlecht, Sozialversicherungsnummer und Geburtsdatum enthält. Ich erzeuge einmal diese Tabelle und möchte jetzt im Nachhinein hier Constraints ergänzen. Ich möchte hier einerseits ein CHECK Constraint ergänzen das prüft, dass in die Spalte Geschlecht nur ein "m" oder "w" eingegeben werden kann, und natürlich auch einen Primärschlüssel. Ich beginne mit dem CHECK Constraint. Ein Constraint wird mit der Anweisung "ALTER TABLE" nachträglich ergänzt. Den Namen der Tabelle kopiere ich mir von hier oben und mit dem Zusatz @. Von der Syntax her ist alles, was anschließend an das @ kommt dasselbe als würde ich das Constraint direkt beim Erstellen der Tabelle auf Tabellenebene definieren, D.h. eine für uns bekannte Syntax. Also "@constraint", dann der Name für das Constraint, in dem Fall ein "CK" für ein CHECK Constraint, der Name der Tabelle "Patienten" gefolgt vom Kürzel der Spalte, in dem Fall "Geschlecht", "CHECK", der Typ des Constraints und jetzt die Bedingung: Nämlich dass die Spalte "Geschlecht", über IN realisiere ich, entweder ein "m " für "männlich" oder ein "w" für "weiblich" enthalten muss. Ich führe diese Anweisung aus, sie ist erfolgreich ausgeführt worden und nun ist dieses Constraint aktiv. Prüfen wir, ob dieses Constraint wirklich aktiv ist, indem ich folgendes "INSERT" ausführe: Ich füge eine neue Patientin ein und ich habe hier "f" für "Frau" anstelle für dem vorgesehenen "w" hier verwendet, also muss das CHECK Constraint anschlagen. Ich starte die Anweisung und schon, wie erwartet, die Fehlermeldung "Verstoß gegen die Checkeinschränkung 'Patienten', 'Geschlecht'". Ich tausche das "f" gegen ein "w" und starte die Anweisung erneut und dieses Mal hat es funktioniert. Wir haben also dieses Constraint im Nachhinein ergänzt. Nun möchte ich noch einen Primärschlüssel ergänzen, denn für diese Tabelle ist noch keiner definiert. Den ersten Teil der Anweisung kann ich mir hier schon kopieren. "@PK", die Syntax ist wieder dieselbe als würde ich dieses Constraint auf Tabellenebene beim Erstellen der Tabelle schon definieren. "PK Patienten", PRIMARY KEY, und die Spalte heißt "ID". Allerdings werden wir jetzt eine Fehlermeldung bekommen, wenn wir diesen Primärschlüssel ergänzen wollen. Warum? Die Spalte "ID" ist nicht als "NOT NULL" definiert. Das ist aber eine Voraussetzung, wenn nachträglich ein Primärschlüssel ergänzt wird. Das "NOT NULL" bei der Primärschlüsselspalte kann nur dann entfallen, wenn der Primärschlüssel schon direkt beim Erstellen der Tabelle miterzeugt wird. Ich führe also diese Anweisung aus und die erwartete Fehlermeldung kommt: "Diese Einschränkung kann nicht erstellt werden, weil die Spalte 'NULL' zulässt" und das ist nicht möglich. D.h., ich muss zuerst diese Spalte nachträglich als "NOT NULL" definieren. Das mache ich mit einer "ALTER TABLE"-Anweisung. Das kann ich mir eigentlich hier kopieren, dann brauche ich es nicht eintippen. "ALTER COLUMN", in dem Fall die Spalte "ID" auf "INT". Ich behalte ja den Datentyp, aber ergänze "NOT NULL" hier. Ich führe diese Anweisung aus und nun ist diese Spalte als "NOT NULL" definiert. Nun kann ich hier nachträglich diese Spalte auch zum Primärschlüssel machen, indem ich diese Anweisung ausführe und nun ist dieser Primärschlüssel ergänzt. Zur Kontrolle versuche ich jetzt noch einmal, in die Primärschlüsselspalte dieselbe ID "1" einzutragen und, wie erwartet, bekomme ich die Fehlermeldung, dass ich gegen die PRIMARY KEY-Einschränkung verstoßen habe. Sie haben also in diesem Video gesehen, wie Sie nachträglich einer Tabelle Constraints hinzufügen können. Dazu verwenden Sie die Anweisung "ALTER TABLE @" und die Syntax für die Erzeugung eines Constraints auf Tabellenebene. Diese Logik findet sich auch bei Oracle und MySQL in dieser Form.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!