Ga naar hoofdinhoud

Meerdere kolommen updaten in SQL: zo doe je dat

Leer hoe je meerdere kolommen in SQL bijwerkt met één query voor meer efficiëntie. Ontdek praktische, geavanceerde technieken en voorbeelden, waaronder updates van één rij en meerdere rijen.
· 8 min lezen

Verken met AI

Als je met databases werkt, is efficiëntie cruciaal, en weten hoe je in SQL meerdere kolommen tegelijk bijwerkt is een waardevolle vaardigheid. Als data-analist kan inzicht in het updaten van meerdere kolommen in SQL je productiviteit verhogen en fouten voorkomen. In dit artikel bekijken we hoe je meerdere kolommen bijwerkt met SQL, met aandacht voor syntax, technieken en voorbeelden van best practices.

Je leert hoe je meerdere kolommen bijwerkt met de UPDATE-instructie en hoe je joins, voorwaarden en performance-overwegingen aanpakt om data effectief te beheren. As we get started, I recommend taking DataCamp’s Introduction to SQL and Learn SQL courses to learn the fundamentals of SQL in querying databases. 

De basis van meerdere kolommen updaten in SQL

De UPDATE-instructie in SQL wordt gebruikt om data in een database te wijzigen. De primaire functie is bestaande records aanpassen door waarden in één of meer kolommen van een tabel te updaten. UPDATE is efficiënt omdat je meerdere kolommen in één statement kunt bijwerken. Hieronder staat de syntax van de UPDATE-instructie.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: De tabel waarin je de data wilt updaten.

  • column1, column2, column3: De kolommen die je bijwerkt.

  • value1, value2, value3: De nieuwe waarden voor de betreffende kolommen.

  • condition: De criteria die bepalen welke rijen worden bijgewerkt.

Het gebruik van de UPDATE-instructie om meerdere kolommen bij te werken is efficiënt, omdat de database-engine de bewerking sneller verwerkt en minder resources verbruikt. De methode is ook eenvoudig, omdat de code makkelijk te begrijpen en te onderhouden is.

Voorbeelden van meerdere kolommen updaten in SQL

Je kunt meerdere kolommen in SQL bijwerken voor één record of voor meerdere rijen in de tabel. Laten we beide bekijken:

Update van één rij

We gebruiken de update van één rij wanneer we waarden van meerdere kolommen voor één specifiek record aanpassen. Deze methode is rechttoe rechtaan wanneer je de waarden van een bepaalde tabelrij wijzigt.

De volgende query werkt de kolommen salary en department in de tabel employees bij voor één rij waar 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;

Update van meerdere rijen

Batchupdates zijn nodig in situaties waarin je meerdere kolommen over verschillende records moet bijwerken. Updates van meerdere rijen gebeuren wanneer je records bijwerkt op basis van specifieke voorwaarden die meer dan één rij beïnvloeden.

Stel dat je het salary en de position wilt bijwerken van meerdere medewerkers die zijn gepromoveerd in de afdeling Sales. Je kunt dan de volgende query gebruiken:

-- 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;

Geavanceerde technieken voor het updaten van meerdere kolommen in SQL

In sommige gevallen vraagt het updaten van meerdere kolommen in SQL om geavanceerdere technieken, zeker bij het omgaan met null-waarden, voorwaardelijke logica of updates op basis van data uit andere tabellen. 

Wanneer de waarde van de ene kolom afhangt van een andere kolom

Soms wil je een kolom bijwerken op basis van een andere kolom in dezelfde tabel. Hier gebruiken we eenvoudige logica met expressies om de kolom bij te werken.

Bijvoorbeeld: de volgende query berekent de kolom bonus als een percentage van de kolom salary voor bepaalde medewerkers.

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

Meerdere kolommen updaten met COALESCE voor NULL-afhandeling

De functie COALESCE kan null-waarden effectief beheren bij het updaten van meerdere kolommen. Zo worden null-waarden vervangen door passende standaardwaarden, wat de dataintegriteit waarborgt.

De onderstaande query werkt de kolommen salary en department bij met de opgegeven waarde. Als de kolom een NULL bevat, wordt die vervangen door een standaardwaarde.

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); 

Meerdere kolommen updaten en conditionele updates met CASE-statements

Met het CASE-statement kun je kolommen conditioneel updaten op basis van specifieke criteria. Dit geeft meer controle over welke waarden worden bijgewerkt en onder welke omstandigheden, en maakt SQL-updates flexibeler.

Je wilt bijvoorbeeld de bonus en position van medewerkers bijwerken op basis van hun performance_rating, zoals ik hier laat zien:

-- 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';

Meerdere kolommen updaten terwijl je tabellen joint

Je kunt ook JOIN gebruiken binnen de UPDATE-instructie om meerdere kolommen bij te werken op basis van data uit een gerelateerde tabel.

Stel, je hebt twee tabellen, employees en departments. Je wilt de tabel employees bijwerken met afdelingsnamen en locaties uit de tabel departments.

-- 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);

Ik raad je aan om onze SQL Fundamentals skill track en onze Database Design-cursus te proberen om meer te leren over databaseontwerp en joins. Bekijk ook de tutorial SQL UPDATE with JOIN: How it Works om meer te leren over cross-table updates.

Performance-optimalisatie en transactiemanagement

Performance-optimalisatie is belangrijk bij SQL-updates voor meerdere kolommen, zeker bij grote datasets. Houd rekening met de volgende best practices om dataconsistentie en database-optimalisatie te waarborgen.

  • Efficiëntie en atomiciteit: Meerdere kolommen in één query bijwerken verbetert de databaseperformance doordat het aantal operaties dat de database-engine moet verwerken afneemt. Dit verhoogt de efficiëntie en ook de atomiciteit: alle updates slagen samen of geen enkele wordt toegepast, waardoor dataconsistentie behouden blijft.
  • Transacties gebruiken voor veiligheid: Met transacties kun je data beschermen door wijzigingen terug te draaien als er iets misgaat, zodat gedeeltelijke updates de database niet schaden. Transacties maken batchupdates ook betrouwbaarder in omgevingen met meerdere gebruikers, waardoor de kans op dataconflicten afneemt.

Veelvoorkomende valkuilen en fouten

Er zijn enkele veelvoorkomende valkuilen en fouten die tot problemen kunnen leiden bij updates van meerdere kolommen. Laten we een paar voorbeelden bekijken en hoe je ze vermijdt.

  • De WHERE-clausule vergeten: Als je de WHERE-clausule in de UPDATE-instructie vergeet, kan dat onbedoeld tot updates van alle rijen in de data leiden. Zorg er daarom altijd voor dat de WHERE-clausule correct is gedefinieerd en verwijst naar de rijen die je wilt bijwerken.

  • Mismatch van datatypen: Verschillen tussen datatypen kunnen fouten veroorzaken of leiden tot onjuiste opslag van data. Controleer altijd of de datatypen van de waarden in je UPDATE-query overeenkomen met de kolommen die je bijwerkt.

Wil je meer leren over datatypen en data filteren met WHERE? Dan raad ik DataCamp’s cursus Intermediate SQL aan.

Conclusie

Weten hoe je meerdere kolommen in SQL bijwerkt, is belangrijk voor de efficiëntie en nauwkeurigheid van je database. Hopelijk zie je na het lezen dat meerdere kolommen tegelijk updaten een noodzakelijke vaardigheid is, en dat je geen shortcuts moet nemen, anders kun je gedeeltelijke transacties of inconsistente staten veroorzaken.

Afhankelijk van je carrièrerichting raad ik aan om je in te schrijven voor DataCamp’s Associate Data Analyst in SQL career track om de skills op industrieniveau te leren die je nodig hebt om data-analist te worden, of om onze Associate Date Engineer in SQL career track te proberen als je data engineer wilt worden. In beide gevallen zou ik ook proberen de SQL Associate Certification te behalen, een overtuigende manier om werkgevers te laten zien dat je SQL beheerst om bedrijfsproblemen op te lossen.

Allan Ouko

Auteur

Allan Ouko

\n
\n
\n
\n
Technical writer voor data science met praktische ervaring in data-analyse, business intelligence en data science. Ik schrijf praktische, op de industrie gerichte content over SQL, Python, Power BI, Databricks en data engineering, gebaseerd op analytisch werk in de echte wereld. Mijn schrijfwerk slaat een brug tussen technische diepgang en zakelijke impact, en helpt professionals om data om te zetten in onderbouwde beslissingen.
\n
\n
\n
\n

SQL FAQ's

Kan ik meerdere kolommen in SQL bijwerken met één query?

Ja, je kunt meerdere kolommen tegelijk bijwerken met één UPDATE-instructie, wat de efficiëntie en nauwkeurigheid verhoogt.

Kan ik meerdere kolommen met verschillende waarden voor verschillende rijen updaten?

Ja, je kunt meerdere rijen met verschillende waarden bijwerken door voorwaarden in de WHERE-clausule te gebruiken of logica toe te passen binnen het CASE-statement.

Wat gebeurt er als ik de WHERE-clausule vergeet bij het updaten van meerdere kolommen?

Als je de WHERE-clausule weglaat, wordt de update toegepast op alle rijen in de tabel, wat kan leiden tot onbedoelde datamodificatie.

Hoe ga ik om met NULL-waarden bij het updaten van meerdere kolommen?

Je kunt de functie COALESCE gebruiken om NULL-waarden af te handelen door standaardwaarden op te geven bij het updaten.

Kan ik kolommen updaten met data uit een andere tabel?

Je kunt updates uitvoeren door tabellen te joinen, zodat je kolommen kunt bijwerken op basis van gerelateerde data uit een andere tabel.

Onderwerpen

Gerelateerd