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

UNIQUE KEY

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Da es pro Tabelle nur einen Primärschlüssel geben kann, setzen Sie die in diesem Video gezeigten Unique-Keys ein, wenn Sie weitere Spalten benötigen, die keine Duplikate enthalten sollen.

Transkript

Um in einer Tabelle zusätzlich zu einem Primary Key weitere eindeutige Spalten zu erhalten, verwendet man Unique Keys. Wie das geht, zeigt Ihnen das nachfolgende Video. Ich habe hier ein CreateTable- Kommando vorbereitet, das schon einmal eine kleine Beispieltabelle erzeugt. Es besteht aus einer "ID" für Patienten, die hier gespeichert werden sollen, die als "Integer" definiert ist, einem Nachnamen und einem Vornamen, die als var-Character definiert sind, einem Geschlecht als "Character1", da soll das Kürzel "m" für männlich oder "w" für weiblich eingetragen werden, dann einer Sozialversicherungsnummer nach dem österreichischen Muster, bei uns in Österreich besteht die Sozialversicherungsnummer aus einer vierstelligen Nummer und dem Geburtsdatum, diese zwei Spalten habe ich hier ergänzt. Und auf Tabellenebene habe ich bereits die Definition des Primary Keys, des Primärschlüssels, für die Spalte ID definiert. Nun möchte ich noch zusätzlich den Unique Key ergänzen. Da dieser Unique Key in diesem Beispiel ein zusammengesetzter Unique Key ist, muss er auf Tabellenebene definiert werden. Beim SQL Server oder bei Oracle könnten wir einen Unique Key mit der erweiterten Syntax ja sonst auch auf Spaltenebene definieren, aber in dem Fall geht das nicht, weil es ein zusammengesetzter Unique Key ist. Ich setze also hinter die Definition des Primary Keys noch einmal ein Komma, um ein weiteres Constraint zu definieren. Ich könnte dieses Constraint auch vor dem Primärschlüssel definieren, die Reihenfolge unter den Constraints spielt hier keine Rolle. Als Präfix für den Namen des Unique Keys verwende ich: uk_ und ebenso den Namen der Tabelle. Da es bei anderen Constraints, außer dem Primary Key, ja mehrere geben kann pro Tabelle, ist dieses Kürzel nicht ausreichend. Zusätzlich wird hier typischerweise noch ein Spaltenname angegeben, z.B. die Sozialversicherungsnummer, die hier betroffen ist. Ich könnte Geburtsdatum auch noch ergänzen, aber das wird mir dann zu lang. Der Typ des Constraints wird mit "Unique" definiert. Achtung: Ohne den Zusatz "Key"! Gleich wie beim Primary Key werden jetzt die Spalten hier in runder Klammer angegeben. Das ist einerseits die Sozialversicherungsnummer ich muss aufpassen, dass ich hier keinen Tippfehler einbaue und in dem Fall das Geb-Datum. Bei zusammengesetzten Schlüsseln werden die Spalten durch ein Komma voneinander getrennt. Ich habe jetzt hier ein zusätzliches Constraint definiert, das mir einen Unique Key auf diese zwei Spalten legt. Ich führe nun diese Anweisung aus. Und wir sehen, dass die Tabelle erfolgreich erstellt worden ist. Um diesen Unique Key zu testen, habe ich hier weiter unten auch schon zwei "Insert"-Anweisungen vorbereitet. Diese Tabelle haben wir gerade erzeugt, D.h., sie ist noch leer. Als erstes füge ich die "Elfriede Gesund" ein. Sie ist weiblich und hat folgende Sozialversicherungsnummer: 1515 und ist am 30. Mai 1980 geboren. Danach kommt der "Gerd Kränklich". Vorläufig habe ich ihm dieselbe Sozialversicherungsnummer hier verpasst. Gemäß unseres Unique Keys darf der zweite Insert-Vorgang nicht erfolgreich sein. Ich führe die Anweisung aus. Und Sie sehen hier schon die Fehlermeldung: duplicate entry for key, und den Namen des Constraints, so wie wir ihn definiert haben. D.h., das Constraint hat verhindert, dass ein zweiter Eintrag mit derselben Sozialversicherungsnummer passiert. Nachdem es ein zusammengesetzter Schlüssel ist, würde es ausreichen, einen dieser beiden Werte hier zu ändern. D.h., ich kann den vorderen Teil z.B. gleich lassen, es würde genügen, hier z.B. am Datum etwas zu ändern. Ich mache jetzt einfach 1979 daraus und führe die Anweisung noch einmal aus. Nun hat es funktioniert, und wir können uns die Ergebnisse in der Tabelle betrachten. Sie sehen auch, beim AutoIncrement habe ich wieder einen Wert mit meinem ungültigen Versuch vorhin verbraucht. Angenehm ist, dass die Syntax hier beim Microsoft SQL Server und bei Oracle ident sind. D.h., ich kann mir einfach diesen Zusatz hier kopieren, trage ihn einerseits hier in diese Beispielanweisung ein und führe diese aus, und schon habe ich die gleiche Tabelle erstellt. Dasselbe funktioniert auch beim Microsoft SQL Server. Auch hier habe ich entsprechend die Anweisung vorbereitet. Und in derselben Syntax lässt sich auch hier diese Tabelle erzeugen. Wieder einmal habe ich vergessen, diese Tabelle vorweg zu löschen. Zweimal eine Tabelle mit dem gleichen Namen funktioniert natürlich nicht, also werde ich sie mit "DropTable" noch einmal löschen. Von meinem Test vorhin ist sie noch zurück geblieben. Und nun zeige ich Ihnen, dass diese Anweisung wirklich funktioniert und fehlerfrei diese Tabelle erzeugt. Sie haben in diesem Video gesehen, wie wir eine Tabelle mit einem Unique Key Constraint erzeugen. Ein Unique Key kann zusätzlich zu Primärschlüsseln eindeutige Spalten definieren. In unserem Beispiel war es ein zusammengesetzter Schlüssel, D.h., die Kombination der beiden muss eindeutig sein. In einer Spalte kann ein Wert mehrmals vorkommen, solange sich in der anderen Spalte der Wert unterscheidet. Da dieses Constraint sich auf mehrere Spalten bezieht, muss es auf jeden Fall auf Tabellenebene definiert werden. Und es verhindert, dass Werte doppelt erfasst werden.

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!