MySQL - Opérateur OR

Bonjour, aspirants passionnés de bases de données ! Aujourd'hui, nous allons plonger dans le merveilleux monde de MySQL et explorer un de ses opérateurs logiques les plus utiles : l'opérateur OR. D'ici la fin de ce tutoriel, vous utiliserez l'OR comme un pro, ouvrant de nouvelles possibilités dans vos requêtes de base de données. Alors, mettons-nous en route !

MySQL - OR Operator

Opérateur OR dans MySQL

L'opérateur OR dans MySQL est comme avoir un vigile sympathique dans un club qui dit : "Tu peux entrer si tu es sur la liste des invités OU si tu connais le mot de passe secret." Il nous permet de combiner plusieurs conditions dans nos instructions SQL, et si l'une de ces conditions est vraie, le résultat global est vrai.

Voici la syntaxe de base :

condition1 OR condition2 OR condition3 ...

Chaque condition peut être n'importe quelle expression valide MySQL qui renvoie une valeur booléenne (vrai ou faux).

Opérateur OR avec WHERE

L'opérateur OR est le plus souvent utilisé avec la clause WHERE dans les instructions SELECT. Jetons un coup d'œil à un exemple simple :

Imaginez que nous avons une table appelée employees avec les colonnes id, name, department, et salary. Nous voulons trouver tous les employés qui sont soit dans le département IT, soit gagnent plus de 50 000 $.

SELECT * FROM employees
WHERE department = 'IT' OR salary > 50000;

Cette requête renverra toutes les lignes où soit le département est 'IT', soit le salaire est supérieur à 50 000 $, ou les deux conditions sont vraies.

Reprenons cela :

  1. SELECT * : Cela sélectionne toutes les colonnes de la table.
  2. FROM employees : Cela spécifie quelle table nous interrogeons.
  3. WHERE department = 'IT' OR salary > 50000 : C'est notre condition utilisant l'opérateur OR.

Si un employé est dans le département IT mais gagne moins de 50 000 $, il sera inclus. De même, si un employé gagne plus de 50 000 $ mais n'est pas dans l'IT, il sera également inclus. Et bien sûr, les employés de l'IT gagnant plus de 50 000 $ seront inclus aussi !

Utilisation multiple de l'opérateur OR

Maintenant, disons que nous voulons étendre notre recherche. Nous cherchons des employés qui sont soit dans l'IT, soit dans les RH, soit gagnent plus de 50 000 $. Nous pouvons utiliser plusieurs opérateurs OR :

SELECT * FROM employees
WHERE department = 'IT' OR department = 'HR' OR salary > 50000;

Cette requête renverra les employés qui remplissent l'une de ces trois conditions. C'est comme dire : "Donne-moi tout le monde qui correspond à au moins un de ces critères."

Souvenez-vous, plus vous ajoutez de conditions OR, plus vos résultats deviennent inclusifs. C'est comme lancer un filet plus large dans la mer de données !

Opérateur OR avec l'instruction UPDATE

L'opérateur OR n'est pas seulement pour les instructions SELECT. Nous pouvons l'utiliser dans les instructions UPDATE également. Disons que nous voulons donner une prime à tous les employés du département IT ou ceux gagnant moins de 30 000 $ :

UPDATE employees
SET bonus = 1000
WHERE department = 'IT' OR salary < 30000;

Cette requête ajoutera une prime de 1000 $ à quiconque est dans l'IT, quiconque gagne moins de 30 000 $, et bien sûr, les employés de l'IT gagnant moins de 30 000 $.

Opérateur OR avec l'instruction DELETE

Nous pouvons également utiliser OR dans les instructions DELETE. Supposons que nous voulons supprimer tous les employés qui sont soit dans le département 'Temp', soit inactifs depuis plus de 6 mois :

DELETE FROM employees
WHERE department = 'Temp' OR last_active_date < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);

Cette requête supprimera tout employé qui est soit dans le département 'Temp', soit inactif depuis les 6 derniers mois. Soyez prudent avec les instructions DELETE - vérifiez toujours vos conditions avant de les exécuter !

Opérateur OR en utilisant un programme client

Lorsque vous utilisez un programme client MySQL comme l'outil en ligne de commande MySQL, vous pourriez avoir besoin d'utiliser l'opérateur OR d'une manière légèrement différente. Voici un exemple :

mysql> SELECT * FROM employees WHERE department = 'IT' OR salary > 50000\G

Le \G à la fin est une commande spécifique à MySQL qui affiche les résultats verticalement, ce qui peut être plus facile à lire pour les tables large.

Voici un tableau résumant les différentes manières dont nous avons utilisé l'opérateur OR :

Opération Exemple
SELECT SELECT * FROM employees WHERE department = 'IT' OR salary > 50000;
UPDATE UPDATE employees SET bonus = 1000 WHERE department = 'IT' OR salary < 30000;
DELETE DELETE FROM employees WHERE department = 'Temp' OR last_active_date < DATE_SUB(CURDATE(), INTERVAL 6 MONTH);

Souvenez-vous, l'opérateur OR est comme un "soit/cela" sympathique dans vos requêtes SQL. Il vous offre de la flexibilité dans vos opérations de base de données, vous permettant de lancer un filet plus large lors de la recherche ou de la manipulation des données.

Alors que nous terminons, je veux partager une petite histoire de mon expérience d'enseignement. J'avais un étudiant qui avait du mal avec l'opérateur OR. Il le confondait constamment avec AND, pensant que OR lui donnerait moins de résultats. Alors je lui ai dit : "Pense à OR comme à un hôte de fête. Plus tu ajoutes de conditions avec OR, plus de monde est invité à la fête !" Son visage s'est éclairé de compréhension, et depuis ce jour-là, il n'a jamais confondu OR et AND à nouveau.

Pratiquez l'utilisation de l'opérateur OR dans différents scénarios, et bientôt vous le manierez comme un magicien de la base de données ! Bonne requête, et que vos données soient toujours bien organisées et faciles à accéder !

Credits: Image by storyset