18.SQL par l'exemple
18.1.Introduction
Ce "cours" un peu particulier s'applique sur des exemples et est loin d'être exhaustif.
Dans la suite du tutorial nous considérerons ces 3 tables suivantes:
A partir de ces tables, nous allons faire quelques exercices.
| Films | ||
| idFilm | Titre | Réalisateur |
| 1 | Matrix | Réalisateur de Matrix |
| 2 | La soupe aux choux | Réalisateur de la soupe aux choux |
| Acteurs | ||
| idActeur | Nom | Prénom |
| 1 | Dupont | Paul |
| 2 | Durand | Jean |
| 3 | Durand | Jeanne |
| Rôle | ||
| idActeur | idFilm | Personnage |
| 1 | 1 | Neo |
| 2 | 1 | Simone |
| 3 | 2 | Extra-terrestre |
18.2.Comment peut-on créer ces tables avec MySQL?
Table films:
CREATE TABLE films (idFilm INT not null AUTO_INCREMENT, Titre VARCHAR (255) not null , Réalisateur VARCHAR (255) not null , PRIMARY KEY (idFilm)) |
Table acteurs:
CREATE TABLE acteurs (idActeur INT not null AUTO_INCREMENT, Nom VARCHAR (255) not null , Prénom VARCHAR (255) not null , PRIMARY KEY (idActeur)) |
Table Rôle:
CREATE TABLE role (idActeur INT not null, idFilm INT not null , Personnage VARCHAR (255)) |
![]() |
|
18.3.Comment peut-on insérer les données?
Table films:
INSERT INTO films (Titre,Réalisateur) VALUES ('Matrix','Réalisateur de Matrix')
INSERT INTO films (Titre,Réalisateur) VALUES ('La soupe aux choux','Réalisateur de la soupe aux choux') |
Table acteurs:
INSERT INTO acteurs (Nom,Prénom) VALUES ('Dupont','Paul')
INSERT INTO acteurs (Nom,Prénom) VALUES ('Durand','Jean')
INSERT INTO acteurs (Nom,Prénom) VALUES ('Durand','Jeanne') |
Table role:
INSERT INTO role (idActeur,idFilm,Personnage) VALUES ('1','1','Neo')
INSERT INTO role (idActeur,idFilm,Personnage) VALUES ('2','1','Simone')
INSERT INTO role (idActeur,idFilm,Personnage) VALUES ('3','2','Extra-terrestre') |
18.4.Voici comment supprimer ces données
Si l'on veux supprimer le film "La soupe aux choux", on peut utiliser une des 2 requêtes suivantes:
DELETE FROM films where idFilm=2 DELETE FROM films where Titre='La soupe aux choux' |
![]() | Cela a pour effet de supprimer toutes les entrées où idFilm=2 (unique donc pas de problème) ou toutes les entrées ayant 'La soupe aux choux' comme titre (il pourrait y en avoir plusieurs). |
18.5.Voici comment modifier des données:
Si l'on veux changer le nom du réalistaur de Matrix, on peut utiliser une des 2 requêtes suivantes:
UPDATE films SET Réalisateur='John Woo' where id=1 UPDATE films SET Réalisateur='John Woo' where Réalisateur='Réalisateur de Matrix' |
Les données sont insérées, il va falloir les traiter maintenant.
18.6.Et enfin, voici comment traiter les données:
Comptons les éléments, par exemple comptons le nombre de films de notre BD.
SELECT COUNT(*) FROM films |
Récupérons maintenant tous les titres de films.
SELECT titre FROM films |
Beaucoup plus dificile, affichons l'ensemble des couple titre, nom de l'acteur, prénom de l'acteur et rôle joué.
SELECT f.titre,a.nom,a.prénom,r.personnage FROM films f,acteurs a,role r WHERE r.idFilm=f.idFilm and a.idActeur=r.idActeur |
![]() | Cette requête mérite une attention particulière et quelques explications:
|
Le résultat obtenu est le suivant:
| Titre | Nom | Prénom | Personnage |
| Matrix | Dupont | Paul | Neo |
| Matrix | Durand | Jean | Simone |
| La soupe aux choux | Durand | Jeanne | Extra-terrestre |
Version imprimable


