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

Werte einfügen ohne Zielspaltenangabe

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Einfügen neuer Datensätze in eine Tabelle, ohne dabei die Zielspalten anzugeben, eignet sich in erster Linie für Tabellen mit geringer Spaltenanzahl. Für diese "einfachen" Tabellen ist diese Variante, die Ihnen dieses Video zeigt, wohl die effektivste.

Transkript

In diesem Video werden Sie sehen, wie Sie "INSERT" dazu verwenden, ohne Zielspaltenangabe unter der Verwendung von der VALUES-Klausel, neue Werte in eine Tabelle einzutragen. Wir verwenden für unser erstes Beispiel eine einfache Tabelle, zum Beispiel die Tabelle "Abteilungen". Die Tabelle "Abteilungen" hat nur die Abteilungsnummer und die Spalte "Text" für die Abteilungsbezeichnung. Werfen wir kurz einen Blick in diese Tabelle. Hier haben wir immer ein Kürzel, das besteht aus zwei Buchstaben, das ist auch als "Character 2" definiert, diese Spalte, und hier den Text. Nun werde ich einen ersten neuen Datensatz einfügen. Die Anweisung dazu beginnt mit "INSERT INTO", gefolgt vom Namen der Tabelle, in dem Fall "Wave.Abteilungen". In dieser Variante werde ich die Zielspalten nicht angeben, das heisst ich muss jetzt in der VALUES-Klausel, die darauf folgt, exakt für jede Spalte in der richtigen Reihenfolge, die Meta-Struktur der Tabelle, einen Wert bereitstellen. Widrigenfalls bekomme ich einen Fehler, das heisst ich muss zuerst ein Kürzel hier eingeben für die Abteilung, zum Beispiel "FE" nehme ich hier, als Langtext "Forschung und Entwicklung". Die Anweisung schließe ich wieder wie gewohnt mit einem Semikolon ab. Nun führe ich diese Anweisung gleich einmal aus. Nachdem der Editor hier nicht selber auf den Ordner "Output" umgesprungen ist, schalte ich hier um, und hier sehen wir jetzt die Rückmeldung "1 rows affected", das heisst daran erkennen wir, dass wirklich eine neue Zeile eingefügt worden ist. Wir können uns diese Zeile in der Tabelle gleich ansehen, indem ich diese Anweisung, die SELECT-Anweisung, noch einmal ausführe. Wir sehen jetzt hier "FE (Forschung und Entwicklung)" taucht auf. Wenn wir Datensätze manipulieren, kann es natürlich nun auch Fehlermeldungen geben, mit denen wir, wenn wir nur mit "SELECT" gearbeitet haben, nicht konfrontiert gewesen sind. Bisher waren Fehlermeldungen immer dadurch zu erklären, dass wir in der Syntax etwas falsch gemacht haben. Nun kann es auch passieren, dass wir Dinge tun, die inhaltlich nicht erlaubt sind, zum Beispiel ich führe dieselbe Anweisung, die INSERT-Anweisung hier, noch einmal aus, und bekomme jetzt einen Fehler "duplicate entry FE for key primary" Das heisst, das ist natürlich jetzt eine Verletzung der Primärschlüssel-Einschränkung, weil ich jetzt versucht habe, in die Primärschlüssel-Spalte ein zweites Mal dasselbe Kürzel einzutragen. Und dies lässt das System natürlich nicht zu. Wie erwähnt, muss ich mich beim Bereitstellen der einzufügenden Werte exakt an die Struktur der Tabelle halten, wenn ich nicht die Zielspalten separat angebe. Wenn ich also hier einen Fehler mache, indem ich zum Beispiel hier "TE" eingebe als Test, und füge hier noch einen Wert dazu, dann stimmt jetzt natürlich die Anzahl der bereitgestellten Werte nicht mehr mit der Struktur der Tabelle überein. Wenn ich diese Anweisung nun ausführe, dann bekomme ich eine Fehlermeldung "column count doesn't match value count at row 1". Auf die gleiche Art und Weise verhalten sich natürlich auch die anderen Datenbankmanagement-Systeme. Ich wechsle einmal in den SQL-Developer von Oracle, und füge hier die Anweisungen ein. Auch hier haben wir die gleichen Daten zur Verfügung vorerst, und ich kann mit dieser INSERT-Anweisung, die ich nun als Zweites ausführe, eine neue Zeile einfügen. Zur Kontrolle holen wir uns die Inhalte, und ich sehe jetzt auch, dass hier "FE (Forschung und Entwicklung)" aufscheint. Auch hier bekomme ich eine Fehlermeldung, wenn ich versuche, den gleichen Wert noch einmal einzufügen, "unique constraint violated". Und wenn die Anzahl der Werte nicht übereinstimmt, dabei ist es egal, ob es zu wenige oder zu viele sind, auch dann bekommen wir eine Fehlermeldung, hier zum Beispiel "too many values". Und auch der Microsoft SQL Server schert hier aus der Reihe nicht aus. Auch hier versuchen wir diese Anweisungen. Wir sehen das Ergebnis. Ich füge diese eine Zeile hinzu, ich kontrolliere, ob diese Zeile nun auch eingetragen ist, es ist der Fall, und wenn ich nochmals denselben Wert versuche einzufügen, kriegen wir auch eine Fehlermeldung: "Verletzung der PRIMARY KEY-Einschränkung, ein doppelter Schlüssel" und so weiter. Die Anweisung wurde beendet. Last, but not least, werde ich jetzt hier diese Anweisung auch noch ausführen, die eine falsche Anzahl an Werten bereitstellt. Und auch hier die Fehlermeldung "Der Spaltenname oder die Anzahl der bereitgestellten Werte entspricht nicht der Tabellendefinition." Also in allen drei Fällen hat uns das System darauf hingewiesen. Prinzipiell wird mit einer Anweisung dieser Art immer genau ein Datensatz eingefügt. Die aktuellen Versionen von Microsoft SQL Server und auch von MySQL sind aber in der Lage, auch mehrere Werte einzufügen. Um mehrere Werte mit einer einzigen Anweisung einzufügen, müssen Sie einfach am Ende des ersten Eintrags ein Komma verwenden, Sie können dann weiterschreiben oder in eine neue Zeile gehen, das ist egal, wie es Ihnen von der Lesbarkeit besser gefällt und nun anschließend noch einen weiteren Wert hier eingeben, zum Beispiel ergänzen wir hier noch das "Facility Management". Ich könnte jetzt, mit Komma getrennt, noch eine beliebige weitere Anzahl an Werten einfügen, tue ich jetzt aber nicht, sondern ich führe diese Anweisung jetzt hier gleich aus. Und wir sehen, dass jetzt mit einer Anweisung zwei Zeilen eingefügt worden sind, die wir auch in der Tabelle natürlich gleich finden. Dasselbe können wir auch in MySQL realisieren. Hier wird diese Syntax-Variante ebenso unterstützt. Ich passe hier nur noch die Einrückungen an, damit die Anweisung auch gut lesbar ist im Script, und führe diese Anweisung aus. Wir sehen jetzt hier in der Rückmeldung "2 rows affected", das heisst wir haben hier zwei Werte eingefügt und auch hier die Kontrolle, ob diese Werte in der Tabelle aufscheinen. Wir haben hier einerseits die "Kantine" und andererseits hier das "Facility Management". Sie haben in diesem Video gesehen, wie Sie mit einer einfachen INSERT-Anweisung neue Datensätze in eine Tabelle einfügen. In dieser Variante haben wir die Zielspalten nicht angegeben, wir haben uns in der VALUES-Klausel an die Struktur der Tabelle gehalten. Diese Variante werden Sie in der Praxis vor allem dann zum Einsatz bringen, wenn die Struktur der Tabelle nicht besonders umfangreich ist.

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!