COURS SQL : Manipulation des relations et des données
Objectif général
À la fin de ce cours, tu seras capable de :
• Créer et modifier des tables (relations)
• Gérer les attributs (champs/colonnes)
• Manipuler les données (enregistrements) dans une base SQL
I. Créer une relation (table)
En SQL, une relation correspond à une table.
On la crée avec la commande CREATE TABLE.
Syntaxe :
CREATE TABLE nom_table (
nom_colonne1 type_donnee [contraintes],
nom_colonne2 type_donnee [contraintes],
...
);
Exemple :
Créons une table Etudiant :
CREATE TABLE Etudiant (
Matricule INT PRIMARY KEY,
Nom VARCHAR(50),
Prenom VARCHAR(50),
Age INT,
Classe VARCHAR(10)
);
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 1
Ici :
• Matricule est la clé primaire
• Nom, Prenom, Age, Classe sont des attributs (colonnes)
II. Supprimer une relation (table)
Pour supprimer une table entière, on utilise DROP TABLE.
Syntaxe :
DROP TABLE nom_table;
Exemple :
DROP TABLE Etudiant;
Supprime complètement la table Etudiant et toutes ses données.
III. Modifier une relation (structure d’une table)
On utilise la commande ALTER TABLE.
Ajouter un attribut
Syntaxe :
ALTER TABLE nom_table
ADD nom_colonne type_donnee [contraintes];
Exemple :
ALTER TABLE Etudiant
ADD Adresse VARCHAR(100);
Ajoute une nouvelle colonne Adresse à la table Etudiant.
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 2
Supprimer un attribut
Syntaxe :
ALTER TABLE nom_table
DROP COLUMN nom_colonne;
Exemple :
ALTER TABLE Etudiant
DROP COLUMN Adresse;
Supprime la colonne Adresse de la table Etudiant.
Changer la valeur par défaut d’un attribut
Syntaxe :
ALTER TABLE nom_table
ALTER COLUMN nom_colonne SET DEFAULT valeur;
Exemple :
ALTER TABLE Etudiant
ALTER COLUMN Classe SET DEFAULT 'Tle';
Si on n’indique pas de classe, Tle sera utilisée automatiquement.
Changer la définition (type) d’un attribut
Syntaxe :
ALTER TABLE nom_table
ALTER COLUMN nom_colonne TYPE nouveau_type;
Exemple :
ALTER TABLE Etudiant
ALTER COLUMN Age TYPE SMALLINT;
Change le type de la colonne Age.
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 3
Ou
Syntaxe MySQL :
ALTER TABLE nom_table
MODIFY nom_colonne nouveau_type;
Exemple :
ALTER TABLE Etudiant
MODIFY Age SMALLINT;
Changer le nom de la relation (table)
Syntaxe :
ALTER TABLE ancien_nom
RENAME TO nouveau_nom;
Exemple :
ALTER TABLE Etudiant
RENAME TO Eleve;
Renomme la table Etudiant en Eleve.
IV. Gérer les index
Un index sert à accélérer les recherches dans une table.
Ajouter un index
Syntaxe :
CREATE INDEX nom_index
ON nom_table (nom_colonne);
Exemple :
CREATE INDEX idx_nom
ON Etudiant (Nom);
Crée un index pour accélérer les recherches par Nom.
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 4
Supprimer un index
Syntaxe :
DROP INDEX nom_index;
Exemple :
DROP INDEX idx_nom;
Supprime l’index nommé idx_nom.
V. Manipulation des enregistrements (lignes)
Ajouter un enregistrement
Syntaxe :
INSERT INTO nom_table (colonne1, colonne2, ...)
VALUES (valeur1, valeur2, ...);
Exemple :
INSERT INTO Etudiant (Matricule, Nom, Prenom, Age, Classe)
VALUES (1, 'Moukou', 'Jean', 18, 'TleA');
Ajoute un étudiant dans la table.
Modifier un enregistrement
Syntaxe :
UPDATE nom_table
SET colonne = nouvelle_valeur
WHERE condition;
Exemple :
UPDATE Etudiant
SET Age = 19
WHERE Matricule = 1;
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 5
Modifie l’âge de l’étudiant ayant le matricule 1.
Supprimer un enregistrement
Syntaxe :
DELETE FROM nom_table
WHERE condition;
Exemple :
DELETE FROM Etudiant
WHERE Matricule = 1;
Supprime l’étudiant ayant le matricule 1.
Commande : DELETE FROM
Syntaxe :
DELETE FROM nom_table;
Exemple :
DELETE FROM Etudiant;
Cette commande supprime toutes les lignes (enregistrements) de la table
Etudiant,
mais la structure de la table (colonnes, contraintes, etc.) reste intacte.
Variante plus rapide : TRUNCATE TABLE
Il existe une autre commande encore plus rapide :
TRUNCATE TABLE nom_table;
Exemple :
TRUNCATE TABLE Etudiant;
Elle vide la table Etudiant complètement,
mais ne peut pas être annulée (contrairement à DELETE).
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 6
Différence entre DELETE et TRUNCATE
Supprime les Supprime la Peut être
Commande Rapidité
données ? structure ? annulée ?
DELETE FROM
Oui Non Oui
table; Moyenne
TRUNCATE Très
Oui Non Non
TABLE table; rapide
En résumé :
• Pour vider une table → DELETE FROM nom_table;
• Pour vider rapidement toute une table → TRUNCATE TABLE nom_table;
• Pour supprimer la table elle-même → DROP TABLE nom_table;
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 7
Récapitulatif rapide
Action Commande principale Exemple
Créer une table CREATE TABLE CREATE TABLE Etudiant (...)
Supprimer une table DROP TABLE DROP TABLE Etudiant;
Ajouter une colonne ALTER TABLE ... ADD ADD Adresse VARCHAR(100)
Supprimer une ALTER TABLE ... DROP
DROP COLUMN Adresse
colonne COLUMN
ALTER TABLE ... ALTER ALTER COLUMN Age TYPE
Modifier un type
COLUMN TYPE SMALLINT
ALTER TABLE ... SET
Valeur par défaut SET DEFAULT 'Tle'
DEFAULT
ALTER TABLE ...
Renommer la table RENAME TO Eleve
RENAME TO
CREATE INDEX idx_nom ON
Ajouter un index CREATE INDEX
Etudiant(Nom)
Supprimer un index DROP INDEX DROP INDEX idx_nom
Ajouter un INSERT INTO ... INSERT INTO Etudiant (...)
enregistrement VALUES VALUES (...)
Modifier un UPDATE ... SET ... UPDATE Etudiant SET Age=19
enregistrement WHERE WHERE Matricule=1
Supprimer un DELETE FROM ... DELETE FROM Etudiant
enregistrement WHERE WHERE Matricule=1
AKOUAN TOURI CYR CHARLEM INGENIEUR INFORMATICIEN 8