Les Requêtes S.Q.L « Structured Query Language)
SQL Historique
Le cas support : Agence de Voyage
Présentation de l’écran Access pour la réalisation d’une requête S.Q.L Faire apparaître les relations pour avoir les noms des propriétés La fenêtre requête en SQL
Opérateurs de l’Algèbre Relationnelle et Arithmétiques 1) LA PROJECTION 2) LA SELECTION 3) LES CALCULS 4) LA JOINTURE
LA PROJECTION
PROJECTION On veut garder les champs Code_client, Nom_client,Prénom_client, Ville_Client uniquement SELECT SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM FROM [Clients];
R1 : Liste des Clients SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM Clients;
R2 : Liste des Voyages SELECT SELECT * FROM FROM [VOYAGES];
R3 : Liste des Agences SELECT SELECT * FROM FROM [Agences de voyage];
R4 : Liste des Clients code, nom (tri croissant), prénom, ville SELECT SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM FROM [Clients] ORDER BY ORDER BY [Nom_client];
R5 : Liste des Agences (tri sur le nom de l’agence) SELECT SELECT * FROM FROM [Agences de voyage] ORDER BY ORDER BY [Nom_agence];
R601: Liste des clients en remplaçant les intitulés des colonnes nom client en NOMS, prénom_client en PRENOMS,Adresses et Villes (tri décroissant Villes) SELECTASAS AS AS SELECT [Nom_client] AS Noms, [Prénom_client] AS Prénoms, [Adresse_rue_client] AS Adresses, [Ville_client] AS Villes FROM FROM [Clients] ORDER BYDESC ORDER BY [Ville_client] DESC ;
Opérateurs de l’Algèbre Relationnelle et Arithmétiques 1) LA PROJECTION 2) LA SELECTION 3) LES CALCULS 4) LA JOINTURE
LA SELECTION
R7 : Liste des clients de Paris (tri croissant sur le nom du client) SELECT SELECT * FROM FROM [Clients] WHERE WHERE [Ville_client]="PARIS" ORDER BY ORDER BY [Nom_client];
R8 : Liste des agences des Bouches du Rhône (tri sur le CP) SELECT SELECT [Code_agence], [Nom_agence], [Adresse_agence], [CP_agence], [Ville_agence] FROM FROM [Agences de voyage] WHERELike WHERE [CP_agence] Like "13*" ORDER BY ORDER BY [CP_agence];
R9 : Liste des Clients de Manosque OU Aix en Provence (tri sur le nom du client) SELECT SELECT * FROM FROM [Clients] WHEREOr WHERE [Ville_client]="AIX EN PROVENCE" Or [Ville_client]="MANOSQUE" ORDER BY ORDER BY [Nom_client];
R10: Afficher le nom du client N°18 avec son code postal, ainsi que le nom du client N° 50 avec son CP SELECT SELECT [Nom_client], [CP_client] FROM FROM [CLIENTS] WHEREin WHERE [Code_client] in (18,50);
R11: Liste des voyages à Paris ou Madrid en affichant le nom du voyage avec la durée et la date du voyage (tri sur la date du départ) SELECT SELECT [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] FROM FROM [Voyages] WHEREOr WHERE [Nom_voyage]="PARIS" Or [Nom_voyage]="MADRID" ORDER BY ORDER BY [Date_départ];
R12: Afficher la liste des voyages (Nom voyage) sauf le voyage à destination de ZURICH (tri sur le nom du voyage) SELECT SELECT [Nom_voyage] FROM FROM [Voyages] WHERE Not WHERE Not [Nom_voyage]="ZURICH" ORDER BY ORDER BY [Nom_voyage];
R13 :Liste des clients dont le nom commence par la lettre P en changeant l’intitulé de la colonne par Noms Lettre P (trier sur Nom_client) SELECTAS SELECT [Nom_client] AS [NOMS lettre P] FROM FROM Clients WHERELIKE WHERE [Nom_client] LIKE "P*" ORDER BY ORDER BY [Nom_client];
R14: Voyages dont la durée >=15 jours (tri croissant sur la durée du voyage) SELECTAS ASAS SELECT [Num_voyage] AS [Référence du voyage], [Nom_voyage] AS [Destination du voyage], [Durée_voyage] AS [Durée des voyages jours] FROM FROM Voyages WHERE WHERE [Durée_voyage]>=15 ORDER BY ORDER BY [Durée_voyage];
R15: Liste des voyages proposés en 2004 dont la durée est >= 9 jours (tri croissant sur la propriété date_départ) SELECT SELECT [Num_voyage], [Nom_voyage], [Date_départ], [Durée_voyage] FROM FROM Voyages WHEREBetweenAnd WHERE [Date_départ] Between #1/1/2004# And #12/31/2004# AND AND [Durée_voyage]>=9 ORDER BY ORDER BY [Date_départ];
R16: Liste des voyages dont le prix est compris entre 1000€ et 2400€ (tri croissant sur la date_départ) SELECT SELECT [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] FROM FROM Voyages WHEREBETWEENAND WHERE [Prix_voyage] BETWEEN 1000 AND 2400 ORDER BY ORDER BY [Date_départ];
Opérateurs de l’Algèbre Relationnelle et Arithmétiques 1) LA PROJECTION 2) LA SELECTION 3) LES CALCULS 4) LA JOINTURE
Les Calculs
R17: Prix du voyage le plus cher (afficher uniquement cette donnée) SELECTMAX()AS SELECT MAX( [Prix_voyage] ) AS [Prix du voyage le plus cher] FROM FROM Voyages;
R18: Prix du voyage le plus faible (afficher uniquement cette donnée) SELECT Min() AS SELECT Min( [Prix_voyage] ) AS [PRIX DU VOYAGE LE PLUS BAS] FROM FROM Voyages;
R19: Nombre de clients (le résultat doit être stocké sous l’intitulé Nombre de clients Net_Provence) SELECT COUNT()AS SELECT COUNT( [Code_client] ) AS [Nombre de clients Net_provence] FROM FROM Clients;
R20: Nombre de voyages SELECT COUNT()AS SELECT COUNT( [Num_voyage] ) AS [Nombre de Voyages Net_provence] FROM FROM [Voyages];
R21 : Nombre total d’Agences SELECT COUNT()AS SELECT COUNT( [Code_agence] ) AS [Nombre total Agences] FROM FROM [Agences de voyage];
R22: Prix moyen des voyages Net_Provence SELECT AVG()AS SELECT AVG( [Prix_voyage] ) AS [PRIX MOYEN DES VOYAGES NET_PROVENCE] FROM FROM [Voyages];
R23: Prix moyen des voyages en fonction de la durée des voyages SELECTAVG() AS SELECT [Durée_voyage], AVG([Prix_voyage]) AS [Prix moyen des voyages] FROM FROM [Voyages] GROUP BY GROUP BY [Durée_voyage];
Opérateurs de l’Algèbre Relationnelle et Arithmétiques 1) LA PROJECTION 2) LA SELECTION 3) LES CALCULS 4) LA JOINTURE
LA JOINTURE
R24: NB de places proposées par voyage et par agence SELECT SELECT [Nom_agence], [#num_voyage], [Nombr_de_place_proposées] FROM FROM [Agences de voyage], [Nombre de places proposées par agence] WHERE WHERE [Agences de voyage].Code_agence=[Nombre de places proposées par agence].[#code_agence];
R25: Montant dû par client SELECT SELECT [Nom_client], [Prénom_client], [Adresse_rue_client], [CP_client], [Ville_client], [N° réservation], [Date réservation], [Nom_voyage], [Date_départ], [Prix_voyage], [Nombre_places_réservées], [Tx_de_remise], ([Prix_voyage]*(1- [Tx_de_remise]))*[Nombre_places_réservées] AS [Montant dû] FROM FROM [Clients], [Réservations], [lignes réservation], [Voyages] WHEREAnd And WHERE Clients.Code_client=Réservations.[#Code client] And Réservations.[N° réservation]=[Lignes réservation].[#Num_réservation] And Voyages.Num_voyage=[Lignes réservation].[#Num_voyage];
R26: NB total de places proposées par voyage (trier sur le total) SELECTAS AS AS SELECT [Num_voyage] AS [Référence du voyage Net_provence], [Nom_voyage] AS [Nom du voyage], Sum([Nombr_de_place_proposées]) AS [places_ proposées par voyage] FROM FROM [Nombre de places proposées par agence], [Voyages] WHERE WHERE Voyages.Num_voyage=[Nombre de places proposées par agence].[#num_voyage] GROUP BY GROUP BY [Num_voyage], [Nom_voyage] ORDER BY ORDER BY Sum([Nombr_de_place_proposées]);
R27: Réservations du 01/01/2003 au 31/01/2003 SELECTAS ASAS SELECT [Nom_client] AS [Nom du Client], [Prénom_client] AS Prénom, [Date réservation] AS [Réservations de janvier] FROM FROM [Clients], [Réservations] WHERE AndAnd WHERE Clients.Code_client=Réservations.[#Code client] And [Date réservation]>=#1/1/2003# And [Date réservation]<=#1/31/2003#;
R28 :Total des places proposées par agence SELECTSUM AS SELECT [Nom_agence], SUM ([Nombr_de_place_proposées]) AS [Total places par agence] FROM FROM [Agences de voyage], [Nombre de places proposées par agence] WHERE WHERE [Agences de voyage].Code_agence=[Nombre de places proposées par agence].[#code_agence] GROUP BY GROUP BY [Nom_agence];
Académie Aix-Marseille Rénovation STG Formation S.Q.L Formateurs : Nathalie Richit Patrick Laupies Patrice Viaud Thierry Pouplier
FIN