Node.js - MySQL Where
Bonjour, futurs programmeurs ! Aujourd'hui, nous allons plonger dans le monde passionnant de Node.js et MySQL, en nous concentrant sur la puissante clause 'WHERE'. En tant que votre professeur de sciences informatiques de quartier, je suis là pour vous guider dans ce voyage, étape par étape. Ne vous inquiétez pas si vous êtes nouveau en programmation - nous allons commencer par les bases et progresser pas à pas. Alors, prenez votre boisson favorite, installez-vous confortablement, et c'est parti !
Introduction à la Clause WHERE
Avant de rentrer dans les détails, comprenons ce qu'est la clause WHERE. Imaginez que vous avez une énorme bibliothèque de livres (notre base de données), et que vous cherchez un type spécifique de livre (notre données). La clause WHERE est comme votre bibliothécaire personnel, vous aidant à trouver exactement ce dont vous avez besoin.
En MySQL, la clause WHERE est utilisée pour filtrer les enregistrements et récupérer uniquement les données nécessaires d'une table. C'est comme dire à votre base de données : "Hé, je ne veux voir que cette information spécifique !"
Commençons avec un exemple simple :
const mysql = require('mysql');
// Créer une connexion
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database'
});
// Se connecter à la base de données
connection.connect((err) => {
if (err) throw err;
console.log('Connecté à la base de données !');
// Requête SQL avec clause WHERE
const sql = "SELECT * FROM customers WHERE country='USA'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Clients des USA :", result);
});
});
Dans cet exemple, nous sélectionnons tous les clients des USA. La clause WHERE country='USA'
filtre nos résultats pour afficher uniquement les clients américains. C'est comme demander à notre bibliothécaire de ne nous donner que des livres d'auteurs américains.
Opérateurs Logiques
Maintenant, rendons les choses un peu plus intéressantes en introduisant les opérateurs logiques. Ceux-ci sont comme les instructions spéciales que vous donnez à notre ami le bibliothécaire pour trouver encore plus de livres spécifiques.
Opérateur AND
L'opérateur AND nous permet de combiner plusieurs conditions. C'est comme dire : "Je veux des livres d'auteurs américains ET publiés après 2000."
const sql = "SELECT * FROM customers WHERE country='USA' AND city='New York'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Clients des USA et de New York :", result);
});
Cette requête renverra les clients qui sont à la fois des USA et spécifiquement de New York.
Opérateur OR
L'opérateur OR nous offre plus de flexibilité. C'est comme dire : "Je veux des livres soit d'auteurs américains SOIT publiés après 2000."
const sql = "SELECT * FROM products WHERE price < 20 OR category='Electronics'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Produits abordables ou électroniques :", result);
});
Cette requête récupère les produits qui sont soit peu chers (moins de 20 $) soit de la catégorie Électroniques.
Opérateur NOT
L'opérateur NOT est utilisé pour l'exclusion. C'est comme dire : "Je veux tous les livres SAUF ceux d'un auteur spécifique."
const sql = "SELECT * FROM employees WHERE NOT department='HR'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Employés hors du service RH :", result);
});
Cette requête récupère tous les employés qui ne sont pas dans le service RH.
Opérateur BETWEEN
L'opérateur BETWEEN est parfait pour les requêtes sur des intervalles. Imaginez demander des livres publiés entre 1990 et 2000.
const sql = "SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Commandes de 2023 :", result);
});
Cette requête récupère toutes les commandes passées en 2023.
Opérateur LIKE
L'opérateur LIKE est notre super-héros de la correspondance de motifs. C'est parfait lorsque vous ne savez pas la valeur exacte mais que vous connaissez une partie de celle-ci. C'est comme demander des livres avec des titres contenant un mot spécifique.
const sql = "SELECT * FROM products WHERE product_name LIKE '%phone%'";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Produits liés aux téléphones :", result);
});
Cette requête trouve tous les produits avec 'phone' dans leur nom. Le '%' est un joker qui représente n'importe quel nombre de caractères.
Opérateur IN
L'opérateur IN est génial lorsque vous avez une liste de valeurs à vérifier. C'est comme demander des livres d'un liste spécifique d'auteurs.
const sql = "SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'Mexico')";
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Clients nord-américains :", result);
});
Cette requête récupère les clients des USA, du Canada ou du Mexique.
Combinaison de Multiples Opérateurs
Maintenant, mettons tout ensemble ! Nous pouvons combiner ces opérateurs pour créer des requêtes complexes. C'est comme donner à notre bibliothécaire une série d'instructions très spécifiques.
const sql = `
SELECT * FROM products
WHERE (category = 'Electronics' OR category = 'Computers')
AND price BETWEEN 100 AND 1000
AND product_name LIKE '%Pro%'
AND brand IN ('Apple', 'Samsung', 'Dell')
`;
connection.query(sql, (err, result) => {
if (err) throw err;
console.log("Produits haut de gamme spécifiques :", result);
});
Cette requête complexe trouve les produits qui sont :
- Dans la catégorie Électroniques ou Ordinateurs
- Pricés entre 100 et 1000 $
- Ont 'Pro' dans leur nom
- Fabriqués par Apple, Samsung ou Dell
Résumé des Méthodes de la Clause WHERE
Voici un tableau pratique résumant les méthodes que nous avons apprises :
Méthode | Description | Exemple |
---|---|---|
WHERE de Base | Condition simple | WHERE country='USA' |
AND | Combinaison de conditions | WHERE country='USA' AND city='New York' |
OR | Condition alternative | WHERE price < 20 OR category='Electronics' |
NOT | Exclusion de condition | WHERE NOT department='HR' |
BETWEEN | Intervalle de valeurs | WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31' |
LIKE | Correspondance de motifs | WHERE product_name LIKE '%phone%' |
IN | Liste de valeurs | WHERE country IN ('USA', 'Canada', 'Mexico') |
Souvenez-vous, la pratique rend parfait ! Essayez de combiner ces méthodes de différentes manières pour créer vos propres requêtes complexes. C'est comme devenir un maître bibliothécaire capable de trouver n'importe quel livre dans la vaste bibliothèque des données !
J'espère que ce tutoriel vous a été utile et amusant. Continuez à coder, continuez à apprendre, et n'oubliez pas de prendre plaisir au processus. Avant de vous en rendre compte, vous serez capable de requêter des bases de données comme un pro !
Credits: Image by storyset