logo oujood
🔍

Node.js - Créer une Table MySQL

OUJOOD.COM

MySQL est un système de gestion de base de données relationnelle (SGBDR) qui utilise SQL pour effectuer des opérations CRUD (Create, Read, Update, Delete) sur les données stockées dans les tables d'une base de données. Ce tutoriel vous montre comment utiliser MySQL avec Node.js pour créer des tables dans une base de données.

Création de table dans MySQL

Dans une base de données relationnelle, une table représente une entité, caractérisée par un ou plusieurs attributs. Chaque ligne d'une table est une instance de cette entité. Chaque instance d'entité est décrite par certaines valeurs des attributs de la table. Une table a généralement un attribut marqué comme clé primaire, contraignant chaque ligne à avoir une valeur unique.

Syntaxe de l'instruction CREATE TABLE

MySQL implémente l'instruction CREATE TABLE conformément aux standards SQL. Voici la syntaxe de base :

📋 Copier le code

CREATE TABLE [IF NOT EXISTS] table_name(
    column1 datatype constraints,
    column2 datatype constraints,
    ...
) ENGINE=storage_engine;
    

Cette syntaxe définit la structure d'une table en précisant le nom de la table, les colonnes, leurs types de données et leurs contraintes. MySQL prend en charge différents types de données, tels que INT, VARCHAR, FLOAT, etc.

Créer une Table dans Node.js

Pour créer une table MySQL à partir de Node.js, suivez ces étapes :

  • Inclure le module mysql.
  • Appeler la fonction createConnection() pour obtenir un objet de connexion.
  • Utiliser la méthode query() pour exécuter la requête CREATE TABLE.

Exemple de Code pour Créer une Table

Voici un exemple de code Node.js qui crée une table employee dans la base de données madb :

📋 Copier le code

var mysql = require('mysql');
var con = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "mypassword",
    database: "madb"
});

var qry = 'CREATE TABLE IF NOT EXISTS employee ( \
    id INT AUTO_INCREMENT PRIMARY KEY, \
    name VARCHAR(20) NOT NULL, \
    age INT, \
    salary FLOAT \
)';

con.connect(function (err) {
    if (err) throw err;
    console.log("Connecté !");
    con.query(qry, function (err, result) {
        if (err) throw err;
        console.log("Table créée avec succès");
    });
    con.query("SHOW TABLES;", function (err, result) {
        if (err) throw err;
        console.log("Affichage des tables\n");
        for (var i = 0; i < result.length; i++) {
            console.log(JSON.stringify(result[i]));
        }
    });
    con.end();
});
    

Le code ci-dessus crée une table employee dans la base de données madb avec les colonnes id, name, age, et salary. Il vérifie également si la table existe déjà et affiche toutes les tables dans la base de données après la création.

Afficher les Tables et la Structure de la Table

Après avoir créé la table, vous pouvez lister toutes les tables avec la requête SHOW TABLES. Vous pouvez aussi afficher la structure de la table avec la requête DESC.

📋 Copier le code

con.query("DESC employee;", function (err, result) {
    if (err) throw err;
    console.log(JSON.stringify(result));
});
    

Le résultat de la commande DESC affichera les champs, les types et les contraintes de chaque colonne de la table employee.

Exemple de Sortie

[
    {"Field":"id","Type":"int","Null":"NO","Key":"PRI","Default":null,"Extra":"auto_increment"},
    {"Field":"name","Type":"varchar(20)","Null":"NO","Key":"","Default":null,"Extra":""},
    {"Field":"age","Type":"int","Null":"YES","Key":"","Default":null,"Extra":""},
    {"Field":"salary","Type":"float","Null":"YES","Key":"","Default":null,"Extra":""}
]
    

Dans l'exemple ci-dessus, nous avons la structure de la table employee avec des informations sur chaque champ, tel que le type de données, les contraintes, et les valeurs par défaut.


Comment déterminer la structure des colonnes d'une table MySQL

Dans cet article, nous allons apprendre comment obtenir la structure des colonnes d'une table dans MySQL et explorer les différents types de données disponibles. Que vous soyez débutant ou initié, ce guide est conçu pour vous accompagner étape par étape.

1. Déterminer la structure des colonnes

Pour voir la structure des colonnes d'une table, MySQL propose plusieurs commandes que vous pouvez utiliser directement dans votre terminal ou via un outil comme phpMyAdmin.

1.1 La commande DESCRIBE

La commande DESCRIBE ou son alias DESC permet de voir les colonnes d'une table, leur type, leurs contraintes, etc.

📋 Copier le code

DESCRIBE nom_de_la_table;
            

Explication : Cette commande liste :

  • Field : Le nom de chaque colonne.
  • Type : Le type de données de la colonne.
  • Null : Indique si la colonne accepte des valeurs NULL.
  • Key : Spécifie si la colonne est une clé (PRI, UNI, MUL).
  • Default : La valeur par défaut.
  • Extra : Informations supplémentaires (comme auto_increment).

2. Types de données dans MySQL

MySQL propose une variété de types de données pour répondre à des besoins spécifiques. Voici une liste de définitions des principaux types de données :

Types numériques :
  • TINYINT : Entier de très petite taille (1 octet).
  • SMALLINT, MEDIUMINT, INT, BIGINT : Entiers de tailles croissantes.
  • DECIMAL, NUMERIC : Nombres à virgule fixe, précis pour les calculs financiers.
  • FLOAT, DOUBLE : Nombres à virgule flottante.
Types de chaînes de caractères :
  • CHAR : Chaîne de longueur fixe (1 à 255 caractères).
  • VARCHAR : Chaîne de longueur variable (jusqu’à 65535 caractères).
  • TEXT : Texte de taille variable (jusqu’à 4 Go, selon la variante).
  • BLOB : Données binaires de taille variable, souvent utilisées pour les images ou fichiers.
Types de date et heure :
  • DATE : Représente une date (AAAA-MM-JJ).
  • DATETIME : Date et heure combinées.
  • TIMESTAMP : Stocke des horodatages UNIX.
  • TIME : Représente une durée ou une heure (HH:MM:SS).
  • YEAR : Année, sous forme de 4 chiffres (AAAA).
Autres types :
  • JSON : Stocke des données JSON.
  • ENUM : Liste prédéfinie de valeurs.
  • SET : Ensemble de valeurs prédéfinies.

Voici une liste de définitions pour les contraintes utilisées dans MySQL, sous forme de liste de définition :

PRIMARY KEY
Identifie de manière unique chaque enregistrement dans une table. Une table ne peut avoir qu'une seule clé primaire, et cette colonne ne peut contenir ni doublons ni valeurs NULL.
FOREIGN KEY
Établit une relation entre deux tables. Elle garantit que les valeurs de la colonne correspondent aux valeurs d'une colonne référencée dans une autre table, souvent une clé primaire.
UNIQUE
Empêche l'insertion de doublons dans une colonne. Contrairement à PRIMARY KEY, une table peut avoir plusieurs contraintes UNIQUE.
NOT NULL
Assure qu'une colonne ne peut pas contenir de valeur NULL. Toutes les valeurs doivent être définies lors de l'insertion ou de la mise à jour.
DEFAULT
Attribue une valeur par défaut à une colonne lorsqu'aucune valeur explicite n'est fournie lors de l'insertion.
CHECK
Permet de définir une condition que les valeurs de la colonne doivent satisfaire. Par exemple, restreindre une colonne âge pour accepter uniquement des valeurs positives.
AUTO_INCREMENT
Utilisée pour générer automatiquement des valeurs uniques et incrémentées dans une colonne, souvent avec une clé primaire.
INDEX
Améliore la performance des requêtes en créant un index sur une ou plusieurs colonnes. Les index peuvent être UNIQUE ou non, selon les besoins.
ON DELETE
Définit le comportement lorsqu'un enregistrement référencé par une clé étrangère est supprimé. Les options courantes sont CASCADE (supprime les enregistrements associés) et SET NULL (remplace les valeurs par NULL).
ON UPDATE
Spécifie le comportement lorsqu'une clé étrangère est mise à jour. Par exemple, CASCADE mettra à jour les enregistrements associés avec la nouvelle valeur.

Explication des contraintes :

  • 1. Ces définitions permettent de mieux comprendre comment contrôler et sécuriser les données dans une table MySQL.
  • 2. Chaque contrainte joue un rôle crucial dans l'intégrité des données, les relations entre tables et les performances des requêtes.

3. Conclusion

En utilisant les commandes comme DESCRIBE, vous pouvez identifier la structure des colonnes dans une table MySQL. Les types de données proposés par MySQL vous permettent d'optimiser vos bases de données en fonction des besoins spécifiques de votre application.