Base de données
Utiliser le langage SQL sur une table sans fonction de groupe
Préparation des tables
Récupérez le fichier expo.sql. Il va vous permettre de créer une table expo. Si une table de ce nom existait déjà dans votre base de données, il faudra la renommer ou la supprimer préalablement.
Dans un navigateur, affichez l'interface d'administration de PostgreSQL à l'université.
Avec l'onglet SQL de l'interface, copiez et exécutez le contenu du fichier expo.sql pour créer la table expo (15 enregistrements).
A) Requête dans la fenêtre SQL Mode d'emploi :
1) Sélectionnez la table expo dans le menu à gauche si besoin.
2) Choisissez l'onglet SQL à gauche du menu situé en haut à droite.
Saisissez la requête SQL dans la fenêtre.
3) Cliquez sur le bouton Lancer.
Effectuez les requêtes suivantes à l'aide de la fenêtre SQL :
1) Toutes les informations sur les expositions terminées avant le 01/01/2012 qui ont eu plus de 2000 visiteurs par ordre décroissant de visiteurs.
2) Liste des informations sur les 3 expositions dont le coût est le plus élevé, par ordre de coût décroissant.
3) N°, titre, coût, prix, nombre de visiteurs dont le prix est compris entre 1 et 3 euros.(avec et sans between) 4) Liste des expositions qui ont débuté le 20/12/2011
5) Liste des expositions dont la date de fin est ultérieure à la date courante Le mot clé current_date permet d’obtenir la date courante
6) Toutes les informations sur les 2 dernières expositions qui ont fermé.
7) Titre, thème, prix en euros, prix en FRF des expositions (avec 1€=6,55957 FRF).
Remarque : arrondir le prix en FRF aux centimes (2 chiffres après la virgule) avec la fonction ROUND.
8) Liste des expositions qui ont ouvert en 2004.
9) Liste des expositions (N°, titre, prix, visiteurs) et de ce qu'elles rapportent (chiffre d'affaire = nombre de visiteurs
* prix)
10) Liste des expositions (N°, titre, prix, visiteurs, coût) et de leur bénéfice (nombre de visiteurs* prix - coût) 11) Liste des expositions rentables (dont le bénéfice est positif).
Résultat à obtenir: 4 enregistrements
12) Liste des expositions avec pour chacune, son bénéfice par m² et son coût par m².
13) Liste des expositions qui se sont déroulées en partie sur 2004.
Novembre 2017 Base de données: Requêtes SQL mono table Page 1
Corrigé des requêtes en SQL :
1) Toutes les informations sur les expositions terminées avant le 01/01/2012 qui ont eu plus de 2000 visiteurs par ordre décroissant de visiteurs.
SELECT titre FROM expo WHERE nb_visiteurs> 2000 AND date_fin < '2012-01-01' ORDER BY nb_visiteurs DESC
2) N°, titre, coût, prix, nombre de visiteurs des 3 expositions les plus coûteuses.
SELECT num_expo,titre, cout,visiteurs FROM expo ORDER BY cout DESC LIMIT 3 ;
3) Toutes les informations sur les 2 dernières expositions qui ont fermé.
SELECT * FROM expo WHERE date_fin < curdate( ) ORDER BY date_fin DESC LIMIT 2 ; 4) Titre, thème, prix en euros, prix en FRF des expositions (avec 1€=6,55957 FRF).
Remarque : arrondir le prix en FRF aux centimes (2 chiffres après la virgule) avec la fonction ROUND.
SELECT titre, theme, prix, round(prix*6.55957,2) AS 'Prix en FRF' FROM expo;
5) Liste des expositions qui ont ouvert en 2004.
SELECT * FROM `expo` WHERE date_debut BETWEEN '2004-01-01' and '2004-12-31' ; SELECT * FROM expo WHERE year(date_deb)='2004';
SELECT * FROM expo WHERE date_debut >= '2004-01-01' AND date_debut <= '2004-12-31';
SELECT * FROM expo WHERE date_debut > '2003-12-31' AND date_debut < '2005-01-01';
6) Liste des expositions (N°, titre, prix, visiteurs) et de ce qu'elles rapportent (chiffre d'affaire = nombre de visiteurs
* prix)
SELECT Num_expo, titre, prix, visiteurs, cout, visiteurs, prix*visiteurs AS "Chiffre d'affaire" FROM expo ; 7) Liste des expositions (N°, titre, prix, visiteurs, coût) et de leur bénéfice (nombre de visiteurs* prix - coût) SELECT Num_expo, titre, prix, visiteurs, cout, prix*visiteurs - cout AS Bénéfice FROM expo ;
8) Liste des expositions rentables (dont le bénéfice est positif).
Résultat à obtenir: 3 enregistrements SELECT FROM expo WHERE prix*visiteurs >= cout;
SELECT FROM expo WHERE prix*visiteurs - cout >= 0;
9) Liste des expositions avec pour chacune, son bénéfice par m² et son coût par m².
SELECT num, titre, visiteurs, prix, (prix*visiteurs-cout)/surface as bénéfice/m²,cout/surface as cout/m² FROM expo 10) Liste des expositions qui se sont déroulées en partie sur 2004.
- SELECT * FROM expo
WHERE date_debut <= '2004-12-31' AND date_fin >='2004-01-01' - SELECT * FROM expo
WHERE year(date_debut) <= '2004' AND year(date_fin)>='2004'
Novembre 2017 Base de données: Requêtes SQL mono table Page 2