Accéder au contenu principal

Comment mettre à jour plusieurs colonnes en SQL

Apprenez à mettre à jour plusieurs colonnes en SQL à l'aide d'une seule requête pour plus d'efficacité. Explorez des techniques avancées et des exemples pratiques, notamment les mises à jour sur une seule ligne et les mises à jour sur plusieurs lignes.
Actualisé 8 nov. 2024  · 8 min de lecture

Lorsque vous travaillez avec des bases de données, l'efficacité est essentielle, et savoir comment mettre à jour plusieurs colonnes à la fois en SQL est une bonne compétence. En tant qu'analyste de données, comprendre comment mettre à jour plusieurs colonnes en SQL peut améliorer votre productivité et éviter les erreurs. Cet article explique comment mettre à jour plusieurs colonnes à l'aide de SQL, en abordant la syntaxe, les techniques et les exemples qui démontrent les meilleures pratiques.

Vous apprendrez à mettre à jour plusieurs colonnes à l'aide de l'instruction UPDATE et à gérer les jointures, les conditions et les considérations de performance pour gérer efficacement les données. Aour commencer, je vous recommande de suivre les cours Introduction à SQL et Learn SQL de DataCamp pour apprendre les principes fondamentaux de SQL pour l'interrogation des bases de données. 

Comprendre les bases de la mise à jour de plusieurs colonnes en SQL

L'instruction UPDATE en SQL est utilisée pour modifier les données d'une base de données. Sa fonction première est de modifier les enregistrements existants en mettant à jour les valeurs d'une ou de plusieurs colonnes d'une table. UPDATE est efficace car il permet de mettre à jour plusieurs colonnes à l'aide d'une seule instruction. Voici la syntaxe de l'instruction UPDATE.

-- Update specific columns in a table
UPDATE table_name
SET column1 = value1,
    column2 = value2,
    column3 = value3
WHERE condition;
  • table_name: La table dans laquelle vous souhaitez mettre à jour les données.

  • column1, column2, column3: Les colonnes mises à jour.

  • value1, value2, value3: Les nouvelles valeurs des colonnes respectives.

  • condition: Les critères qui déterminent quelles lignes sont mises à jour.

L'utilisation de l'instruction UPDATE pour mettre à jour plusieurs colonnes est efficace car le moteur de la base de données traite l'opération plus rapidement, en consommant moins de ressources. La méthode est également simple parce que le code est facile à comprendre et à maintenir.

Exemples de mise à jour de plusieurs colonnes en SQL

Vous pouvez mettre à jour plusieurs colonnes en SQL pour un seul enregistrement ou plusieurs lignes de la table. Examinons les deux :

Mise à jour d'une seule ligne

Nous utilisons la mise à jour sur une seule ligne lorsque nous modifions les valeurs de plusieurs colonnes pour un enregistrement spécifique. Cette méthode est simple lorsqu'il s'agit de modifier les valeurs d'une entrée de tableau particulière.

La requête suivante met à jour les colonnes salary et department dans la table employees pour une ligne où la colonne 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;

Mise à jour de plusieurs lignes

Les mises à jour par lots sont nécessaires pour les scénarios dans lesquels vous devez mettre à jour plusieurs colonnes dans plusieurs enregistrements. Les mises à jour sur plusieurs lignes se produisent lorsque des enregistrements sont mis à jour sur la base de conditions spécifiques qui affectent plus d'une ligne.

Supposons que vous souhaitiez mettre à jour les adresses salary et position de plusieurs employés promus dans le département Sales. Vous pouvez utiliser la requête suivante :

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

Techniques avancées de mise à jour de plusieurs colonnes en SQL

Dans certains cas, la mise à jour de plusieurs colonnes en SQL nécessite des techniques plus avancées, notamment pour gérer les valeurs nulles, la logique conditionnelle ou les mises à jour basées sur des données provenant d'autres tables. 

Lorsque la valeur d'une colonne dépend d'une autre colonne

Nous pouvons vouloir mettre à jour une colonne sur la base d'une autre colonne de la même table. Ici, nous utiliserons une logique de base avec des expressions pour mettre à jour la colonne.

Par exemple, la requête suivante calcule la colonne bonus en pourcentage de la colonne salary pour certains employés.

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

Mise à jour de plusieurs colonnes en utilisant COALESCE pour la gestion de NULL

La fonction COALESCE permet de gérer efficacement les valeurs nulles lors de la mise à jour de plusieurs colonnes. Cela permet de s'assurer que les valeurs nulles sont remplacées par les valeurs par défaut appropriées, ce qui préserve l'intégrité des données.

La requête ci-dessous met à jour les colonnes salary et department avec la valeur donnée. Si la colonne contient un NULL, il est remplacé par une valeur par défaut.

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

Mise à jour de plusieurs colonnes et mises à jour conditionnelles avec les instructions CASE

L'instruction CASE peut être utilisée pour mettre à jour des colonnes de manière conditionnelle en fonction de critères spécifiques. Cela permet un contrôle plus granulaire des valeurs qui sont mises à jour et des circonstances dans lesquelles elles le sont, ajoutant ainsi de la flexibilité aux mises à jour SQL.

Par exemple, vous pouvez vouloir mettre à jour les adresses bonus et position des employés en fonction de leur adresse performance_rating, comme je le montre ici :

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

Mise à jour de plusieurs colonnes lors de la jonction de tables

Vous pouvez également utiliser JOIN dans l'instruction UPDATE pour mettre à jour plusieurs colonnes en fonction des données d'une table connexe.

Supposons que vous ayez deux tables, employees et departments. Vous souhaitez mettre à jour la table employees avec les noms des départements et les emplacements de la table 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);

Je vous recommande d'essayer notre piste de compétences SQL Fundamentals et notre cours Database Design pour en savoir plus sur la conception de bases de données et la jonction de tables. Consultez également le tutoriel pour SQL UPDATE with JOIN : Comment ça marche pour en savoir plus sur les mises à jour entre tables.

Optimisation des performances et gestion des transactions

L'optimisation des performances est importante lorsqu'il s'agit de mises à jour SQL pour plusieurs colonnes, en particulier pour les grands ensembles de données. Prenez en compte les meilleures pratiques suivantes pour garantir la cohérence des données et l'optimisation de la base de données.

  • Efficacité et atomicité : La mise à jour de plusieurs colonnes en une seule requête améliore les performances de la base de données en réduisant le nombre d'opérations que le moteur de la base de données doit traiter. Cela améliore l'efficacité et l'atomicité, ce qui signifie que toutes les mises à jour sont effectuées en même temps ou qu'aucune n'est appliquée, ce qui préserve la cohérence des données.
  • Utiliser les transactions pour la sécurité : Les transactions vous permettent de sauvegarder les données en annulant les modifications en cas de problème, de sorte que les mises à jour partielles ne compromettent pas la base de données. Les transactions rendent également les mises à jour par lots plus fiables dans les environnements multi-utilisateurs, réduisant ainsi le risque de conflits de données.

Pièges et erreurs courants

Certains pièges et erreurs courants peuvent entraîner des erreurs lors de la gestion des mises à jour de plusieurs colonnes. Voyons quelques exemples et comment les éviter.

  • Oublier la clause WHERE: Si vous oubliez d'inclure la clause WHERE dans l'instruction UPDATE, vous risquez de mettre à jour involontairement toutes les lignes des données. Pour éviter cela, assurez-vous toujours que la clause WHERE est correctement définie pour pointer vers les colonnes que vous avez l'intention de mettre à jour.

  • Mauvaise concordance des types de données : Les incohérences entre les types de données peuvent provoquer des erreurs ou entraîner un stockage incorrect des données. Vérifiez toujours que les types de données des valeurs utilisées dans votre requête UPDATE correspondent aux colonnes qu'elles mettent à jour.

Si vous souhaitez en savoir plus sur les types de données et le filtrage des données à l'aide de WHERE, je vous recommande de suivre le cours Intermediate SQL de DataCamp.

Conclusion

Comprendre comment mettre à jour plusieurs colonnes en SQL est important pour l'efficacité et la précision de la base de données. J'espère qu'après avoir lu ceci, vous comprenez que la mise à jour de plusieurs colonnes en même temps est une compétence nécessaire, et que vous ne devez pas essayer de prendre des raccourcis, sous peine de provoquer des transactions partielles ou des états incohérents.

En fonction de votre orientation professionnelle, je vous recommande de vous inscrire à la filière DataCamp Associate Data Analyst in SQL pour acquérir les compétences requises pour devenir analyste de données, ou d'essayer notre filière Associate Date Engineer in SQL si vous souhaitez devenir ingénieur de données. Dans les deux cas, j'essaierais également d'obtenir la certification SQL Associate, qui est un moyen convaincant de démontrer aux employeurs que vous maîtrisez l'utilisation du langage SQL pour résoudre des problèmes commerciaux.


Photo of Allan Ouko
Author
Allan Ouko
LinkedIn
Je crée des articles qui simplifient la science des données et l'analyse, en les rendant faciles à comprendre et accessibles.

FAQ SQL

Puis-je mettre à jour plusieurs colonnes dans SQL en une seule requête ?

Oui, vous pouvez mettre à jour simultanément plusieurs colonnes dans une seule déclaration UPDATE, ce qui améliore l'efficacité et la précision.

Puis-je mettre à jour plusieurs colonnes avec des valeurs différentes pour des lignes différentes ?

Oui, vous pouvez mettre à jour plusieurs lignes avec des valeurs différentes en utilisant des conditions dans la clause WHERE ou en appliquant une logique dans l'instruction CASE.

Que se passe-t-il si j'oublie la clause WHERE lors de la mise à jour de plusieurs colonnes ?

Si vous omettez la clause WHERE, la mise à jour s'appliquera à toutes les lignes de la table, ce qui peut entraîner une modification involontaire des données.

Comment gérer les valeurs NULL lors de la mise à jour de plusieurs colonnes ?

Vous pouvez utiliser la fonction COALESCE pour gérer les valeurs NULL en fournissant des valeurs par défaut lors de la mise à jour.

Puis-je mettre à jour des colonnes en utilisant des données provenant d'un autre tableau ?

Vous pouvez effectuer des mises à jour en joignant des tables, ce qui vous permet de mettre à jour des colonnes sur la base de données connexes provenant d'une autre table.

Sujets

Apprenez SQL avec DataCamp

Certification disponible

cours

Introduction aux bases de données relationnelles en SQL

4 hr
149.6K
Apprenez à créer l'un des moyens les plus efficaces de stocker des données : les bases de données relationnelles !
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow