MySQL - Opérateur NOT

Salut à toi, futur magicien de la base de données ! Aujourd'hui, nous allons plonger dans le monde magique de l'opérateur NOT de MySQL. Ne t'inquiète pas si tu es nouveau dans ce domaine - je vais être ton guide amical à travers cette aventure, et à la fin, tu vas manier l'opérateur NOT comme un pro !

MySQL - NOT Operator

Opérateur NOT en MySQL

L'opérateur NOT est comme le rebelle du monde MySQL. Il s'agit de négation, de renverser les choses et de dire "non" aux conditions. Imagine que tu es un enseignant (comme moi !) et que tu veux trouver tous les élèves qui n'ont pas rendu leur devoir. C'est là que NOT devient pratique !

Commençons par un exemple simple :

SELECT * FROM students WHERE NOT grade = 'A';

Cette requête va chercher tous les élèves qui n'ont pas eu une note A. C'est comme dire : "Montre-moi tout le monde sauf les élèves qui ont eu A." Pretty cool, non ?

Voici un autre exemple :

SELECT * FROM products WHERE NOT price > 100;

Cette requête nous donnera tous les produits qui ne coûtent pas plus de 100 $. C'est une manière sournoise de dire "Montre-moi les produits qui coûtent 100 $ ou moins."

NOT avec l'Opérateur IN

Maintenant, levons le niveau et combinons NOT avec l'opérateur IN. L'opérateur IN est comme une liste VIP, et NOT IN dit "tout le monde qui n'est pas sur la liste."

SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');

Cette requête montrera tous les fruits sauf les pommes, les bananes et les oranges. C'est comme avoir un bol de fruits et choisir tout ce qui n'est pas ces trois fruits.

NOT avec l'Opérateur IS NULL

Les valeurs NULL dans les bases de données sont comme des fantômes - elles sont là, mais pas vraiment. L'opérateur NOT IS NULL nous aide à trouver toutes les valeurs non-fantômes.

SELECT * FROM customers WHERE phone_number IS NOT NULL;

Cette requête trouvera tous les clients qui ont fourni un numéro de téléphone. C'est comme crier "Marco !" et attendre que tout le monde qui peut répondre "Polo !"

NOT avec l'Opérateur LIKE

L'opérateur LIKE est utilisé pour le filtrage par motif, et NOT LIKE est son jumeau espiègle. Il est parfait pour trouver des choses qui ne correspondent pas à un certain motif.

SELECT * FROM books WHERE title NOT LIKE 'The%';

Cette requête trouvera tous les livres dont les titres ne commencent pas par "The". C'est comme organiser une étagère de livres et mettre tous les livres "The" d'un côté et tout le reste de l'autre.

NOT avec l'Opérateur BETWEEN

BETWEEN nous aide à trouver des valeurs dans une plage, et NOT BETWEEN fait l'inverse. C'est comme mettre en place une zone "Enfants Seulement" et puis trouver tout le monde qui n'est pas autorisé à entrer.

SELECT * FROM employees WHERE age NOT BETWEEN 25 AND 35;

Cette requête trouvera tous les employés qui sont soit plus jeunes que 25 ans, soit plus âgés que 35 ans. C'est une excellente façon de segmenter vos données !

NOT avec l'Instruction UPDATE

L'opérateur NOT n'est pas seulement pour les instructions SELECT. Nous pouvons l'utiliser dans les instructions UPDATE aussi ! Voici un exemple :

UPDATE inventory SET in_stock = 0 WHERE NOT product_id IN (101, 102, 103);

Cette requête met à jour l'inventaire, définissant tous les produits comme étant en rupture de stock sauf les produits avec les IDs 101, 102 et 103. C'est comme nettoyer votre magasin mais garder quelques articles spéciaux disponibles.

NOT avec l'Instruction DELETE

Nous pouvons également utiliser NOT dans les instructions DELETE. Soyez prudent avec celui-ci - il est puissant !

DELETE FROM old_records WHERE NOT date_created > '2020-01-01';

Cela supprimera tous les enregistrements créés avant 2020. C'est comme faire un grand nettoyage et ne garder que les éléments plus récents.

Opérateur NOT Utilisé dans un Programme Client

Maintenant, voyons comment nous pouvons utiliser l'opérateur NOT dans un programme client. Voici un exemple simple en Python utilisant le MySQL Connector :

import mysql.connector

# Connecter à la base de données
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# Exécuter une requête avec NOT
query = "SELECT * FROM students WHERE NOT grade = 'F'"
cursor.execute(query)

# Récupérer et imprimer les résultats
for (id, name, grade) in cursor:
print(f"Étudiant {id}: {name} - Note: {grade}")

# Fermer la connexion
cursor.close()
cnx.close()

Ce script se connecte à une base de données MySQL, exécute une requête pour trouver tous les élèves qui n'ont pas eu une F, et imprime leurs informations. C'est comme faire une journée de bulletins de notes, mais seulement pour les élèves qui ont réussi !

Et voilà, les amis ! Vous venez de faire une visite express de l'opérateur NOT de MySQL. Souvenez-vous, dans le monde des bases de données, il est parfois tout aussi important de savoir ce que vous ne voulez pas que ce que vous voulez. L'opérateur NOT est votre fidèle compagnon dans ces situations.

Continuez à pratiquer, restez curieux, et avant que vous ne vous en rendiez compte, vous serez un expert en NOT ! Bonne chance avec vos requêtes !

Credits: Image by storyset