SQL Befehle Update
Wir bieten Ihnen hier ein einfaches Tool zur Erstellung eines SQL Update Befehls für einen Datenbankabfrage zur Verfügung stellen.
Um den SQL Befehl zuerstellen füllen Sie einfach die unten stehenden Felder aus:
Wie funktioniert SQL?
SQL bedeutet Structured Query Language. Die strukturierte Abfrage-Sprache hat sich in der Arbeit mit relationalen Datenbanken als Standard weltweit etabliert. Diese Tabellen enthalten Nutzdaten oder Systemdaten und sind durch den Datentyp der Spalten und ihrem Namen definiert. Eine beliebige Menge Daten finden ohne definierte Ordnung Eingang in die Tabellen. Technisch gesehen ist eine Datenbank ein Server-Programm, welches SQL Befehle Update und andere durch seine Client-Anwendungen entgegennimmt.
Meist sorgt eine TCP/IP-Verbindung für die Kommunikation zwischen Client und Server. Darüber nimmt die Datenbank Befehle entgegen und liefert ihre Abfrage-Resultate aus. In den 70er-Jahren wurde SQL erstmals von Oracle in einem Produkt kommerzialisiert. Da Daten langlebig sind, ist die Standardisierung und kontinuierliche Weiterentwicklung der Sprache bedeutungsvoll. SQL definiert, was Sie tun, und nicht, wie die Aufgabe auszuführen ist. Dies unterscheidet sie von anderen Programmiersprachen. Das Wie (Algorithmus) legt der Datenbankserver fest.
SQL Befehle Update: Wozu dienen Sie?
Folgendes sind die sechs wichtigsten Befehle von SQL:
- insert,
- drop table
- create table,
- update,
- select,
- delete.
Die Sprache besteht aus über 100 teils komplexen Befehlen und vielen Funktionen. Sie akzeptiert Schlüsselwörter in Groß- und Kleinschreibung. Datumswerte und Strings sind in einfache Anführungszeichen gesetzt. Ein Strichpunkt trennt verschiedene SQL-Befehle. Die Programmiersprache behandelt Zeilenumbrüche wie Leerzeichen.
SQL Befehle Update aktualisieren die Daten in einer Tabelle. Sie modifizieren Datensätze in Tabellen, wobei nur eine Tabelle gleichzeitig der Modifikation unterliegt. Der allgemeine Befehl lautet:
UPDATE
Tabelle
SET Spalte=Wert[,Spalte=Wert][,…]
WHERE Bedingung
Anstelle von „Tabelle“ setzen Sie den Namen der zu modifizierenden Tabelle ein. Set weist einem oder mehreren Feldern neue Werte zu. Nach WHERE steht, für welche Felder der Befehl zur Anwendung kommt. Ein Beispiel dazu: Die Ozonwerte in Bern sind nach einer falschen Messung um sechs Prozent zu erhöhen. Der Tabellenname ist „Messwerte“.
update Messwerte
set ozon = ozon * 1.06
where station = ‚Bern‘
Das Update korrigiert somit nur die Messwerte für Bern, da dies in der Bedingung steht. Jeder Wert, der diese erfüllt erhält den Wert 1.06, also ein Ganzes plus sechs Prozent dazu. Im ANSI-Standard ist es möglich, eine JOIN-Verknüpfung anzuhängen. Diese schränkt die Aktualisierung der betroffenen Zeilen genauer ein. Die WHERE-Klausel wählt einzelne Zeilen aus.
Wie funktioniert der Rechner?
Als Einleitung finden Sie die generelle Formel für SQL Befehle Update:
UPDATE
Tabelle
SET Spalte=Wert[,Spalte=Wert][,…]
WHERE Bedingung
Der Rechner behandelt drei Fälle von Update-Befehlen. Beim Ersten geht es darum, alle Werte eines Feldes in einer Tabelle zu verändern. Der zweite Fall handelt davon, wie Werte bestimmter Felder einer Tabelle eine Veränderung erhalten. Bei der dritten und kompliziertesten Art verändern Sie einen Wert über zwei Tabellen.
Alle Werte eines Feldes ändern
Beim Verändern aller Werte eines Feldes geben Sie als erstes den Namen der Tabelle ein. Das zu ändernde Feld tippen Sie in das Kästchen neben dem Satz „Feld das geändert werden soll“. Dazu überschreiben Sie den Begriff „feld“ im Innern. Zuletzt geben Sie den neuen Wert des Feldes über dem Begriff „wert“ ein. Mit dieser Art verändern Sie zum Beispiel alle Temperaturwerte einer Tabelle um 5 %. Sie bemerken, dass alle Werte um fünf Prozent zu hoch sind und setzen alle auf 95 % zurück.
Der Name der Tabelle ist Klima, das geänderte Feld nennt sich Temperatur. Beim Wert geben Sie Folgendes ein: „Temperatur * 0.95. Das bedeutet, alle Werte der Spalte Temperatur werden um fünf Prozent vermindert. Mit einem Klick auf das Feld „generieren“ erscheint dieser Befehl im Ergebnis-Rechteck:
UPDATE Klima SET Temperatur = ‚Temperatur * 0.95‘
Automatisch senkt der Befehl die Temperatur für jedes Kästchen der Spalte um fünf Prozent. Damit korrigieren Sie mit nur einem Klick alle Temperatur-Werte der Tabelle. Die WHERE-Bedingung ist in diesem Fall unnötig, da sie alle Temperaturwerte angleichen.
Werte bestimmter Felder einer Tabelle verändern
Im Unterschied zum ersten Fall verändern Sie hier nur die Temperaturwerte der Stadt Zürich um zwei Prozent. Die Eingaben in die ersten drei Felder geschieht analog zu denjenigen des ersten Falls. Überschreiben Sie zuerst den Begriff „tabellenname“ mit Klima oder klima. Die Groß-/Kleinschreibung spielt keine Rolle. Das Feld, das geändert werden soll, ist die Temperatur oder temperatur. Um diese um zwei Prozent zu erhöhen und die bestehenden Werte zu korrigieren, schreiben Sie über „wert“: Temperatur * 1.02.
Da Sie nur die Werte der Stadt Zürich verändern, überschreiben Sie „suchfeld“ mit Station. Dies ist der Name der Spalte, in der verschiedene Wetterstationen der Schweiz befinden. Bei „Nach welcher Bedingung soll geprüft werden“ wählen Sie mithilfe des Pfeils das = aus. Die Frage „Nach welchem Wert soll geprüft werden“ beantworten Sie mit „zuerich“. Vermeiden Sie Umlaute, da diese in den Formeln nicht korrekt erscheinen. Im Ergebnis-Rechteck erscheint nun der gesuchte Befehl:
UPDATE Klima SET Temperatur = ‚Temperatur * 1.02‘ WHERE Station = ‚Zuerich‘
Im Gegensatz zum ersten Fall kommt hier die WHERE-Bedingung zu tragen. Sie bestimmt, dass Sie nur die Werte von der Wetterstation Zürich dank der SQL Befehle Update verändern.
Einen Wert über zwei Tabellen verändern
Die Werte von Zürich sind in den Tabellen Klima1 und Klima2 um zwei Prozent zu erhöhen. Dies gelingt dank eines Inner Joins im selben Befehl. Sie füllen die Anfrage folgendermaßen aus.
Name der 1. Tabelle Klima1
Name der 2. Tabelle Klima2
Name des abhängigen Feldes aus Tabelle 1 Temperatur
Nach welcher Bedingung soll geprüft werden? =
Name des abhängigen Feldes aus Tabelle 2 Temperatur
Filter für Tabelle 1 Station
Nach welcher Bedingung soll geprüft werden? =
Auf welchen Wert soll geprüft werden? Zuerich
Name des zu ändernden Feldes aus Tabelle 1 Temperatur
Neuer Wert des Feldes Temperatur * 1.02
Dies bedeutet, alle Felder der Spalte Temperatur, deren Messungen in Zürich stattfanden, erhalten eine Erhöhung um zwei Prozent. Mit einem Klick auf das Feld Generieren erhalten Sie im Ergebnis-Rechteck den Befehl:
UPDATE Klima1 A INNER JOIN Klima2 B ON B.Temperatur = A.Temperatur SET A.Temperatur = ‚temperatur * 1.02‘ WHERE A.Station = ‚Zuerich‘
Der Rechner ist ein Hilfsmittel, um Tabellen im beruflichen und privaten Umfeld auf drei Arten zu aktualisieren. Wer in SQL noch nicht sattelfest ist, lernt die Handhabung, mithilfe dieses Rechners besser zu bewältigen.
Häufig gestellte Fragen
Was genau steckt hinter der mySQL Update-Funktion?
Welche unterschiedlichen Update-Funktionen gibt es?
Kann man die Update-Funktion rückgängig machen?
Häufig gestellte Fragen
Was genau steckt hinter der mySQL Update-Funktion?
Die mySQL Update-Funktion erlaubt es dem Benutzer mit administrativem Zugriff auf eine mySQL-Datenbank innerhalb einer oder mehrerer mySQL-Tabellen Änderungen an Daten vorzunehmen. Mit Hilfe von Attributen können die zu ändernden Daten genauer spezifiziert werden. Auch eine Verfeinerung der Art der Änderung ist durch Attribute möglich. Der Grundbefehl der mySQL Update-Funktion lautet UPDATE tabelle1 SET spalte1 = 'Test'. Führt man diesen Befehl aus, dann wird in der tabelle1 in der spalte1 bei jedem Datensatz der Eintrag Test stehen. Aus diesem Grund ist es unabdingbar, die Anweisung genauer auf bestimmte Werte zu spezifizieren.
Welche unterschiedlichen Update-Funktionen gibt es?
Die einfachste aller mySQL Update-Funktionen sieht vor, einen Wert in einer bestimmten Spalte und in einer bestimmten Reihe zu verändern. Vergleichbar ist dies mit Microsoft Excel, wo ich zum Beispiel in der Spalte 1, Reihe 10 einen Nachnamen von "Meier" in "Müller" ändern möchte. Dies erreiche ich mit dem Befehl UPDATE namensliste SET name = 'Mueller' WHERE name = 'Meier'. Doch mySQL ist an dieser Stelle einfach gestrickt und macht genau das, was man dem System befiehlt: alle Nachnamen "Meier" werden in "Müller" geändert, egal bei welchem Vornamen. Das kann bei bestimmten Daten gewünscht sein, doch im Falle einer Namensliste ist es höchstwahrscheinlich nicht so. Daher empfiehlt es sich, ein WHERE-Statement auszuwählen, was für den gewünschten Datensatz einmalig ist, zum Beispiel das Geburtsdatum. Über die genauere Definition des WHERE-Statements lässt sich somit die versehentliche Bearbeitung nahezu ausschließen. Der Befehl UPDATE namensliste SET name = 'Mueller' WHERE name = 'Meier' AND geburtsdatum = '24.05' ändert dann den Nachnamen des gewünschten Herrn Meiers in Müller, welcher am 24. Mai Geburtstag hat.
Nehmen wir an, es handelt sich bei der Tabelle im Beispiel um die Mitgliederkartei eines Vereins. Dann ist es wenig sinnvoll, diese Daten zu manipulieren, wenn ein Benutzer gerade auf Daten zugreift oder Daten schreibt. In diesem Fall sorgt das Attribut LOW_PRIORITY dafür, dass die Ausführung des Update-Befehls erst dann erfolgt, wenn keine Zugriffe mehr stattfinden. Die Syntax lautet dann UPDATE LOW_PRIORITY namensliste SET name = 'Mueller' WHERE name = 'Meier'. In manchen Fällen kann es gewünscht sein, dass ein Befehl zu Ende ausgeführt wird, auch wenn Fehler auftreten (z.B. bei tausenden von Datensätzen). In diesem Fall kann das ATTRIBUT IGNORE hinzugefügt werden. Syntax: UPDATE LOW_PRIORITY IGNORE namensliste SET name = 'Mueller' WHERE name = 'Meier'Fehler werden dann ignoriert und die Anweisung wird weiter ausgeführt.
Der Update-Befehl ist ebenfalls in der Lage, mit bestehenden Werten zu rechnen. Als Beispiel nehmen wir eine Geburtstagsliste aller Mitglieder des Vereins. Mit dem folgenden Befehl kann nun tagesaktuell das Alter der Mitglieder aktualisiert werden: UPDATE geburtstagsliste SET alter = alter+1 WHERE geburtstag = '12.02.'. Das Ergebnis sieht so aus, dass alle Mitglieder, die am 12. Februar Geburtstag haben, bei Ausführung des Befehls ein Jahr älter werden. Anstatt dem 12.02. könnte man eine Variable angeben und diesen Befehl jeden Tag automatisch ausführen lassen. Bei vielen Mitgliedern würde so jeden Tag zu einer definierten Uhrzeit die Geburtstagsliste automatisch aktualisiert werden.
Die Rechenfunktionen werden immer von links nach rechts gelesen. Somit ist es möglich, mehrere Rechenfunktionen in einem Befehl anzugeben. Zahlen beispielsweise alle Mitglieder unterschiedliche Mitgliedsbeiträge und sollen diese in zwei Schritten angepasst werden, so ist auch dies möglich. Nehmen wir an, jedes Mitglied soll ab sofort 10% mehr Beitrag zahlen und bekommt einen Rabatt von 30,-€. Dies kann je nach Höhe der Beitragszahlung in der Summe weniger oder mehr Mitgliedsbeitrag ausmachen. Erreichen kann man diese Berechnung durch den Befehl UPDATE Übersicht_beitraege SET monatsbeitrag = monatsbeitrag*1.1, monatsbeitrag+30. Somit wird der aktuelle Monatsbeitrag mit 1,1 multipliziert (plus 10%) und erst danach um 30,-€ erhöht.
Der Update-Befehl bietet in der Theorie einige weitere Attribute, deren praktischer Nutzen teilweise zweifelhaft ist. Eine gute und schnelle Übersicht über die wichtigsten Befehle und deren Syntax kann man online einsehen. Da mySQL ein quelloffenes System ist, werden sämtliche Befehle auch dort dokumentiert. Hier geht es direkt zum Kapitel "Update-Befehl".
Kann man die Update-Funktion rückgängig machen?
Der Update-Befehl wird wie alle anderen mySQL-Befehle auch direkt in die Datenbank geschrieben, ohne Rücksicht auf Verluste. Daher empfiehlt es sich in produktiven Tabellen oder Datenbanken, die bereits im Zugriff anderer Systeme sind, eine Sicherung anzulegen. Bei mySQL gibt es ebenfalls die Möglichkeit, das sogenannte "Binary Log" zu aktivieren. Diese Protokolldatei dokumentiert dann die vorgenommen Änderungen in Maschinencode. Anhand der darin gespeicherten Informationen können Datenbankspezialisten die meisten Änderungen rückgängig machen. Doch diese Arbeit kostet Zeit und somit meisten auch Geld.
Der einfache Weg - ein Backup der Inhalte über die integrierte mySQL-Funktion - ist meistens sehr performant, sicher und bewahrt den unerfahrenen Benutzer davor, kritische Daten nach dem Ausführen unperfekter Befehlszeilen im Nirvana zu wissen.