TP2 - SQL - Exercice
Transcription
TP2 - SQL - Exercice
Cours de Bases de Données Avancées TP2 - SQL - Exercice 1 Introduction Cet exercice ou tutorial va vous permettre de créer une petite base de donnée gestion de CD avec le langage SQL. Cet exercice est divisé en trois parties: - la partie 2 correspond au langage de définition de données et permet de créer la structure de la base de données avec notamment les définitions des tables et des contraintes; - la partie 3 correspond au langage de manipulation de données et permet d'insérer un jeu de données dans la base - la partie 4 correspond au langage de requête et permet d'obtenir des informations depuis les données contenus dans la base 2 Langage de définition de données Le schéma relationnel (qui est très simplifié et donc pas forcement un bon exemple de modélisation!) correspondant à la base qu'on veut utiliser est le suivant. Figure 1: Schéma relationnel de la base de données Pour créer notre base dans le serveur de base de données il faut d'abord créer les différentes tables du modèle ainsi que leurs différentes contraintes spécifiées entre parenthèses: - Table Artiste: caractérisée par un Nom (identifiant), un genre (facultatif) et une nationalité (facultatif) - Table Album: caractérisée par un Titre (identifiant), une Année (facultatif, valeur par défaut 2004) et un Artiste (clé étrangère référençant la table Artiste). Ajouter aussi une contrainte (CHECK) qui spécifie que l'année doit être compris enter 1900 et 2100. - Table Chanson: caractérisées par un Titre (identifiant) un Album (clé étrangère référençant la table Album), un Numero (facultatif) et une durée. A noter que le couple Album et Numero doit être unique dans toute la table. 3 Langage de définition de données Une fois que la base est créée il faut insérer des données pour peupler les bases. Vous pouvez utiliser le jeu de données suivants: Artiste Nom Joe Satriani Gordon Haskell Gotthard Metallica Genre Rock Jazz Rock Hard Rock Album Titre Surfing With The Alien Harry''s Bar Gotthard Nationalité USA GB CH USA Annee 1987 2002 1992 Artiste Joe Satriani Gordon Haskell Gotthard Cours de Bases de Données Avancées G. Metallica 1996 1991 Chanson Titre How Wonderful You Are All the Time in the World Voodoo Dance Freeway to Her Dreams Sunshine in the Night Al Capone Feelin'' Loose There Goes My Heart Again Roll With It Someone I Knew A Little Help from You All in the Scheme of Things Surfing With the Alien Ice 9 Crushing Day Always With Me, Always With You Satch Boogie Hill of the Skull Circles Lords of Karma Midnight Echo Standing in the Light Downtown Firedance Hush Mean Street Rocket Get Down Take Me Angel Lonely Heartache Hunter All I Care For That''s It Sister Moon Make My Day Mighty Quinn (Quinn the Eskimo) Movin'' On Let It Be Father Is That Enough? Sweet Little Rock & Roller First in Your Face Ride On In the Name Lay Down the Law One Life, One Soul He Ain''t Heavy, He''s My Brother Enter Sandman Sad but True Holier Than Thou The Unforgiven Wherever I May Roam Don''t Tread on Me Through the Never Nothing Else Matters Of Wolf and Man The God That Failed My Friend of Misery The Struggle Within TP2 - SQL - Exercice Gotthard Metallica Album Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Harry''s Bar Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Surfing With The Alien Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard Gotthard G. G. G. G. G. G. G. G. G. G. G. G. G. Metallica Metallica Metallica Metallica Metallica Metallica Metallica Metallica Metallica Metallica Metallica Metallica Nombre 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 Durée 3.07 3.42 7.37 6.33 3.45 5.18 3.37 5.03 5.45 5.55 3.09 2.31 7.47 4.08 4.47 6.40 7.35 4.40 6.44 4.52 4.42 3.52 5.19 5.12 7.01 2.13 4.21 7.01 4.06 7.25 5.38 7.45 5.40 7.55 6.40 4.13 2.03 5.47 4.48 7.44 4.48 3.11 4.23 4.36 2.38 4.37 5.58 4.33 6.11 5.45 4.43 6.17 4.21 4.32 4.55 7.31 7.45 3.08 4.45 Une fois les données insérées dans la base vous pouvez tester les choses suivantes: - Créer une nouvelle table à partir d'une requête SQL à l'aide de l'instruction CREATE TABLE AS. Par exemple vous pouvez créer une table ChansonsUSA qui contient toutes les noms et durées des chansons dont les artistes sont de nationalité USA. - Créer une vue à partir d'une requête SQL à l'aide de l'instruction CREATE VEW avec la même requête que pour la table précédente. Notez ensuite les différences entre table et vue lors de la modification des données dans la table originale. Cours de Bases de Données Avancées TP2 - SQL - Exercice - Modifier une table à partir d'une requête SQL à l'aide de l'instruction ALTER TABLE. Par exemple vous pouvez modifier la table ChansonsUSA pour y rajouter une colonne "Artiste" avec clé étrangère référençant la table Artiste. - Modifier des données à l'aide de l'instruction UPDATE. Rajouter dans la table ChansonsUSA le nom des artistes correspondants aux chansons grâce à une requête. - Effacer des données à l'aide de l'instruction DELETE. Effacer toutes les chansons dans la table ChansonsUSA qui ont une durée supérieur à 5 minutes. - Effacer une table entière à l'aide de l'instruction DROP. Effacer la table ChansonsUSA. 4 Langage de requête Amusez-vous à faire différents requêtes sur la base tels que: - Obtenir le contenu d'un album spécifié par l'utilisateur. NB dans les requêtes on peut utiliser des variables en utilisant la notation :nom_variable. - Obtenir la liste des albums avec leurs artistes avec le nombre de chanson et leur durée totale. - Etc. 5 Solutions Solutions: les commandes SQL permettant de créer la structure de la base de données ainsi que de la peupler avec le jeu de données indiqué sont placés dans le fichier "TP2 - SQL - Solutions.txt".