Opérations de Gestion des Tables dans MySQL et MariaDB

Les moteurs de stockage déterminent le mécanisme interne utilisé par le système de base de données pour gérer les données des tables. Différents moteurs, comme InnoDB ou MyISAM, offrent des fonctionnalités variées en termes de transactions, verrous et performance.

Une table dans une base de données relationnelle est analogue à un fichier structuré. Chaque ligne de la table correspond à un enregistrement unique, et les colonnes représentent des champs spécifiques pour cet enregistrement. Par exemple, dans une table d'employés, des champs comme identifiant, nom et poste définissent les attributs de chaque employé.

Création de Tables

Pour créer une table, on utilise la commande CREATE TABLE avec la syntaxe suivante :

CREATE TABLE nom_table (
    champ1 type_donnee [contrainte],
    champ2 type_donnee [contrainte],
    ...
);

Points importants :

  • Les noms de champs doivent être uniques dans la même table.
  • La définition du type de donnée est obligatoire, tandis que la largeur et les contraintes sont optionnelles.

Exemple de création :

CREATE DATABASE entrepot CHARACTER SET utf8;

USE entrepot;

CREATE TABLE produits (
    id_prod INT,
    designation VARCHAR(100),
    categorie ENUM('electronique', 'vetements'),
    quantite INT
);

SHOW TABLES;

DESC produits;

Insérer des données :

INSERT INTO produits VALUES
(101, 'Ordinateur Portable', 'electronique', 50),
(102, 'T-shirt', 'vetements', 200);

INSERT INTO produits(id_prod) VALUES
(103),
(104);

SELECT * FROM produits;

Évitez d'ajotuer une virgule après le dernier champ de la définition de la table.

Inspection de la Structure des Tables

Pour visualiser la structure d'une table, on peut utiliser :

DESCRIBE produits; -- ou DESC produits

SHOW CREATE TABLE produits;

Ces commandes affichent les détails tels que les types de données, les contraintes et la clé primaire.

Types de Données et Contraintes d'Intégrité

Les types de données définissent la nature des valeurs stockables (entiers, chaînes, dates, etc.). Les contraintes d'intégrité, comme PRIMARY KEY, UNIQUE ou NOT NULL, garantissent la cohérence et la validité des données.

Modification de Tables avec ALTER TABLE

La commande ALTER TABLE permet de modifier une table existante. Voici des opérations courantes :

  • Renommer la table : ALTER TABLE ancien_nom RENAME nouveau_nom;
  • Ajouter un champ : ALTER TABLE nom_table ADD champ type_donnee [contrainte] [POSITION]; (avec FIRST ou APRES un champ)
  • Supprimer un champ : ALTER TABLE nom_table DROP champ;
  • Modifier un champ : ALTER TABLE nom_table MODIFY champ type_donnee [contrainte]; ou CHANGE ancien_champ nouveau_champ type_donnee;

Exemples :

ALTER TABLE produits ENGINE = InnoDB;

ALTER TABLE produits
ADD date_ajout DATE NOT NULL,
ADD statut VARCHAR(20) DEFAULT 'actif';

ALTER TABLE produits
ADD reference VARCHAR(50) UNIQUE AFTER designation;

ALTER TABLE produits DROP statut;

ALTER TABLE produits MODIFY quantite SMALLINT;

ALTER TABLE produits CHANGE id_prod prod_id INT NOT NULL AUTO_INCREMENT;

Pour ajouter une clé primaire composite :

ALTER TABLE commandes
ADD PRIMARY KEY (client_id, commande_num);

Pour supprimer une clé primaire :

ALTER TABLE produits MODIFY prod_id INT; -- Supprime l'auto-incrémentation si présente
ALTER TABLE produits DROP PRIMARY KEY;

Copie de Tables

On peut copier une table de plusieurs manières. Pour copier la structure et les données sans les contraintes clés :

CREATE TABLE copie_produits SELECT * FROM produits;

Pour copier uniquement la structure :

CREATE TABLE vide_produits SELECT * FROM produits WHERE 1=0;
-- ou
CREATE TABLE structure_produits LIKE produits;

Suppression de Tables

Pour suppriemr définitivement une table, utilisez :

DROP TABLE nom_table;

Étiquettes: MySQL MariaDB SQL Tables ALTER TABLE

Publié le 2 août à 02h48