Les Requêtes S.Q.L « Structured Query Language)

Slides:



Advertisements
Présentations similaires
Initiation au langage S.Q.L.*
Advertisements

26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
L’optimiseur ORACLE L’optimiseur ORACLE suit une approche classique: Génération de plusieurs plans d’exécution. Estimation du coût de chaque plan généré.
Bases de Données Avancées: Bases de Données Relationnelles
Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
Bases de données : modèlisation et SGBD
Jeudi 24/09 Correction TP du mardi 22/09
4 relations –EMPLOYE –SERVICE –LOCALITE –ADRESSE.
Les requêtes Manière de dialoguer avec une base de donnée pour :
Optimisation de Requêtes
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Cours SQL.
Optimisation de Requêtes
Introduction aux Bases de Données
Risques et Conseils de sécurité.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
T ECHNOLOGIES O RACLE Ordres de base © sebvita.com.
LMD: Langage de Manipulation de Données
XQuery 1. Introduction 2. Modèle de données 3. XQuery par l'exemple
Le Langage d’Interrogation de Données LID Multi-table Jointures
Optimisation des Requêtes. Introduction Introduction.
Regrouper les Données avec les Fonctions de Groupe
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
Algèbre relationnelle et SQL
SQL Partie 3 : (LID : Langage d'interrogation de données)
Cours N°2 Base de Données & Langage SQL
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL PHILIPPE BANCQUART.
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
Présentation à la DGESCO, 16 juin 2010 André OUZOULIAS, formateur à l’IUFM de Versailles-UCP Département PEPSSE (Philosophie, Épistémologie, Psychologie,
Mise en œuvre du langage MDX
Question 1.1 Q1 Q2 Q3 Q4 USA Canada home Computer phone security
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Contraintes et Triggers Chapitre 5,
SQL partie3: Langage de définition des données
Initiation aux bases de données et à la programmation événementielle
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
MENU GESTION EPREUVE GESTION EQUIPE GESTION RESULTAT Gestion catégorie
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Chapitre 5 : Le langage SQL
Le langage SQL LDD : Langage de Définition de Données
01. Liste des noms de candidats avec leur date de naissance.
Mise en œuvre du langage MDX
Formation ISN II Les bases de données 1/3 Mercredi 10 juillet 2013
Traduction des opérations sous MySQL
Rédigez le modèle relationnel à la source des tables de biblio.mdb.
Optimisation de requêtes
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
Jean Paul CHANLON IUT1 Grenoble Génie Mécanique et Productique
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
INTRODUCTION AUX BASES DE DONNEES SQL -2
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
CONCEPTS BD - Synthèse journée 1 :
Base de données Magasins.accdb
Bases de données : modèlisation et SGBD Séance 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 8 Support de cours rédigé par Bernard COFFIN Université.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Langage de manipulation de données (LMD)
9. Interrogation de la base de données
Structured Query Language
SQL LID – INTERROGATIN DES DONNEES
Manipulation D’Une Base De Données
Les Requêtes S.Q.L « Structured Query Language). SQL Historique.
Transcription de la présentation:

Les Requêtes S.Q.L « Structured Query Language) Rénovation 1ière STG Les requêtes servent à interroger, mettre à jour la base, … On ne traitera que du premier aspect dans ce diaporama. SQL (Structured Query Language, traduisez Langage de requêtes structuré) est un langage de définition de données (LDD, ou en anglais DDL Data Définition Language), un langage de manipulation de données (LMD, ou en anglais DML, Data Manipulation Language), et un langage de contrôle de données (LCD, ou en anglais DCL, Data Control Language), Formateurs : Richit Nathalie, Pouplier Thierry, Patrice Viaud, Patrick Laupies

Le cas support : Net_Provence CONTEXTE: Net_Provence est un réseau d’agences de voyage né en Provence, il y a quelques années, et qui se développe actuellement dans toute la France. Le système de réservation est géré par un SGBDR. Chaque agence de voyage dispose, pour un voyage donné, d’un nombre de places limité. Il vous est demandé de d’interroger la base existante en créant des requêtes en SQL. Voir Polycop Modèle relationnel Tables

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 LA PROJECTION LA SELECTION LES CALCULS LA JOINTURE Trois opérations que l’on retrouvera quasi-systématiquement Les deux premières permettent d’agir sur 1 seule table La dernière sera utilisé dès que plusieurs tables sont nécessaires

LA PROJECTION

PROJECTION On veut garder les champs PROJECTION permet de travailler sur les champs (colonnes) SELECT, FROM : 2 mots clés qui figureront systématiquement Rq : on va à la ligne pour faciliter la lecture de la phrase mais on pourrait tout écrire à la suite ! On veut garder les champs Code_client, Nom_client,Prénom_client, Ville_Client uniquement SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM [Clients];

R1 : Liste des Clients SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM Clients; SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM Clients;

R2 : Liste des Voyages SELECT * FROM VOYAGES; SELECT * FROM [VOYAGES];

R3 : Liste des Agences SELECT * FROM [Agences de voyage]; SELECT *

R4 : Liste des Clients code, nom (tri croissant), prénom, ville SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM [Clients] ORDER BY [Nom_client]; SELECT [Code_client], [Nom_client], [Prénom_client], [Ville_client] FROM [Clients] ORDER BY [Nom_client];

R5 : Liste des Agences (tri sur le nom de l’agence) SELECT * FROM [Agences de voyage] ORDER BY [Nom_agence]; SELECT * FROM [Agences de voyage] ORDER BY [Nom_agence];

ORDER BY [Ville_client] DESC; 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) SELECT [Nom_client] AS Noms, [Prénom_client] AS Prénoms, [Adresse_rue_client] AS Adresses, [Ville_client] AS Villes FROM [Clients] ORDER BY [Ville_client] DESC; SELECT [Nom_client] AS Noms, [Prénom_client] AS Prénoms, [Adresse_rue_client] AS Adresses, [Ville_client] AS Villes FROM [Clients] ORDER BY [Ville_client] DESC;

Opérateurs de l’Algèbre Relationnelle et Arithmétiques LA PROJECTION LA SELECTION LES CALCULS LA JOINTURE Trois opérations que l’on retrouvera quasi-systématiquement Les deux premières permettent d’agir sur 1 seule table La dernière sera utilisé dès que plusieurs tables sont nécessaires

LA SELECTION

R7 : Liste des clients de Paris (tri croissant sur le nom du client) SELECT * FROM [Clients] WHERE [Ville_client]="PARIS" ORDER BY [Nom_client]; SELECT * FROM [Clients] WHERE [Ville_client]="PARIS" ORDER BY [Nom_client];

R8 : Liste des agences des Bouches du Rhône (tri sur le CP) SELECT [Code_agence], [Nom_agence], [Adresse_agence], [CP_agence], [Ville_agence] FROM [Agences de voyage] WHERE [CP_agence] Like "13*" ORDER BY [CP_agence]; SELECT [Code_agence], [Nom_agence], [Adresse_agence], [CP_agence], [Ville_agence] FROM [Agences de voyage] WHERE [CP_agence] Like "13*" ORDER BY [CP_agence];

R9 : Liste des Clients de Manosque OU Aix en Provence (tri sur le nom du client) SELECT * FROM [Clients] WHERE [Ville_client]="AIX EN PROVENCE" Or [Ville_client]="MANOSQUE" ORDER BY [Nom_client]; SELECT * FROM [Clients] WHERE [Ville_client]="AIX EN PROVENCE" Or [Ville_client]="MANOSQUE" 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 [Nom_client], [CP_client] FROM [CLIENTS] WHERE [Code_client] in (18,50); SELECT [Nom_client], [CP_client] FROM [CLIENTS] WHERE [Code_client] in (18,50);

SELECT [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] 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 [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] FROM [Voyages] WHERE [Nom_voyage]="PARIS" Or [Nom_voyage]="MADRID" ORDER BY [Date_départ]; SELECT [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] FROM [Voyages] WHERE [Nom_voyage]="PARIS" Or [Nom_voyage]="MADRID" 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 [Nom_voyage] FROM [Voyages] WHERE Not [Nom_voyage]="ZURICH" ORDER BY [Nom_voyage]; SELECT [Nom_voyage] FROM [Voyages] WHERE Not [Nom_voyage]="ZURICH" ORDER BY [Nom_voyage];

SELECT [Nom_client] AS [NOMS lettre P] FROM Clients 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) SELECT [Nom_client] AS [NOMS lettre P] FROM Clients WHERE [Nom_client] LIKE "P*" ORDER BY [Nom_client]; SELECT [Nom_client] AS [NOMS lettre P] FROM Clients WHERE [Nom_client] LIKE "P*" ORDER BY [Nom_client];

R14: Voyages dont la durée >=15 jours (tri croissant sur la durée du voyage) 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 Voyages WHERE [Durée_voyage]>=15 ORDER BY [Durée_voyage]; 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 Voyages WHERE [Durée_voyage]>=15 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 [Num_voyage], [Nom_voyage], [Date_départ], [Durée_voyage] FROM Voyages WHERE [Date_départ] Between #1/1/2004# And #12/31/2004# AND [Durée_voyage]>=9 ORDER BY [Date_départ]; SELECT [Num_voyage], [Nom_voyage], [Date_départ], [Durée_voyage] FROM Voyages WHERE [Date_départ] Between #1/1/2004# And #12/31/2004# AND [Durée_voyage]>=9 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 [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] FROM Voyages WHERE [Prix_voyage] BETWEEN 1000 AND 2400 ORDER BY [Date_départ]; SELECT [Nom_voyage], [Date_départ], [Durée_voyage], [Prix_voyage] FROM Voyages WHERE [Prix_voyage] BETWEEN 1000 AND 2400 ORDER BY [Date_départ];

Opérateurs de l’Algèbre Relationnelle et Arithmétiques LA PROJECTION LA SELECTION LES CALCULS LA JOINTURE Trois opérations que l’on retrouvera quasi-systématiquement Les deux premières permettent d’agir sur 1 seule table La dernière sera utilisé dès que plusieurs tables sont nécessaires

Les Calculs

R17: Prix du voyage le plus cher (afficher uniquement cette donnée) SELECT MAX([Prix_voyage]) AS [Prix du voyage le plus cher] FROM Voyages; SELECT MAX([Prix_voyage]) AS [Prix du voyage le plus cher] FROM Voyages;

R18: Prix du voyage le plus faible (afficher uniquement cette donnée) SELECT Min([Prix_voyage]) AS [PRIX DU VOYAGE LE PLUS BAS] FROM Voyages; SELECT Min([Prix_voyage]) AS [PRIX DU VOYAGE LE PLUS BAS] FROM Voyages;

R19: Nombre de clients (le résultat doit être stocké sous l’intitulé Nombre de clients Net_Provence) SELECT COUNT([Code_client]) AS [Nombre de clients Net_provence] FROM Clients; SELECT COUNT([Code_client]) AS [Nombre de clients Net_provence] FROM Clients;

R20: Nombre de voyages SELECT COUNT([Num_voyage]) AS [Nombre de Voyages Net_provence] FROM [Voyages]; SELECT COUNT([Num_voyage]) AS [Nombre de Voyages Net_provence] FROM [Voyages];

R21 : Nombre total d’Agences SELECT COUNT([Code_agence]) AS [Nombre total Agences] FROM [Agences de voyage]; SELECT COUNT([Code_agence]) AS [Nombre total Agences] FROM [Agences de voyage];

R22: Prix moyen des voyages Net_Provence SELECT AVG([Prix_voyage]) AS [PRIX MOYEN DES VOYAGES NET_PROVENCE] FROM [Voyages]; SELECT AVG([Prix_voyage]) AS [PRIX MOYEN DES VOYAGES NET_PROVENCE] FROM [Voyages];

R23: Prix moyen des voyages en fonction de la durée des voyages SELECT [Durée_voyage], AVG([Prix_voyage]) AS [Prix moyen des voyages] FROM [Voyages] GROUP BY [Durée_voyage]; SELECT [Durée_voyage], AVG([Prix_voyage]) AS [Prix moyen des voyages] FROM [Voyages] GROUP BY [Durée_voyage];

Opérateurs de l’Algèbre Relationnelle et Arithmétiques LA PROJECTION LA SELECTION LES CALCULS LA JOINTURE Trois opérations que l’on retrouvera quasi-systématiquement Les deux premières permettent d’agir sur 1 seule table La dernière sera utilisé dès que plusieurs tables sont nécessaires

LA JOINTURE

R24: NB de places proposées par voyage et par agence SELECT [Nom_agence], [#num_voyage], [Nombr_de_place_proposées] FROM [Agences de voyage], [Nombre de places proposées par agence] WHERE [Agences de voyage].Code_agence=[Nombre de places proposées par agence].[#code_agence]; SELECT [Nom_agence], [#num_voyage], [Nombr_de_place_proposées] FROM [Agences de voyage], [Nombre de places proposées par agence] WHERE [Agences de voyage].Code_agence=[Nombre de places proposées par agence].[#code_agence];

R25: Montant dû par client 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 [Clients], [Réservations], [lignes réservation], [Voyages] 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]; 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 [Clients], [Réservations], [lignes réservation], [Voyages] 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) 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 [Nombre de places proposées par agence], [Voyages] WHERE Voyages.Num_voyage=[Nombre de places proposées par agence].[#num_voyage] GROUP BY [Num_voyage], [Nom_voyage] ORDER BY Sum([Nombr_de_place_proposées]); 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 [Nombre de places proposées par agence], [Voyages] WHERE Voyages.Num_voyage=[Nombre de places proposées par agence].[#num_voyage] GROUP BY [Num_voyage], [Nom_voyage] ORDER BY Sum([Nombr_de_place_proposées]);

R27: Réservations du 01/01/2003 au 31/01/2003 SELECT [Nom_client] AS [Nom du Client], [Prénom_client] AS Prénom, [Date réservation] AS [Réservations de janvier] FROM [Clients], [Réservations] WHERE Clients.Code_client=Réservations.[#Code client] And [Date réservation]>=#1/1/2003# And [Date réservation]<=#1/31/2003#; SELECT [Nom_client] AS [Nom du Client], [Prénom_client] AS Prénom, [Date réservation] AS [Réservations de janvier] FROM [Clients], [Réservations] 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 SELECT [Nom_agence], SUM([Nombr_de_place_proposées]) AS [Total places par agence] FROM [Agences de voyage], [Nombre de places proposées par agence] WHERE [Agences de voyage].Code_agence=[Nombre de places proposées par agence].[#code_agence] GROUP BY [Nom_agence]; SELECT [Nom_agence], SUM([Nombr_de_place_proposées]) AS [Total places par agence] FROM [Agences de voyage], [Nombre de places proposées par agence] WHERE [Agences de voyage].Code_agence=[Nombre de places proposées par agence].[#code_agence] 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