Travaux pratiques bases de données et langage SQL
Des exemples montrant la création et l'interrogation de bases de données SQL.
Dans chaque exercice suivant, vous pourrez :
- Identifier les clefs de chaque relation (primaires et étrangères).
- Donner les requêtes SQL qui permettent de créer la base de données (tables et index).
- Répondre aux attentes sous la forme de composition d'opérations de l'algèbre relationnelle. Pour faciliter les réponses vous pouvez nommer les relations calculées par chaque question, par exemple R3 est la relation correspondant à la question 3.
- Répondre aux attentes sous la forme de requêtes SQL.
- Proposer des améliorations du schéma.
Base de cinéma
Fichiers de départ : schema.sql et datas.sql.
Résultats attendus :
- Tous les acteurs.
- Les prénoms et noms de chaque acteur.
- Les acteurs dont le code est smcqueen.
- Les acteurs nés en 1960 ou après.
- Les codevedette présents dans les films, sans doublon.
- Les titres des films avec Tom Hanks et antérieurs à 1995.
- Les titres des films avec Tom Hanks ou Johnny Depp.
- Les prénoms et noms des acteurs dont le prénom commence par la lettre S.
- Les prénoms et noms des acteurs dont le nom contient la séquence mit.
- Les prénoms et noms des acteurs dont le nom est composé d'exactement cinq lettres.
- Les acteurs par ordre alphabétique.
- Les acteurs par ordre alphabétique inverse.
- Les acteurs du plus jeune au plus vieux.
- Les acteurs du plus vieux au plus jeune.
- Le nombre d'acteurs.
- Le nombre d'acteurs dont le prénom commence par la lettre S.
- Pour chaque code d'acteur, le nombre de films dans lesquels il est la vedette.
- Les prénoms et noms des acteurs qui sont les vedettes d'un film.
- Les prénoms et noms des acteurs qui sont les vedettes d'un film, sans doublon.
- Les prénom et nom de l'acteur du film dont le code est sh1999.
Une boutique
Nous considérons dans cet exercice les tables suivantes décrivant une activité commerciale :
produits(id_produit,libelle,prix,taux_de_tva) clients(id_client,nom,prenom,adresse) commandes(id_commande,date,ref_client) lignes_de_commande(ref_commande,ref_produit,quantite)
Résultats attendus :
- Les clients dont le prénom est 'José'.
- Les clients dont le prénom est 'José' et les clients dont le prénom est 'Alain'.
- Les clients tels que le prénom est 'Alain', ou le nom est 'Terrieur'.
- Les noms de clients dont le prénom est 'José'.
- Chaque commande avec les informations sur le client qui l'a commandée.
- Chaque date de commande avec le nom du client correspondant.
- Les numéros de commande, noms de client correspondant, libellé de produit, prix, taux de TVA et quantité correspondants.
- Les clients qui ont un nom qui est aussi un libellé de produit.
- Les clients qui ont un nom qui n'est pas un nom de produit.
- Les commandes des clients dont le nom est 'Terrieur'.
- Les commandes des clients dont le nom est 'Terrieur' et les commandes dont la date est le 12 juin 2010.
- Les commandes des clients dont le nom est 'Terrieur' dont la date est le 12 juin 2010.
- Le nombre de commandes par date.
- Le total TTC de la commande numéro 1.
- Les clients qui ont un nom différent de tous les autres.
Merci à Marc Tommasi pour la version originale de ce sujet d'exercice.
Projets
En vue des projets de sites web dynamique des M2 GIDE :
- concevoir le schéma de la base de données,
- écrire les instructions SQL de création des tables et des index,
- proposer quelques instructions d'insertion de données,
- imaginer des requêtes génériques nécessaires au site pour :
- insérer de nouvelles données depuis un formulaire html,
- rechercher dans la base depuis un moteur de recherche.