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

SQL Grundkurs 1: Die Sprache erlernen

Werte in einer Tabelle ändern

Testen Sie unsere 2015 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Wir wollen einmal klein beginnen. Sehen Sie in diesem Video, wie Sie den Inhalt einer bestimmten Spalte ändern können.

Transkript

In diesem Video lernen Sie, wie Sie ein Update an einer Tabelle durchführen. Die Update-Anweisung besteht üblicherweise aus drei Teilen: aus "Update", "Set" und "Where". In der "Update-Klausel" wird die Tabelle angegeben, in der die Änderung vorgenommen werden soll. Zum Beispiel in unserem Fall wollen wir als Beispiel die Tabelle "Artikel" verwenden. In der "Set-Klausel" definieren wir, welche Spalte welchen neuen Wert bekommt. Das kann nun ein statischer neuer Wert sein oder über einen Ausdruck errechnet, das spielt keine Rolle. Zum Beispiel möchte ich, dass in der Artikel-Tabelle der Verkaufspreis um fünf Prozent erhöht und dieser Wert zugleich auf zwei Nachkommastellen gerundet wird. Also sage ich, der neue Preis ist der alte Preis mal 1,05, um fünf Prozent erhöht und die"Round-Funktion" noch dazu, damit wir das Ganze auf zwei Nachkommastellen wieder runden. Wenn wir mehrere Spalten ändern möchten, dann werden diese mit Komma getrennt und hintereinander angeführt. Wir belassen es vorerst aber bei einer Spalte. Ganz wichtig ist die "Where-Klausel", denn hier müssen wir definieren, welche Zeilen wir ändern wollen. Wenn wir nämlich ein Update ohne eine Where-Klausel umsetzen, dann werden alle Datensätze in der betroffenen Tabelle von dieser Anweisung geändert. Und das ist in den seltensten Fällen der Fall. Deshalb ergänze ich jetzt hier die Anweisung "Where VK-Preis 15" zum Beispiel. Ich möchte nur die Preise jener Artikel, die mehr als 15 Euro kosten, um fünf Prozent erhöhen. Nun führe ich diese Anweisung aus, gehe hier auf "Output", und sehe, dass 540 Zeilen von dieser Änderung betroffen sind. In so ein Update kann man natürlich noch weitere Bedingungen einbauen. Betrachten wir folgendes Beispiel: Wir möchten ein Preis-Update auf Artikel machen, und zwar auf Artikel aus der Artikelgruppe "Garten". Und zwar wollen wir diese mit einem Preis ab 300 Euro um fünf Prozent teurer machen, ab 200 Euro um 6,5 Prozent, natürlich nur bis 300, die nicht zweimal erhöhen, ab 100 Euro plus zwei Prozent und ab 50 Euro plus ein Prozent. Alle darunter sollen gleich bleiben. Das heißt, wir haben jetzt hier eine Bedingung, die jetzt nicht darauf abzielt, wie beim vorigen Beispiel, welche Datensätze wollen wir ändern, sondern wie wollen wir sie ändern? Wie können wir das umsetzen? Wieder beginnen wir mit "Update" und geben die Tabelle an, in der wir etwas ändern möchten. Das ist die Tabelle "Artikel". Nun kommt die Anweisung "Set", und hier ergänzen wir, was wir ändern, in dem Fall wieder den Verkaufspreis. Aber der Verkaufspreis soll ja nicht für jeden Artikel in gleicher Weise geändert werden, deshalb müssen wir hier eine Bedingung schaffen im Ausdruck, und das machen wir mit der Anweisung "Case". "Case When Verkaufspreis <= 300", damit haben wir abgedeckt ab 100, dann wollen wir den Preis um fünf Prozent erhöhen. Nachdem ich tippfaul bin, kopiere ich mir das gleich von hier oben hier herunter. Nun kann ich hier etwas einrücken darunter und die nächsten Bedingungen hier ergänzen. Nämlich wenn der Verkaufspreis größer gleich 200 ist, dann, haben wir definiert, möchten wir um 6,5 Prozent, also mal 1,065 den Preis anheben. Ab 100 Euro, "When VK-Preis = 100", dann, haben wir definiert, möchten wir um zwei Prozent erhöhen, 1,02. Und ab 50 Euro, wenn der Verkaufspreis also größer gleich 50 ist, dann bleibt noch ein Prozent Erhöhung übrig. Sonst, haben wir definiert, soll der Preis gleich bleiben. Sonst den alten Preis wieder übernehmen. Wichtig ist, wir dürfen nicht vergessen, den "Case-Block" hier mit einem "End" abzuschließen. Und natürlich brauchen wir die "Where-Klausel", in der wir definieren, dass wir nur Gartenartikel updaten wollen. Also "Where Gruppe = GA". Was passiert jetzt, wenn wir diese Anweisung, so wie ich sie jetzt hier hingeschrieben habe, ausführen? Alle Gartenartikel werden mit einem neuen Preis versehen. Auch wenn Sie sagen, die unter 50 Euro kriegen den gleichen Preis wieder, das ist richtig. Aber, wenn wir die Anweisung so ausführen, wie sie hier steht, werden wirklich alle überschrieben, wenn auch teilweise mit dem alten Wert. Das heißt, es ändert sich nach außen hin nichts. Hier sollte man sich immer überlegen, ob das eigentlich notwendig ist, weil man hier mehr Schreibzugriffe auf die Datenbank realisiert, als eigentlich notwendig. Das macht in der Praxis nicht viel Sinn, etwas mit dem selben Wert zu überschreiben. Denn Sie gehen ja auch nicht, wenn Sie nicht durstig sind, zum Kühlschrank, holen sich eine Flasche Bier, gehen zurück auf die Couch und stehen dann wieder auf und stellen das geschlossene Bier zurück in den Kühlschrank, um den selben Zustand wie zuvor zu erreichen. Das ist etwas umständlich, das sollte man nicht tun. Wenn wir uns also die Angabe für dieses Beispiel noch einmal genau ansehen, dann haben wir eigentlich zwei Arten von Informationen darin: Einerseits Informationen, wie möchten wir etwas ändern? Und wen möchten wir ändern? Das "Wie" betrifft hier die Prozentsätze und das "Wen" einerseits die Gartenartikel, aber eigentlich auch und das haben wir hier vorhin nicht richtig umgesetzt, die Variante "Darunter Gleich". "Darunter Gleich" heißt, dass diese nicht geändert werden sollen. Das heißt, was wäre die bessere Lösung in diesem Fall? Die bessere Lösung wäre es, die Preise unter 50 über die "Where-Klausel" abzufangen. Dazu kopiere ich mir die Anweisung. Was ändere ich jetzt? Das heißt, in der "Where-Klausel" schreibe ich noch dazu: "Und Verkaufspreis = 50" sein. Damit werden all jene mit einem Preis unter 50 Euro von vornherein gar nicht berücksichtigt. Das würde jetzt hier bedeuten, dass ich aber auch diesen Case-Block um einen Eintrag kürzen kann. Denn ich könnte ja jetzt die letzte Bedingung durch ein "Else" ersetzen. Das heißt, hier einfach diesen Teil dieser Bedingung größer gleich 50 entfernen. Weil alle, die diese Bedingung nicht erfüllt haben, müssen über 50 liegen, weil sonst wären sie ja gar nicht von der Änderung betroffen. Das heißt, hier können wir uns eine Variante im Case-Block sparen und haben auf diese Art und Weise auch sauber hier das Ergebnis realisiert. Bevor wir jetzt diese Anweisung ausführen, werfen wir noch einen Blick in die Daten, um auch evaluieren zu können, ob die Änderung korrekt erfolgt ist. Ich habe jetzt alle Gartenartikel mir angezeigt. Der erste hier mit 87 Cent, der darf sich ja nicht verändern. Wir suchen uns jetzt einfach den ersten Preis, der über 50 Euro liegt, den werden wir uns hier merken. Da haben wir hier die Gardena Baumschere, die werden wir uns merken, die kostet 51,40 Euro. Die muss dann in dem Fall um ein Prozent teurer werden. Nun führen wir diese Anweisung hier aus, kontrollieren ob wir einen Fehler haben, oder nicht. Nein, 75 Zeilen sind geändert worden. Nun machen wir die Kontrolle. Der Pflanzstab kostet nach wie vor 87 Cent, da hat sich nichts geändert. Jetzt gehen wir hier zu unserer Baumschere von Gardena. Bin ich jetzt schon etwas darüber. Die kostet jetzt um 51 Cent mehr, um 51,91 Euro ist diese nun zu haben. Sie sehen also, dass diese Update-Anweisung funktioniert hat. Sie haben in diesem Video gesehen, wie Sie ein "Update" realisieren. Bei einem Update müssen Sie immer drei Dinge definieren: Wen möchten Sie updaten, aus welcher Tabelle möchten Sie updaten, nach welchen Kriterien möchten Sie updaten, wenn Sie nämlich die "Where-Klausel" nicht verwenden, werden alle Datensätze geändert und welche Spalte möchten Sie womit überschreiben? Das sind die drei Dinge, die Sie typischerweise in einem "Update-Statement" verwenden.

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!