Vous êtes sur la page 1sur 13

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Ecole Nationale Polytechnique

Spécialité : Génie industriel


Option : management de l’innovation
L’étudiante :
ABDELLI Omyma Mariem

Année universitaire : 2017/2018


1) Objectif du TP :
 Créer et manipuler une base de données MySQL.
 Se familiariser avec l’interface du logiciel HeidiSQL.
 Apprendre quelques requêtes de base du langage SQL.
2) Principe de TP :
Le but de ce TP est de créer une base de données qui contient quelques
informations nécessaires à l’élaboration et à la gestion d’une bibliothèque
musicale. Les informations manipulées concernent une liste d’artistes, leurs
albums et les chansons qu’ils contiennent.
3) Expérimentation :
Etape1 :
1*création de la base de données sous le
nom : « Bibliothèque_musicale ».
Par clique droite on choisit Créer un (e) nouveau (el/elle)  base de
données.
On écrit le nom et on clique sur OK.

2* création des tables Chanson, Artiste et Album.


Créer un (e) nouveau (el/elle)  Tables.
On choisit le nom de la tables aussi leur attributs (nom, type, taille et
l’attribut « primary key » et on obtient ces tables :
Schéma relationnel :

3* Insertion des données de chaque table.


Etape2 :
En utilisant l’onglet « requête » de HeidiSQL, on a exprimé les
requêtes suivantes en langage SQL :
a) ‘Afficher la liste de toutes les chansons sorties en 2017 et les
classer par ordre alphabétique du titre.’
La requête :
SELECT titre_chanson, date_sortie_chanson
FROM chanson
WHERE date_sortie_chanson<='2017-12-31' AND date_sortie_chanson>='2017-01-
01'
b) ‘Donner le nom de l’artiste de la chanson « Dive ».’
La requête :

SELECT nom_artiste
FROM chanson JOIN artiste ON artiste.id_artiste=chanson.FK_chanson_artiste
WHERE titre_chanson='dive'

c) ‘La liste des chansons de l’album « Woodstock ».’


La requête :
SELECT titre_chanson
FROM chanson JOIN album ON
album.id_album=chanson.FK_chanson_album
WHERE titre_album='woodstock'

d) ‘Les noms des artistes produits sous le label « Interscope


Records ».’
La requête :

SELECT DISTINCT nom_artiste


FROM chanson JOIN artiste JOIN album ON
chanson.FK_chanson_artiste=artiste.id_artiste AND
chanson.FK_chanson_album=album.id_album
WHERE label='interscope records'

e) ‘Les noms des artistes qui ont chanté des chansons dont le titre
commence par la lettre « J ». Afficher aussi les titres de ces
chansons triées par ordre alphabétique.
La requête :

SELECT Nom_artiste, titre_chanson


FROM chanson JOIN artiste ON
chanson.FK_chanson_artiste=artiste.id_artiste
WHERE titre_chanson LIKE 'j%'
ORDER BY titre_chanson

f) ‘Les noms des artistes qui possèdent un album dans la table


Album. (NOT NULL)’
La requête :

SELECT DISTINCT nom_artiste


FROM chanson NATURAL JOIN artiste NATURAL JOIN album
WHERE titre_album IS NOT NULL
g) ‘Les titres des chansons et leurs durées en minutes de l’album
intitulé « Divide ».’
La requête :

SELECT titre_chanson, durée/60 as duree_minute


FROM chanson JOIN album ON
album.id_album=chanson.FK_chanson_album
WHERE titre_album='Divide'

h) ‘Les chansons qui font partie du même album que la chanson «


Jenny ».’
La requête :
SELECT titre_chanson
from chanson
where FK_chanson_album = (select FK_chanson_album from
chanson where titre_chanson='Jenny')

i) ‘Le nombre de chansons de chaque album ainsi le titre de


l’album.’
La requête :

SELECT titre_album, COUNT(id_album)


FROM chanson JOIN album ON
album.id_album=chanson.FK_chanson_album
group by id_album

j) ‘Le nombre d’artistes qui figurent dans la table chanson.’


La requête :
SELECT COUNT(DISTINCT FK_chanson_artiste)
FROM chanson

k) ‘Les durées moyennes des chansons qui composent des albums


ayant plus de 2 chansons. Afficher aussi le titre de l’album.’
La requête :
SELECT AVG(durée), titre_album
FROM chanson JOIN album ON
album.id_album=chanson.FK_chanson_album
GROUP BY id_album
HAVING COUNT(FK_chanson_album)>'2'

l) ‘Quels sont les artistes ayant sorti des albums à une date
ultérieure à celle de l’album « Woodstcok ». (indication : auto-
jointure, jointure d’une table avec elle-même)
La requête :
SELECT distinct nom_artiste
FROM chanson JOIN artiste JOIN album ON
chanson.FK_chanson_artiste=artiste.id_artiste AND
chanson.FK_chanson_album=album.id_album
WHERE date_sortie_album>(SELECT date_sortie_album
from album
where titre_album='woodstock')

En ajoutant les données dans les tables :


On fait les requêtes suivantes :
m) Les noms des artistes n’ayant aucune chanson enregistrée.
La requête :

SELECT DISTINCT nom_artiste, id_artiste


FROM artiste LEFT outer join chanson on
artiste.id_artiste=chanson.FK_chanson_artiste
where chanson.FK_chanson_artiste IS NULL

n) Les titres des chansons ne faisant partie d’aucun album.


La requête :
SELECT DISTINCT titre_chanson, id_chanson
FROM album right outer join chanson on
album.id_album=chanson.FK_chanson_album
where chanson.FK_chanson_album IS NULL

o) Les titres et les dates de sortie des albums qui ne possèdent


aucune chanson enregistrée dans la table « Chanson ».
La requête :
SELECT DISTINCT titre_album, date_sortie_album
FROM album left outer join chanson on
album.id_album=chanson.FK_chanson_album
where chanson.FK_chanson_album IS NULL

Vous aimerez peut-être aussi