Animés & Studios
Objectif :
Les objectifs principaux de ce TP sont :- Utiliser la jointure de table avec l'instruction
JOIN ... ON ...
- Déterminer les clés primaires et les clés étrangères à partir un schéma relationnel
On utilisera aussi les éléments de langage SQL ci-dessous :
SELECT ... WHERE ...
COUNT
ORDER BY
UPDATE
La base de données
Dans ce TP, notre base de données contient deux relations (tables) nommées animes et studio. Voici le schéma relationnel de cette base de données.D'après le schéma relationnel ci-dessus :
L'attribut titre de la relation animes est :
L'attribut id de la relation studios est :
L'attribut id_studio de la relation animes est :
Quelle est la clé primaire
Les clés primaires et secondaires sont soulignées.
Une clé primaire doit être unique. de la relation animes est :
Une clé primaire doit être unique. de la relation animes est :
Retrouver les propriétés à l'aide de
SELECT
L'instruction
SELECT
est utiliser dans les requête de sélection. Elle permet de sélectionner un ou
plusieurs attributs d'une table. Pour pouvoir compter les résultats, on peut ajouter l'instruction
COUNT
Syntaxe de l'instruction
SELECT
est : SELECT (attribut.s) FROM relation [ WHERE selecteur ]
attribut.s
: Un ou plusieurs attributs séprares par une virgule. On peut mettre*
pour sélectionner tous les attributs.relation
: Nom de la relationWHERE selecteur
( option ) : instruction facultative permettant de spécifier une condition sur un ou plusieurs attribut.s. Les conditions sont séparées par les opérateurs booléen AND et OR.
Vous pouvez lancer vos requêtes SQL à partir d'ici
Remarque : En option, on pourra rajouter un selecteur pour filtrer les réponses.
Dans le cadre d'une jointure, il faudra préciser la table d'origine de l'attributs. par exemple si on veut filtrer les entrées dont l'attribut
Dans une jointure, il faut faire attention à quelle relation on place en premier.
Il penser à mettre en premier la relation dans laquelle on fait la sélection.
On peut les lier grâce au instruction
L'instruction
Attention : L'ordre d'insertion peux avoir de l'importance.
Déterminer le cardinal de la relation studios :
Déterminer le cardinal de la relation animes :
Déterminer l'ordre de la relation studios :
Déterminer l'ordre de la relation animes :
Sélectionner des animés
JOIN ON
L'instructionJOIN ... ON
jointure interne est utiliser pour retourner les enregistrements quand la
condition est vrai dans les 2 tables. SELECT * FROM r_A JOIN r_B ON r_A.a_1 = r_B.a_2
r_A
: Nom de la première relationr_B
: Nom de la seconde relationa_1
: Un attribut de la relation r_Aa_2
: Un attribut de la relation r_B
Remarque : En option, on pourra rajouter un selecteur pour filtrer les réponses.
WHERE selecteur
: instruction optionnelle permettant de spécifier une condition sur un ou plusieurs attributs. Dans le cadre d'une jointure, il faudra préciser la table d'origine de l'attributs. par exemple si on veut filtrer les entrées dont l'attribut
a1
de la relation r2
est égal à 5, le selecteur deviendra WHERE r2.a1 = 5
.
Compter le nombre d'animés produits par le studio Ghibli (noté
Studio Ghibli
).
Combien d'animés sont listés ?
Sélectionner les titres des animés sortie du studio Ghibli (noté
Studio Ghibli
) et les classer par ordre alphabétique.
Quel est le 3ème nom de la liste ?
Sélectionner des studios ou des animés
JOIN ON
Dans une jointure, il faut faire attention à quelle relation on place en premier.
Il penser à mettre en premier la relation dans laquelle on fait la sélection.
On souhaite construire une requête pour déterminer le nom du studio qui a produit le film JJK 0. Sur quelle relation va porter la requête
SELECT
?
Quelle requête SQL permet connaître le nom du studio qui a produit le film JJK 0 (dont le titre est
Jujutsu Kaisen 0
) ?
Quel est le sudio qui a produit JJK0 ?
On souhaite construire une requête pour compter tous les animés issus des studios crées avant 1980. Sur quelle relation va porter la requête
SELECT
?
Compter tous les animés issus des studios crées avant 1980 (attribut
creation
de la table
studios
).
Combien d'animés sont listés ?
Des filtres plus subtils
WHERE
Les selecteurs de l'instructionWHERE
peuvent porter sur l'une ou l'autre des tables. On peut les lier grâce au instruction
AND
et OR
Afficher le titre, l'année et le type des animés de type films (
Film
) produits par le studio Toei(nom Toei Animation Company
).
Quelle est la somme des valeurs de l'attributs
annee
des films sélectionnées ?
Afficher le titre, le année, le types et le nom du studio
Il faudra préciser dans la requête que l'attribut nom provient de la relation studios.
des animés produits par le studio Madhouse(nom
Madhouse
) après 2005 ou par le studio Wit Studio (nom Wit Studio
) après 2010. (2005 et 2010 n'étant pas inclus)
Combien d'OAV contient cette liste ?
Rajouter des données
INSERT
L'instruction
INSERT
est utiliser pour ajouter une instruction dans une table. Attention : L'ordre d'insertion peux avoir de l'importance.
Syntaxe de l'instruction
INSERT
est : INSERT INTO relation(a1, a2, a3) VALUES (v1, v2, v3);
relation
: Le nom de la relation dans laquelle on veut insérer les données.a1, a2, a3
: Les attributs que l'on va peuplerv1, v2, v3
: Les valeurs que l'on utiliser
On souhaite insérer l'animé Samourai Champloo :
Animé :
Studio :
Animé :
-
titre
: Samourai Champloo -
id_studio
: 10 -
type
: Série -
annee
: 2004 -
url_image
: http://www.anime-kun.net/animes/anim_img/samurai-champloo-228-455.jpg
Studio :
-
id
: 10 -
nom
: Manglobe -
creation
: 2002 -
wikipedia
: https://fr.wikipedia.org/wiki/Manglobe