Node.js - MySQL Sélectionner à partir de
Bonjour, aspirants programmeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant dans le monde de Node.js et MySQL. En tant que votre enseignant de sciences informatiques bienveillant, je suis là pour vous guider à travers le processus de récupération de données depuis une base de données MySQL en utilisant Node.js. Ne vous inquiétez pas si vous êtes nouveau dans la programmation - nous allons commencer par les bases et progresser pas à pas. Alors, prenez une tasse de café (ou votre boisson favorite) et plongons dedans !
Qu'est-ce que Node.js et MySQL ?
Avant de nous plonger dans le code, comprenons rapidement ce que sont Node.js et MySQL :
- Node.js : C'est un puissant environnement d'exécution JavaScript qui vous permet d'exécuter JavaScript sur votre ordinateur, pas seulement dans un navigateur web.
- MySQL : C'est un système de base de données populaire qui stocke et gère les données pour vos applications.
Imaginez Node.js comme un chef talentueux et MySQL comme un réfrigérateur bien organisé. Notre chef (Node.js) a besoin de récupérer des ingrédients (données) du réfrigérateur (MySQL) pour créer des plats délicieux (applications web). Aujourd'hui, nous allons apprendre comment notre chef peut efficacement récupérer ces ingrédients !
Configuration de notre environnement
Premièrement, nous devons configurer notre cuisine (environnement de développement). Voici ce que vous devez faire :
- Installez Node.js à partir du site officiel (https://nodejs.org).
- Installez MySQL à partir du site officiel (https://www.mysql.com).
- Créez un nouveau répertoire pour votre projet.
- Ouvrez un terminal ou une invite de commandes dans ce répertoire.
- Exécutez
npm init -y
pour créer un fichier package.json. - Installez le package MySQL en exécutant
npm install mysql
.
Super ! Maintenant, notre cuisine est prête pour des merveilles de codage !
Connexion à MySQL
Commençons par établir une connexion à notre base de données MySQL. Voici un exemple :
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
connection.connect((err) => {
if (err) {
console.error('Erreur de connexion à la base de données : ' + err.stack);
return;
}
console.log('Connecté à la base de données.');
});
Reprenons cela :
- Nous importons le package MySQL.
- Nous créons un objet de connexion avec les détails de notre base de données.
- Nous utilisons la méthode
connect()
pour établir la connexion. - Si il y a une erreur, nous la journalisons. Sinon, nous confirmons la connexion.
N'oubliez pas de remplacer 'your_username'
, 'your_password'
, et 'your_database_name'
avec vos informations de connexion MySQL réelles.
Requête SELECT de base
Maintenant que nous sommes connectés, récupérons quelques données ! Voici une requête SELECT simple :
connection.query('SELECT * FROM users', (error, results, fields) => {
if (error) throw error;
console.log('Les utilisateurs sont : ', results);
});
Cette requête sélectionne toutes les colonnes (*) de la table 'users'. Les résultats sont retournés dans la fonction de rappel. Si il y a une erreur, nous la lançons. Sinon, nous journalisons les résultats.
SELECT avec clause WHERE
Souvent, nous voulons récupérer des données spécifiques. Utilisons une clause WHERE :
const userId = 1;
connection.query('SELECT * FROM users WHERE id = ?', [userId], (error, results) => {
if (error) throw error;
console.log('Utilisateur trouvé : ', results[0]);
});
Ici, nous sélectionnons un utilisateur avec un ID spécifique. Le '?' est un placeholder, et [userId] est la valeur à le remplacer. Cela empêche les attaques par injection SQL - utilisez toujours des placeholders pour les entrées utilisateur !
SELECT avec ORDER BY
Vous souhaitez trier vos résultats ? Utilisez ORDER BY :
connection.query('SELECT * FROM users ORDER BY name ASC', (error, results) => {
if (error) throw error;
console.log('Utilisateurs triés par nom : ', results);
});
Cette requête trie les utilisateurs par leur nom en ordre ascendant. Changez ASC en DESC pour un ordre descendant.
SELECT avec LIMIT
Pour limiter le nombre de résultats, utilisez LIMIT :
connection.query('SELECT * FROM users LIMIT 5', (error, results) => {
if (error) throw error;
console.log('Premiers 5 utilisateurs : ', results);
});
Cette requête retourne seulement les premiers 5 utilisateurs de la table.
Combinaison de plusieurs clauses
Combinons ce que nous avons appris :
const searchName = 'John';
const limit = 10;
connection.query(
'SELECT * FROM users WHERE name LIKE ? ORDER BY created_at DESC LIMIT ?',
['%' + searchName + '%', limit],
(error, results) => {
if (error) throw error;
console.log('Résultats de la recherche : ', results);
}
);
Cette requête complexe :
- Recherche des utilisateurs dont les noms contiennent 'John'
- Trie les résultats par date de création (plus récents en premier)
- Limite les résultats à 10
Fermeture de la connexion
N'oubliez jamais de fermer votre connexion lorsque vous avez terminé :
connection.end((err) => {
if (err) {
console.error('Erreur de fermeture de la connexion : ' + err.stack);
return;
}
console.log('Connexion fermée avec succès.');
});
Cela garantit que vous n'avez pas de connexions ouvertes, ce qui pourrait entraîner des problèmes de performance.
Résumé des méthodes
Voici un tableau pratique résumant les méthodes que nous avons couvertes :
Méthode | Description |
---|---|
createConnection() |
Crée une connexion à la base de données MySQL |
connect() |
Établit la connexion à la base de données |
query() |
Exécute une requête SQL |
end() |
Ferme la connexion à la base de données |
Conclusion
Félicitations ! Vous venez d'apprendre à effectuer des requêtes SELECT en utilisant Node.js et MySQL. Souvenez-vous, la pratique rend parfait. Essayez de créer différentes requêtes, expérimentez avec diverses clauses, et bientôt vous serez un magicien de la base de données !
Pour conclure, voici un peu d'humour programmation : Pourquoi les programmeurs préfèrent-ils le mode sombre ? Parce que la lumière attire les bugs ! ?
Continuez à coder, restez curieux, et n'oubliez pas de vous amuser en cours de route. Jusqu'à la prochaine fois, bon codage et bon querying !
Credits: Image by storyset