Direkt zum Inhalt

Wie man mehrere Spalten in SQL aktualisiert

Lerne, wie du mehrere Spalten in SQL mit einer einzigen Abfrage aktualisieren kannst, um die Effizienz zu steigern. Erforsche praktische fortgeschrittene Techniken und Beispiele, einschließlich Aktualisierungen einzelner und mehrerer Zeilen.
Aktualisierte 8. Nov. 2024  · 8 Min. Lesezeit

Bei der Arbeit mit Datenbanken ist Effizienz das A und O. Zu wissen, wie man mehrere Spalten gleichzeitig in SQL aktualisiert, ist eine gute Fähigkeit. Wenn du als Datenanalyst/in weißt, wie du mehrere Spalten in SQL aktualisieren kannst, kannst du deine Produktivität steigern und Fehler vermeiden. In diesem Artikel erfährst du, wie du mehrere Spalten mit SQL aktualisieren kannst. Wir behandeln die Syntax, Techniken und Beispiele, um die besten Methoden zu demonstrieren.

Du lernst, wie du mehrere Spalten mit der Anweisung UPDATE aktualisieren kannst und wie du mit Joins, Bedingungen und Leistungsüberlegungen umgehst, um Daten effektiv zu verwalten. Aür den Einstieg empfehle ich die DataCamp-Kurse Einführung in SQL und SQL lernen, um die Grundlagen von SQL bei der Abfrage von Datenbanken zu erlernen. 

Die Grundlagen des Aktualisierens mehrerer Spalten in SQL verstehen

Die UPDATE Anweisung in SQL wird verwendet, um Daten in einer Datenbank zu ändern. Ihre Hauptfunktion besteht darin, bestehende Datensätze zu ändern, indem die Werte in einer oder mehreren Spalten einer Tabelle aktualisiert werden. UPDATE ist effizient, weil mehrere Spalten mit einer einzigen Anweisung aktualisiert werden können. Im Folgenden findest du die Syntax der Anweisung UPDATE.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: Die Tabelle, in der du die Daten aktualisieren willst.

  • column1, column2, column3: Die Spalten werden aktualisiert.

  • value1, value2, value3: Die neuen Werte für die jeweiligen Spalten.

  • condition: Die Kriterien, die bestimmen, welche Zeilen aktualisiert werden.

Die Verwendung der UPDATE Anweisung zur Aktualisierung mehrerer Spalten ist effizient, da die Datenbankmaschine den Vorgang schneller verarbeitet und weniger Ressourcen verbraucht. Die Methode ist auch deshalb so einfach, weil der Code einfach zu verstehen und zu pflegen ist.

Beispiele für das Aktualisieren mehrerer Spalten in SQL

Du kannst mehrere Spalten in SQL für einen einzelnen Datensatz oder mehrere Zeilen in der Tabelle aktualisieren. Schauen wir uns beides an:

Einzelne Zeile aktualisieren

Wir verwenden die einzeilige Aktualisierung, wenn wir die Werte mehrerer Spalten für einen bestimmten Datensatz ändern. Diese Methode ist sehr einfach, wenn du die Werte eines bestimmten Tabelleneintrags ändern willst.

Die folgende Abfrage aktualisiert die Spalten salary und department in der Tabelle employees für eine Zeile, in der die employee_id = 101.

-- Updating salary and department columns
UPDATE employees
SET salary = 75000,        
    department = 'HR' 
-- Condition to target the specific row
WHERE employee_id = 101;

Mehrere Zeilen aktualisieren

Stapelaktualisierungen sind für Szenarien notwendig, in denen du mehrere Spalten über mehrere Datensätze hinweg aktualisieren musst. Aktualisierungen mit mehreren Zeilen erfolgen, wenn Datensätze auf der Grundlage bestimmter Bedingungen aktualisiert werden, die mehr als eine Zeile betreffen.

Angenommen, du möchtest die salary und position von mehreren Mitarbeitern aktualisieren, die in der Abteilung Sales befördert wurden. Du könntest die folgende Abfrage verwenden:

-- Update multiple columns 
UPDATE employees
-- Increase the salary by $5000 for each 
SET salary = salary + 5000, 
    position = 'Senior Sales Associate' 
WHERE department = 'Sales' 
  AND years_of_experience > 5;

Fortgeschrittene Techniken zum Aktualisieren mehrerer Spalten in SQL

In manchen Fällen erfordert die Aktualisierung mehrerer Spalten in SQL fortgeschrittenere Techniken, insbesondere bei der Behandlung von Nullwerten, bedingter Logik oder der Aktualisierung auf der Grundlage von Daten aus anderen Tabellen. 

Wenn der Wert einer Spalte von einer anderen Spalte abhängt

Es kann sein, dass wir eine Spalte basierend auf einer anderen Spalte in derselben Tabelle aktualisieren wollen. Hier werden wir grundlegende Logik mit Ausdrücken verwenden, um die Spalte zu aktualisieren.

Die folgende Abfrage berechnet zum Beispiel die Spalte bonus als Prozentsatz der Spalte salary für bestimmte Arbeitnehmer.

-- Update bonus as 10% of the salary
UPDATE employees
SET bonus = salary * 0.10 
-- Only apply the update to Sales department
WHERE department = 'Sales'; 

Mehrere Spalten mit COALESCE für NULL-Behandlung aktualisieren

Die Funktion COALESCE kann effektiv mit Nullwerten umgehen, wenn mehrere Spalten aktualisiert werden. Dadurch wird sichergestellt, dass Nullwerte durch entsprechende Standardwerte ersetzt werden und die Datenintegrität erhalten bleibt.

Die folgende Abfrage aktualisiert die Spalten salary und department mit dem angegebenen Wert. Wenn die Spalte eine NULL enthält, wird sie durch einen Standardwert ersetzt.

UPDATE employees
-- If salary is NULL, set it to 50,000
SET salary = COALESCE(salary, 50000), 
-- If department is NULL, set it to 'IT'
    department = COALESCE(department, 'IT') 
-- Apply update to specific employee IDs
WHERE employee_id IN (102, 103, 104); 

Mehrere Spalten aktualisieren und bedingte Aktualisierungen mit CASE-Anweisungen

Die Anweisung CASE kann verwendet werden, um Spalten anhand bestimmter Kriterien bedingt zu aktualisieren. Dies ermöglicht eine genauere Kontrolle darüber, welche Werte unter welchen Umständen aktualisiert werden, und erhöht die Flexibilität von SQL-Aktualisierungen.

Du könntest zum Beispiel die bonus und position der Mitarbeiter auf der Grundlage ihrer performance_rating aktualisieren, wie ich es hier zeige:

-- Update bonus and position department
UPDATE employees
SET bonus = CASE 
                WHEN performance_rating = 'A' THEN salary * 0.15 
                WHEN performance_rating = 'B' THEN salary * 0.10 
                ELSE salary * 0.05
            END,
    position = CASE 
                  WHEN performance_rating = 'A' THEN 'Team Lead' 
                  WHEN performance_rating = 'B' THEN 'Senior'
                  ELSE position
              END
-- Apply update only to employees in the Sales department
WHERE department = 'Sales';

Mehrere Spalten beim Verbinden von Tabellen aktualisieren

Du kannst auch JOIN innerhalb der UPDATE Anweisung verwenden, um mehrere Spalten auf der Grundlage von Daten aus einer Bezugstabelle zu aktualisieren.

Angenommen, du hast zwei Tabellen, employees und departments. Du möchtest die Tabelle employees mit Abteilungsnamen und Standorten aus der Tabelle departments aktualisieren.

-- Update department name and location from departments table
UPDATE employees e
JOIN departments d ON e.department_id = d.department_id
SET e.department_name = d.department_name,
    e.location = d.location
WHERE e.department_id IN (1, 2, 3);

Ich empfehle dir, unseren SQL Fundamentals Skill Track und unseren Database Design Kurs auszuprobieren, um mehr über Datenbankdesign und das Verbinden von Tabellen zu lernen. Schau dir auch das Tutorial für das SQL UPDATE mit JOIN an: Funktionsweise, um mehr über tabellenübergreifende Aktualisierungen zu erfahren.

Leistungsoptimierung und Transaktionsmanagement

Die Leistungsoptimierung ist wichtig, wenn es um SQL-Aktualisierungen für mehrere Spalten geht, insbesondere bei großen Datensätzen. Beachte die folgenden Best Practices, um Datenkonsistenz und Datenbankoptimierung zu gewährleisten.

  • Effizienz und Atomarität: Die Aktualisierung mehrerer Spalten in einer einzigen Abfrage verbessert die Datenbankleistung, indem sie die Anzahl der Operationen reduziert, die die Datenbankmaschine verarbeiten muss. Das verbessert die Effizienz und auch die Atomarität, d.h. alle Aktualisierungen werden gemeinsam durchgeführt oder gar keine, wodurch die Datenkonsistenz erhalten bleibt.
  • Transaktionen für die Sicherheit nutzen: Mit Transaktionen kannst du deine Daten schützen, indem du Änderungen zurücknimmst, wenn etwas schief läuft, sodass partielle Aktualisierungen die Datenbank nicht gefährden. Transaktionen machen Batch-Updates auch in Mehrbenutzerumgebungen zuverlässiger und verringern das Risiko von Datenkonflikten.

Häufige Fallstricke und Fehler

Es gibt einige häufige Fallstricke und Fehler, die bei der Bearbeitung von mehrspaltigen Aktualisierungen zu Fehlern führen können. Sehen wir uns einige Beispiele an und wie du sie vermeiden kannst.

  • Vergiss die WHERE Klausel: Wenn du vergisst, die WHERE Klausel in die UPDATE Anweisung aufzunehmen, kann dies zu unbeabsichtigten Aktualisierungen aller Datenzeilen führen. Um dies zu vermeiden, musst du sicherstellen, dass die WHERE Klausel korrekt definiert ist und auf die Spalten verweist, die du aktualisieren willst.

  • Unstimmigkeiten beim Datentyp: Unstimmigkeiten zwischen Datentypen können Fehler verursachen oder zu einer falschen Datenspeicherung führen. Überprüfe immer, ob die Datentypen der in deiner UPDATE Abfrage verwendeten Werte mit den Spalten übereinstimmen, die sie aktualisieren.

Wenn du mehr über Datentypen und das Filtern von Daten mit WHERE lernen möchtest, empfehle ich dir den DataCamp-Kurs Intermediate SQL.

Fazit

Zu verstehen, wie man mehrere Spalten in SQL aktualisiert, ist wichtig für die Effizienz und Genauigkeit der Datenbank. Ich hoffe, dass du nach der Lektüre dieses Artikels weißt, dass die gleichzeitige Aktualisierung mehrerer Spalten eine notwendige Fähigkeit ist und du keine Abkürzungen ausprobieren solltest, da du sonst Teiltransaktionen oder inkonsistente Zustände verursachen könntest.

Je nachdem, in welche Richtung du dich beruflich orientieren möchtest, empfehle ich dir, dich entweder für den DataCamp-Karrierepfad Associate Data Analyst in SQL anzumelden, um die für einen Datenanalysten erforderlichen Fähigkeiten zu erlernen, oder unseren Karrierepfad Associate Date Engineer in SQL auszuprobieren, wenn du Dateningenieur werden möchtest. In jedem Fall würde ich versuchen, die SQL Associate-Zertifizierung zu erlangen. Damit kannst du deinen Arbeitgebern zeigen, dass du SQL zur Lösung von Geschäftsproblemen beherrschst.


Photo of Allan Ouko
Author
Allan Ouko
LinkedIn
Ich verfasse Artikel, die Datenwissenschaft und Analytik vereinfachen und leicht verständlich und zugänglich machen.

SQL-FAQs

Kann ich mehrere Spalten in SQL in einer einzigen Abfrage aktualisieren?

Ja, du kannst mehrere Spalten in einer einzigen UPDATE Anweisung auf einmal aktualisieren und so die Effizienz und Genauigkeit verbessern.

Kann ich mehrere Spalten mit unterschiedlichen Werten für verschiedene Zeilen aktualisieren?

Ja, du kannst mehrere Zeilen mit unterschiedlichen Werten aktualisieren, indem du Bedingungen in der WHERE Klausel verwendest oder Logik in der CASE Anweisung anwendest.

Was passiert, wenn ich die WHERE-Klausel vergesse, wenn ich mehrere Spalten aktualisiere?

Wenn du die WHERE Klausel weglässt, wird die Aktualisierung auf alle Zeilen der Tabelle angewendet, was zu unbeabsichtigten Datenänderungen führen kann.

Wie gehe ich mit NULL-Werten um, wenn ich mehrere Spalten aktualisiere?

Du kannst die Funktion COALESCE verwenden, um NULL Werte zu behandeln, indem du bei der Aktualisierung Standardwerte angibst.

Kann ich Spalten mit Daten aus einer anderen Tabelle aktualisieren?

Du kannst Aktualisierungen vornehmen, indem du Tabellen verbindest. So kannst du Spalten auf der Grundlage von Bezugsdaten aus einer anderen Tabelle aktualisieren.

Themen

Lerne SQL mit DataCamp

Kurs

Introduction to Relational Databases in SQL

4 hr
149.6K
Learn how to create one of the most efficient ways of storing data - relational databases!
Siehe DetailsRight Arrow
Kurs Starten
Mehr anzeigenRight Arrow
Verwandt

Der Blog

Die 20 besten Snowflake-Interview-Fragen für alle Niveaus

Bist du gerade auf der Suche nach einem Job, der Snowflake nutzt? Bereite dich mit diesen 20 besten Snowflake-Interview-Fragen vor, damit du den Job bekommst!
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 Min.

Der Blog

Die 32 besten AWS-Interview-Fragen und Antworten für 2024

Ein kompletter Leitfaden zur Erkundung der grundlegenden, mittleren und fortgeschrittenen AWS-Interview-Fragen, zusammen mit Fragen, die auf realen Situationen basieren. Es deckt alle Bereiche ab und sorgt so für eine abgerundete Vorbereitungsstrategie.
Zoumana Keita 's photo

Zoumana Keita

30 Min.

See MoreSee More