logo oujood
🔍

Node.js et MySQL : Créez Votre Base de Données et Triez vos Données avec ORDER BY


OUJOOD.COM

Dans ce tutoriel, nous allons automatiser complètement la création de la base de données MySQL et apprendre à trier vos données avec la clause ORDER BY dans une application Node.js.

Prérequis

Avant de commencer, assurez-vous d'avoir installé les outils suivants :

Dans ce tutoriel complet, découvrez comment utiliser la clause ORDER BY en SQL pour trier vos données dans une application Node.js connectée à une base de données MySQL. Ce guide est conçu pour les débutants comme pour les développeurs avancés.

Introduction à la Clause ORDER BY

La clause ORDER BY est utilisée en SQL pour trier les résultats d'une requête selon une ou plusieurs colonnes. Vous pouvez trier par ordre croissant (ASC) ou décroissant (DESC).

Mots-clés Importants

  • ORDER BY : Clause SQL pour trier les résultats.
  • ASC : Tri par ordre croissant (par défaut).
  • DESC : Tri par ordre décroissant.

Étape 1 : Préparer votre Environnement

Avant de commencer, assurez-vous d'avoir les outils suivants installés :

  • Node.js et npm
  • MySQL

Initialiser le Projet Node.js

Nous avons besoin d'un dossier pour notre projet. Pour créer ce dossier, dans le terminal tapez le code suivant:

📋 Copier le code

mkdir nodejs-order-by-tutorial
cd nodejs-order-by-tutorial
npm init -y
npm install mysql2

Explication :

  • mkdir : Crée un dossier pour votre projet. C'est dans ce dossier que seront stocker tous les fichiers du projet
  • npm init -y : Initialise un projet Node.js avec des paramètres par défaut.
  • npm install mysql2 : Installe la bibliothèque mysql2 pour interagir avec MySQL.

Étape 2 : Créer la Base de Données et la Table

Créez un fichier appelé createDatabase.js et ajoutez-y le code suivant :

📋 Copier le code

const mysql = require('mysql2');

// Configuration de la connexion
const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: ''
});

function executeQuery(query, callback) {
    connection.query(query, (err, results) => {
        if (err) throw err;
        console.log('Requête exécutée avec succès :', query);
        callback();
    });
}

executeQuery('CREATE DATABASE IF NOT EXISTS test_db', () => {
    console.log('Base de données "test_db" créée.');

    executeQuery('USE test_db', () => {
        const createTableQuery = `
            CREATE TABLE IF NOT EXISTS employees (
                id INT AUTO_INCREMENT PRIMARY KEY,
                name VARCHAR(100),
                age INT,
                hire_date DATE
            )
        `;
        executeQuery(createTableQuery, () => {
            console.log('Table "employees" créée.');
            connection.end();
        });
    });
});

Explication :

  • CREATE DATABASE IF NOT EXISTS test_db : Crée une base de données si elle n'existe pas déjà.
  • CREATE TABLE IF NOT EXISTS employees : Crée une table avec des champs spécifiques.

Exécutez le script dans le terminal avec le code suivant :

node createDatabase.js

Étape 3 : Insérer des Données

Pour ajoutez du contenu à votre table, créez un fichier "insertData.js" avec ce script :

📋 Copier le code

const mysql = require('mysql2');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'test_db'
});

connection.connect((err) => {
    if (err) throw err;
    console.log('Connecté à la base de données MySQL !');

    const insertDataQuery = `
        INSERT INTO employees (name, age, hire_date) VALUES 
        ('Alice', 30, '2020-05-15'),
        ('Bob', 25, '2019-08-20'),
        ('Charlie', 35, '2018-03-10')
    `;
    connection.query(insertDataQuery, (err, results) => {
        if (err) throw err;
        console.log('Données insérées avec succès.');
        connection.end();
    });
});

Explication :

  • INSERT INTO employees : Ajoute des lignes dans la table employees.

Exécutez le script dans le terminal avec le code suivant :

node insertData.js

Étape 4 : Utiliser ORDER BY

Tri Ascendant (ASC)

Exemple de tri par âge croissant :

Pour ajoutez du contenu à votre table, créez un fichier "orderByAsc.js" avec ce script :

📋 Copier le code

const mysql = require('mysql2');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'test_db'
});

connection.connect((err) => {
    if (err) throw err;
    console.log('Connecté à la base de données MySQL !');

    const query = 'SELECT * FROM employees ORDER BY age ASC';
    connection.query(query, (err, results) => {
        if (err) throw err;
        console.log('Résultats triés par âge (ascendant) :', results);
        connection.end();
    });
});

Explication :

  • ORDER BY age ASC : Trie les résultats par la colonne age en ordre croissant.

Exécutez le script dans le terminal avec le code suivant :

node orderByAsc.js

Tri Descendant (DESC)

Exemple de tri par date d'embauche décroissante :

Pour ajoutez du contenu à votre table, créez un fichier "orderByDesc.js" avec ce script :

📋 Copier le code

const mysql = require('mysql2');

const connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'test_db'
});

connection.connect((err) => {
    if (err) throw err;
    console.log('Connecté à la base de données MySQL !');

    const query = 'SELECT * FROM employees ORDER BY hire_date DESC';
    connection.query(query, (err, results) => {
        if (err) throw err;
        console.log('Résultats triés par date d\'embauche (descendant) :', results);
        connection.end();
    });
});

Explication :

  • ORDER BY hire_date DESC : Trie les résultats par la colonne hire_date en ordre décroissant.

Exécutez le script dans le terminal avec le code suivant :

node orderByDesc.js

Bonnes Pratiques

  • Sécurité : Évitez de stocker des informations sensibles directement dans votre code.
  • Optimisation : Utilisez des index sur les colonnes fréquemment utilisées dans les clauses ORDER BY.

Conclusion

Avec ce tutoriel, vous avez appris à utiliser la clause ORDER BY pour trier vos données dans une application Node.js connectée à MySQL. Explorez davantage les possibilités de SQL pour améliorer vos requêtes et automatiser vos processus.