Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

SQL Grundkurs 1: Die Sprache erlernen

Datensätze anfügen

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Einfügen über ein SELECT. Finden sich einzufügende Werte schon in der Datenbank, so lesen Sie diese mit einem SELECT aus und fügen Sie sie direkt in die Zieltabelle ein. Sehen Sie in diesem Video dazu ein Beispiel, das eine vorhandene Bestellung dupliziert.

Transkript

Das Thema dieses Videos ist es, wie Sie mittels "SELECT" mehrere Datensätze mit einem "INSERT" in eine neue Tabelle einfügen können. Ich möchte Ihnen das am folgenden Beispiel demonstrieren. Und zwar möchten wir eine Bestellung wiederholen. Seinerzeit ist die Bestellung mit der Nummer 1004 aufgegeben worden. Und wenn wir uns die Bestellpositionen ansehen, dann sehen wir, dass hier 8 Positionen erfasst worden sind. Nun wollen wir exakt die gleiche Bestellung noch einmal aufgeben. Der Eintrag in der Tabelle "Bestellungen" mit dem Kopf ist bereits erfolgt. Die Bestellnummer 1008 steht für diese Bestellung zur Verfügung. Allerdings gibt es noch keine Positionen. Und diese Bestellpositionen sollen nicht manuell erfasst werden, sondern von der ursprünglichen Bestellung kopiert werden. Damit starten wir mit der Anweisung "INSERT INTO Bestellpositionen". Als Zielspalten geben wir die Bestellnummer, Position etc. an. Ein Tipp hier: Im SQL Server Management Studio können Sie ja einzelne Spalten hier herüber ziehen, dann brauchen Sie sie nicht einzutippen. Wenn Sie unter der Tabelle den Ordner "Spalten" hier herüber ziehen, haben Sie alle Spalten bereits mit Komma getrennt und diese müssen nicht mehr hier separat manuelle eingegeben oder einzeln hier herüber gezogen werden. Das spart viel Arbeit. Anstelle der sonst üblichen VALUES-Klausel kommt jetzt eine SELECT-Klausel. D.h. wir lesen jetzt etwas aus der Datenbank aus und fügen das Ausgelesene direkt an diese Tabelle an. Was wir holen ist natürlich aus derselben Tabelle alle Spalten aber nur jene, die von der Bestellnummer 1004 herrühren. "FROM wave.Bestellpositionen", Bestellnummer kopiere ich mir hier gleich, die WHERE-Klausel. "WHERE Bestellnummer = 1004". Zum Test können wir diese "SELECT" markieren und alleine einmal vorweg ausführen. Damit haben wir genau diese Positionen. Die können wir so natürlich nicht direkt einfügen, wir müssen ja die Bestellnummer 1004 durch die aktuelle Bestellnummer 1008 ersetzen. D.h. in dem Fall überschreiben wir die Spalte einfach mit dem konstanten Wert 1008. Wenn wir also diese Anweisung so ausführen, würden wir exakt diese Positionen anfügen. Natürlich können wir jetzt hier in diesem SELECT-Statement noch Dinge realisieren. Wir könnten z.B. mit der Artikeltabelle joinen, um den aktuellen Einkaufspreis hineinzukopieren, falls der sich in der Zwischenzeit geändert hat. Oder was ganz einfaches, wir verdoppeln die Bestellmenge, weil wir sagen wir wollen diesmal das doppelte von dem bestellen, was wir das letzte Mal bestellt haben. Nun führe ich diese Anweisung aus und bekomme die Meldung, dass ich jetzt wirklich 8 Datensätze hier eingefügt habe. Ich kontrolliere das Ergebnis, indem ich mir die Bestellpositionen für diese Nummer nun ausgebe und Sie sehen, dass jetzt wirklich diese Zeilen hier alle eingefügt worden sind, in dem Fall mit der doppelten Bestellmenge. In der Position 1 haben wir die Menge 100 stehen, bei der alten Bestellung, wenn wir uns das zum Vergleich noch einmal ansehen, waren nur 50 Stück bestellt worden. Sie können also jederzeit ein INSERT-Statement mit einer SELECT-Klausel an Stelle einer VALUES-Klausel verwenden. Das ist immer dann der Fall, wenn Sie die Daten die Sie in die Tabelle einfügen über ein SELECT-Statement aus anderen Tabellen oder auch aus derselben Tabelle, wie in diesem Fall, eruieren möchten. Sie müssen lediglich darauf achten, dass Sie Primärschlüsselinformationen korrekt eintragen. Gegebenenfalls müssen Sie auch Spaltennamen durch Ausdrücke verwenden. Sonst sind Sie hier nicht eingeschränkt, in welcher Form der "SELECT" die Daten liefert. Das was der "SELECT" liefert, wird eingefügt. Natürlich gelten alle anderen Regeln für das Einfügen von Daten, was referenzielle Integrität oder Gültigkeitsregeln betrifft.

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!