SIO SLAM1: Exploitation d’un schéma de données

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
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.
Bases de Données Avancées: Bases de Données Relationnelles
Optimisation des requêtes
Les requêtes Manière de dialoguer avec une base de donnée pour :
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Initiation au système d’information et aux bases de données
LMD: Langage de Manipulation de Données
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
Les dossiers débiteurs
Tableau croisé dynamique sous Excel (TCD).
La création de sinistre, la sélection à des fins de consultation, modification ou impression sont accessibles grâce à la barre de menu à gauche de l'écran.
LE LANGAGE SQL Langage de manipulation de données (LMD)
Methode de Tri efficace
Chap 4 Les bases de données et le modèle relationnel
Laini Hyacinthe 2 e NSSE Access Les requêtes Laini Hyacinthe 2 e NSSE Plan 1.Quelques définitionsQuelques définitions 2.À quoi servent les requêtesÀ
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Algèbre relationnelle et SQL
SQL Partie 3 : (LID : Langage d'interrogation de données)
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL PHILIPPE BANCQUART.
INSCRIPTION AUX ELEMENTS
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Manipulation des données Requêtes simples
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.
Limiter et trier des données
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.
TP n°3 Javascript Contrôle de formulaire
Chapitre 5 : Le langage SQL
Traduction des opérations sous MySQL
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
La fonction RECHERCHEV
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
CD Découvrez BATIPRIX CD.
ETAPE04 « Des besoins d’information… » « Des besoins d’information » En définissant son schéma relationnel, le Moulin des Costières définit une organisation.
Rédigez le modèle relationnel à la source des tables de biblio.mdb.
Initiation aux bases de données
Optimisation de requêtes
Réalisé par VISAGE JONATHAN (aidé par SLUYS DIDRIC) 2 NSSE.
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II PRO-1024.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
DOSSIER G10 – La base de données Relationnelle
Sélection de colonnes (la projection)
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Jean Paul CHANLON IUT1 Grenoble Génie Mécanique et Productique
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
ATELIERS.
Complément sous-requêtes
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
CONCEPTS BD - Synthèse journée 1 :
Base de données Magasins.accdb
1 Tableur Excel. 2 Introduction Un tableur est un logiciel permettant de manipuler des données numériques et d'effectuer automatiquement des calculs sur.
Formation SGA Module Budget Durée : 1 jour. Sommaire Formation Budget 1.Notions de base 2.Accéder au budget – Chemin d’accès au fichier Excelarator –
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 6 L ’extraction de données Le SELECT.
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é.
Les fonctions et les regroupements B.T.S. S.I.O – SI3 – 1.
Langage de manipulation de données (LMD)
Manipulation D’Une Base De Données
SIO SI3 : Exploitation des données
Transcription de la présentation:

SIO SLAM1: Exploitation d’un schéma de données Chapitre 1 : Les fonctions de regroupement Et agrégats

Regroupements et agrégats La fonction de regroupement. Les agrégats sur regroupements. Les sélections sur agrégats. .

Regroupements et agrégats La fonction de regroupement. Les agrégats sur regroupements. Les sélections sur agrégats. .

Fonction de regroupement Lorsque la projection renvoie plusieurs occurrences identiques, cela crée une gêne pour l'exploitation. La solution que nous avons mise en place est de préfixer la projection de l'option distinct, qui permet d'éliminer ces doublons. Toutefois, il est possible de considérer chaque ensemble de doublons comme des regroupements de ligne sur lesquels il est possible de faire des calculs : compter le nombre de ligne de chaque regroupement, calculer le cumul d'un champ pour chaque regroupement, … ,

Fonction de regroupement L'avantage de l'emploi de la fonction de regroupement est qu'il n'y a plus à s'inquiéter des doublons d'occurrences dans la projection. Forme générale d'une requête : select <projection> from <table1> inner join <table2> on<champTable1> = <champTable2> [ where <sélection> ] group by <liste des champs de regroupement> [ order by <champ> [ <optionTri> ] ] ,

Fonction de regroupement Remarque importante : A chaque fois que vous pouvez dire il faut déterminer ... pour chaque <critère>, le critère vous donne une idée des champs de regroupement. Il est indispensable qu'il y ait au moins un identifiant. Pour chaque élève, Pour chaque devis, Pour chaque produit, … ,

Gestion des élèves Elève - elvId - elvNom - elvPrénom - elvDateNaiss - elvClasse Classe - clCode - clLib - clNiveau FK elvClasse = clCode PK ,

Gestion des élèves Voici un extrait de la table Elève : ,

Gestion des élèves Donnez la liste des occurrences que pourrait renvoyer la requête suivante, et entourez chaque groupe créé par la fonction de regroupement : Select elvPrénom From Elève Group by elvPrénom ,

Gestion des élèves Donnez la liste des occurrences que pourrait renvoyer la requête suivante, et entourez chaque groupe créé par la fonction de regroupement : Select elvClasse From Elève Group by elvClasse .

Regroupements et agrégats La fonction de regroupement. Les agrégats sur regroupements. Les sélections sur agrégats. .

Regroupements et agrégats La fonction de regroupement. Les agrégats sur regroupements. Les sélections sur agrégats. .

Les agrégats L'agrégat count(*) permet de compter le nombre de lignes de chaque groupe créé par la fonction de regroupement. ,

Les agrégats Select elvPrénom, count(*) Donnez la liste des occurrences que pourrait renvoyer la requête suivante : Select elvPrénom, count(*) From Elève Group by elvPrénom ,

Les agrégats Select elvClasse, count(*) Donnez la liste des occurrences que pourrait renvoyer la requête suivante : Select elvClasse, count(*) From Elève Group by elvClasse ,

Les alias La fonction s'alias est utilisée pour renommer un champ ou une table. Ainsi, les champs renvoyés par le projection suivante : Select elvId Identifiant, elvNom NomFamille, elvPprénom Prénom, elvDateBorn DateNaissance From Elève Sont : ,

Les autres agrégats D'autres agrégats sont disponibles : avg (<nomChamp>) permet de calculer la moyenne des valeurs contenues dans le champ précisé. Il faut que ce soit un champ de type numérique. sum (<nomChamp>) permet de calculer la somme totale des valeurs contenues dans le champ précisé. Il faut que ce soit un champ de type numérique. ,

Les autres agrégats D'autres agrégats sont disponibles : min (<nomChamp>) permet de déterminer la plus petite valeur des valeurs contenues dans le champ précisé. Il faut que ce soit un champ de type numérique, chaîne ou date. max (<nomChamp>) permet de déterminer la plus grande valeur des valeurs contenues dans le champ précisé. Il faut que ce soit un champ de type numérique, chaîne ou date. ,

Les autres agrégats D'autres agrégats sont disponibles : Il existe d'autres agrégats, à découvrir au besoin... Il est également possible d'effectuer des opérations mathématiques additions, multiplication, … entre les champs d'une même projection, y compris les agrégats. ,

Exercice devis produit client contenu , - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté ,

Exercice Pour chacune des requêtes demandées, répondez d'abord à la question "pour chaque quoi/qui ?", en précisant à chaque fois l'identifiant rattaché. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté Le nombre d'heures de main d'œuvre total prévu pour chaque client sur l'ensemble des devis, ainsi que le nom des clients correspondant. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté Le nom des clients et le nombre de devis de ces clients, qui ne sont pas en état d'attente et qui ont été effectués depuis le 1er janvier de l'année courante, en triant les réponses par ordre alphabétique sur le nom des clients. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté Le nombre de fois que chaque produit a été intégré dans un devis accepté. Il faudra préciser à quel identifiant et quelle désignation de produit cela correspond. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté Le nombre de fois que l'article JR12 a été intégré dans un devis refusé. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté La liste des devis et le montant total de chacun pour le client de numéro 9052. .

Regroupements et agrégats La fonction de regroupement. Les agrégats sur regroupements. Les sélections sur agrégats. .

Regroupements et agrégats La fonction de regroupement. Les agrégats sur regroupements. Les sélections sur agrégats. .

Sélection sur agrégats Une sélection sur agrégat est comme une sélection sur un champ : elle sélectionne (limite) le nombre d'occurrences renvoyées par la requête. La première différence est qu'ici, elle se fait sur un agrégat, et non sur un champ. La seconde est qu'elle ne se fait pas dans le Where, mais dans le Having… ,

Sélection sur agrégats Syntaxe générale select <projection> from <table1> inner join <table2> on<champTable1> = <champTable2> [ where <sélection> ] group by <liste des champs de regroupement> having <sélection(s) sur agrégat > [ order by <champ> [ <optionTri> ] ] ,

Sélection sur agrégats L'agrégat de la sélection ne fait pas forcément partie de la projection. Il n'y a pas de having sans group by. L'agrégat peut être employé avec tous les opérateurs mathématiques utilisés pour les sélections sur champs. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté Le nom de tous les clients qui ont effectués au moins un devis accepté. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté La référence et la désignation de tous les produits qui ont été intégrés au moins dans deux devis. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté La référence et la désignation de tous les produits dont la quantité totale prévue dans l'ensemble des devis est supérieure à 10. ,

Exercice devis - devNum - devDate - devEtat - nbrMO - cliNum produit - prodRef - prodDes - prodPU - prodUMesure client - cliNom - cliRue - cliCP - cliVille - cliTel contenu - quantité PK cliNum = cliNum FK FK devNum = devNum PK FK prodRef = prodRef PK dev_etat : 0 = validé 1 = en attente 2 = rejeté Le nom de tous les clients qui ont eu besoin d'au moins 3 unités du produit JN5, en précisant le nombre de fois où ils ont eu besoin de ce produit et la quantité totale prévue. ..

Fin