Accéder au contenu principal

Opérateur SQL OR : guide avec exemples

L’opérateur OR en SQL permet de filtrer des données en combinant plusieurs conditions et de renvoyer les lignes où au moins une condition est vraie. Découvrez comment utiliser OR avec INSERT, UPDATE et DELETE pour modifier des enregistrements.
Actualisé 19 sept. 2026  · 8 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

L’opérateur logique OR en SQL s’utilise dans les requêtes pour filtrer des données selon plusieurs conditions. Il est généralement utilisé dans la clause WHERE pour renvoyer les résultats qui satisfont les conditions indiquées. Cette flexibilité fait de OR un outil clé pour des extractions de données souples.

Dans ce tutoriel, je vous présente, à l’aide d’exemples concrets, les différents cas d’usage de l’opérateur OR dans les requêtes SQL. Si vous débutez en analyse de données ou en SQL, je vous recommande le cours Introduction to SQL de DataCamp pour assimiler les bases. La fiche mémo SQL Basics vous aidera également à retrouver rapidement les opérateurs et fonctions courants pour interroger, filtrer et agréger des données.

Qu’est-ce que l’opérateur SQL OR ?

L’opérateur OR s’emploie généralement avec la clause WHERE pour filtrer les données. Dans une requête, OR renverra les lignes où au moins l’une des conditions spécifiées est vraie.

La requête suivante renverra tous les enregistrements de la table employees appartenant au service RH ou ayant un salaire supérieur à 60 000 $. Si une ligne remplit l’une ou l’autre des conditions, elle est incluse dans les résultats.

-- Sélectionner les lignes où le département est 'HR' OU le salaire est supérieur à 60 000
SELECT *
FROM employees
WHERE department = 'HR'
OR salary > 60000;

Exemple de sortie de table filtrée avec l’opérateur SQL OR

Exemple de sortie de table filtrée à l’aide de l’opérateur SQL OR. Image : auteur.

Pour aller plus loin sur OR et les autres opérateurs de filtrage conditionnel, explorez le cours Intermediate SQL de DataCamp.

Obtenez une certification SQL de haut niveau

Démontrez vos compétences de base en SQL et faites progresser votre carrière dans le domaine des données.
Obtenez La Certification SQL

Syntaxe de l’opérateur SQL OR

L’opérateur OR est simple à utiliser et à intégrer dans vos requêtes SQL. Voici la syntaxe de base dans une instruction SELECT.

SELECT column1, column2, ...
FROM table_name
WHERE condition1
OR condition2
OR condition3;

Notez que vous pouvez utiliser plusieurs conditions OR dans la clause WHERE.

Utilisation basique dans une instruction SELECT

Dans une instruction SELECT, l’opérateur OR permet de renvoyer les enregistrements qui vérifient au moins l’une des conditions. Il est utile pour récupérer des lignes sans multiplier les requêtes complexes.

Dans l’exemple ci-dessous, OR filtre tous les employés basés à « New York » ou « Los Angeles ».

-- Sélectionner les employés de New York ou de Los Angeles
SELECT first_name, last_name, city
FROM employees
WHERE city = 'New York'
OR city = 'Los Angeles';

Combiner OR et AND en SQL

Vous pouvez combiner OR avec AND pour exprimer des conditions plus complexes. Lorsque vous utilisez OR et AND ensemble, utilisez des parenthèses pour contrôler l’ordre d’évaluation.

Considérez la requête suivante : nous voulons sélectionner tous les employés du service IT et qui vivent à « New York » (premier groupe de conditions), ou ceux qui gagnent plus de 70 000 $. Les parenthèses regroupent la condition AND pour l’évaluer comme un tout avant d’appliquer OR.

-- Sélection des colonnes
SELECT first_name, last_name, department, city, salary
FROM employees
 -- Regrouper le département IT à New York
WHERE (department = 'IT' AND city = 'New York')
-- Employés avec un salaire supérieur à 70 000
OR salary > 70000;

Exemple de sortie en combinant OR et AND.

Exemple de résultat de table filtrée en combinant les opérateurs OR et AND. Image : auteur.

La requête ci-dessus renvoie :

  • Les employés qui travaillent au service IT et vivent à New York.

  • Ou tout employé gagnant plus de 70 000 $, quel que soit son service ou sa ville.

Lorsque vous combinez OR et AND, regroupez correctement les conditions avec des parenthèses. Une mauvaise structure peut entraîner des erreurs logiques et des résultats inattendus.

Sans parenthèses, la condition AND est évaluée avant la condition OR. Utiliser correctement les parenthèses permet d’imposer l’ordre d’évaluation souhaité.

Exemples d’utilisation de l’opérateur SQL OR

L’opérateur OR s’emploie dans différentes requêtes SQL pour extraire des enregistrements ou manipuler des données. Voici quelques cas d’usage.

Filtrer des données avec plusieurs conditions

OR sert principalement à filtrer des enregistrements sur deux conditions ou plus. Cette approche est utile pour élargir les critères de recherche dans une base de données. L’exemple suivant renvoie les employés de New York ou ayant un salaire supérieur à 80 000 $.

-- Sélection des colonnes
SELECT first_name, last_name, department, city, salary
FROM employees
 -- Employés à New York
WHERE city = 'New York'
-- Employés avec un salaire supérieur à 80 000
OR salary > 80000;

Utiliser OR dans une instruction INSERT

Vous pouvez utiliser OR avec INSERT pour insérer de nouveaux enregistrements lorsqu’une condition est remplie. Dans l’exemple ci-dessous, la requête insère un nouvel enregistrement dans la table employees si l’employé appartient au service RH ou s’il gagne plus de 60 000 $. La requête suivante fonctionne avec SQL Server, MySQL et PostgreSQL.

-- Insérer un nouvel enregistrement dans la table 'employees'
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
 -- Première condition : le département est 'HR'
WHERE 'HR' = 'HR' 
 -- Deuxième condition : salaire supérieur à 60 000 $
   OR 62000 > 60000;

Dans Oracle, l’instruction INSERT diffère : elle requiert une clause FROM sur la table spéciale dual (une ligne, une colonne). Suivez notre cours Introduction to SQL Server si vous travaillez spécifiquement avec SQL Server.  

-- Insérer un nouvel enregistrement dans la table 'employees'
INSERT INTO employees (employee_id, first_name, last_name, department, salary, city)
SELECT 49, 'Anna', 'Johnson', 'HR', 62000, 'New York'
FROM dual
WHERE 'HR' = 'HR'  -- Première condition : département 'HR'
   OR 62000 > 60000;  -- Deuxième condition : salaire supérieur à 60 000 $

Utiliser OR dans une instruction UPDATE

L’instruction UPDATE permet de modifier des enregistrements existants. En la combinant avec OR, vous ne mettez à jour que les lignes qui vérifient l’une des conditions spécifiées.

Dans l’exemple ci-dessous, nous augmentons le salaire d’un employé s’il appartient au service Finance ou s’il vit à Chicago.

-- Mettre à jour le salaire d'employés
UPDATE employees
-- Augmentation de 10 %
SET salary = salary * 1.1  
-- Première condition : département 'Finance'
WHERE department = 'Finance' 
 -- Deuxième condition : employés à Chicago
OR city = 'Chicago';

Utiliser OR dans une instruction DELETE

De même, l’instruction DELETE sert à supprimer des enregistrements existants. Avec OR, vous pouvez supprimer des lignes selon des conditions précises.

La requête ci-dessous supprime les enregistrements de employees pour les employés basés à Chicago ou gagnant 60 000 $.

-- Supprimer des enregistrements de la table 'employees'
DELETE FROM employees
-- Première condition : employés de Chicago
WHERE city = 'Chicago'
-- Deuxième condition : employés gagnant 60000
OR salary = 60000;

Considérations de performance avec des requêtes SQL OR

Sur de grands volumes de données, l’opérateur OR peut dégrader les performances, notamment lors du filtrage. Voici les problématiques courantes et des pistes pour les atténuer.

Parcours complets de table

Avec de gros jeux de données, OR peut entraîner des scans complets de table, surtout en l’absence d’index adéquats. Cela ralentit l’exécution car la table est évaluée ligne par ligne. Pour éviter cela, indexez les colonnes pertinentes afin que le moteur puisse localiser plus vite les lignes à analyser.

Évaluation de conditions complexes

L’évaluation de multiples conditions via OR peut sensiblement ralentir la requête, surtout si l’indexation est insuffisante. Face à des OR complexes, restructurez la requête en sous-requêtes ou parties plus petites pour améliorer les performances.

Conditions redondantes

Multiplier les conditions OR inutiles peut ralentir la requête, car elles doivent toutes être évaluées. Limitez-vous aux conditions nécessaires et plausibles pour simplifier et accélérer l’exécution.

Alternatives à l’opérateur OR

En cas de problèmes de performance avec OR, envisagez ces alternatives pour filtrer sur plusieurs conditions.

Utiliser l’opérateur UNION

L’opérateur UNION combine les résultats de deux instructions SELECT ou plus, notamment lorsque des index différents s’appliquent. Dans la requête ci-dessous, UNION rassemble les résultats pour renvoyer les enregistrements des employees du department IT à New York city. Consultez notre tutoriel UNION vs UNION ALL en SQL si vous ne maîtrisez pas encore UNION

-- Préférer UNION à OR pour de meilleures performances
SELECT first_name, last_name, department, city
FROM employees
-- Première condition
WHERE department = 'IT'  
UNION
SELECT first_name, last_name, department, city
FROM employees
-- Deuxième condition
WHERE city = 'New York'; 

Utiliser des instructions CASE

L’instruction CASE est une alternative pertinente à OR lorsque vous devez intégrer de la logique dans la requête. Selon le plan d’exécution optimal, CASE peut améliorer les performances. La requête suivante utilise CASE pour catégoriser les départements selon plusieurs conditions.

-- Sélectionner le prénom, le nom et une catégorie dérivée selon des conditions
SELECT first_name, last_name,  
-- Utiliser CASE pour déterminer la catégorie selon le département ou la ville
CASE  
-- Si le département est 'IT', catégoriser 'Tech' ; si la ville est 'New York', catégoriser 'NYC'
  WHEN department = 'IT' THEN 'Tech'  
  WHEN city = 'New York' THEN 'NYC'  -- 
  ELSE 'Other'
END AS category
FROM employees; 

Parcourez notre parcours de compétences SQL Fundamentals pour approfondir l’opérateur UNION et l’instruction CASE appliqués à la manipulation de données.

Devenez certifié SQL

Prouvez que vos compétences en SQL sont prêtes à l'emploi grâce à une certification.

Conclusion

L’opérateur OR est un atout polyvalent pour construire des requêtes SQL à la fois souples et complexes. Il vous permet de filtrer des enregistrements selon plusieurs conditions et, comme nous l’avons vu, de modifier des données lorsqu’il est utilisé avec INSERT, UPDATE et DELETE. En tant qu’analyste, il est essentiel de comprendre les impacts de performance liés à OR ainsi que les approches alternatives, comme UNION et les instructions CASE WHEN.

Je vous encourage à pratiquer l’utilisation de OR sur différents jeux de données afin d’être à l’aise avec ses subtilités. Pour faire progresser vos compétences SQL, explorez notre parcours métier Associate Data Analyst in SQL et gagnez en expertise. Le cours Reporting in SQL vous aidera à analyser et présenter vos données dans des tableaux de bord. Enfin, je vous recommande d’obtenir la certification SQL Associate de DataCamp pour attester vos compétences en analyse de données avec SQL.


Allan Ouko's photo
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.

Questions fréquentes sur SQL

Quelle est la différence entre les opérateurs OR et AND en SQL ?

L’opérateur OR renvoie des résultats si au moins une condition est vraie, tandis que AND n’en renvoie que si toutes les conditions sont vraies.

Peut-on utiliser OR avec AND dans une même requête ?

Vous pouvez combiner les opérateurs OR et AND pour filtrer des enregistrements selon plusieurs conditions. Utilisez toutefois des parenthèses pour regrouper les conditions et définir l’ordre d’exécution.

Existe-t-il une limite au nombre de conditions OR en SQL ?

Il n’y a pas de limite au nombre de conditions utilisables avec OR, mais un excès de conditions peut nuire aux performances.

Peut-on utiliser OR pour modifier des données dans les tables ?

Oui. Vous pouvez utiliser OR avec les instructions INSERT, UPDATE et DELETE pour modifier des enregistrements ciblés dans une table.

Quelles sont les alternatives SQL à l’opérateur OR ?

Les alternatives à OR pour filtrer sur plusieurs conditions incluent l’opérateur UNION et les instructions CASE WHEN.

Sujets
SQL
Analyse des données