Initiation aux bases de données et à la programmation événementielle

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Manipulation des données dans SQL
Le langage de requêtes SPARQL SPARQL Protocol And RDF Query Language
Fonctionnalités des SGBD
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
Initiation aux bases de données et à la programmation événementielle
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
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.
LMD: Langage de Manipulation de Données
Contrôles d'accès aux données
BASE DE DONNEES RELATIONNELLES
LE LANGAGE SQL Langage de manipulation de données (LMD)
Initiation aux bases de données et à la programmation événementielle
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.
1 Initiation aux bases de données et à la programmation événementielle Cours N°9 : Gestion de la cohérence avec des sous-formulaires. Support de cours.
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.
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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
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.
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.
Partie2: Introduction à SQL LANGAGE DE REQUETES RELATIONNEL CHAPITRE 4: INTERROGATION DES BASES DE DONNÉES.
SIO SLAM1: Exploitation d’un schéma de données
Traduction des opérations sous MySQL
Initiation aux bases de données et à la programmation événementielle Cours N°3 : langage de manipulation de données. Support de cours de Souheib BAARIR.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Sélection de colonnes (la projection)
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
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).
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
1 Initiation aux bases de données et à la programmation événementielle Cours N°8 : Gestion de la cohérence avec des zones de liste déroulantes. Souheib.
INTRODUCTION AUX BASES DE DONNEES SQL -2
Complément sous-requêtes
Cours n°2 Implémentation et exploitation
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle Exercices Université Panthéon-Assas Paris 2 L2 Economie-Gestion.
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
Base de données Magasins.accdb
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
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 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
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é.
Langage de manipulation de données (LMD)
Manipulation D’Une Base De Données
Transcription de la présentation:

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). Support de cours de Souheib BAARIR. Page web : pagesperso-systeme.lip6.fr/Souheib.Baarir/bdvba/support.htm E-mail : souheib.baarir@u-paris10.fr Université Paris Ouest Nanterre la Défense. 2009-2010.

SQL : requêtes statistiques Plusieurs types de requêtes : d’interrogation. de manipulation : insert, update, delete… de définition : create, alter, drop… Les requêtes statistiques SELECT [DISTINCT] liste de champs FROM liste de tables [WHERE prédicats] , fonctions d’agrégats Liste des champs servant à l’agrégation de plusieurs enregistrements [GROUP BY définition des groupes] [HAVING condition] Autre clause de restriction qui portent sur les fonctions et champs d’agrégat.

Requêtes statistiques Le calcul se fait sur les données d’un groupe de plusieurs enregistrements d’une table R0. Ces enregistrements doivent avoir un point commun : des champs qui ont la même valeur. Ils sont agrégés pour n’en faire plus qu’un qui comprend : Une partie des champs communs (éventuellement tous). Les résultats des calculs. Les enregistrements ainsi décrits forment une nouvelle table R1 (le résultat de la requête).

Les fonctions d’agrégats Syntaxe : nom_de_la_fonction (expression). Sémantique : calcule une valeur à partir des valeurs de tous les enregistrements agrégés. Les fonctions disponibles sont : Sum : somme Count : compte Avg : moyenne Min : le plus petit Max : le plus grand StDev : écart type Var : variance First : premier Last : dernier

Fonctions d’agrégats : Sum Sum : fournit la somme d’un champ Stock La quantité de tout le matériel en stock ? N° Produit désignation quantité 1 Marteau 40 2 Pelle 10 3 Truelle 5 4 Tournevis 100 SELECT Sum(quantité) FROM Stock Exp1000 155 SELECT Sum(quantité) as QG FROM Stock QG 155

Fonctions d’agrégats : Count (1/2) Count : permet de compter le nombre d’enregistrements étudiants N° étudiant Nom Prénom formation 105230 MARTIN Marie MMIA 105234 BERNARD Louis Gestion 105237 THOMAS Alice Anglais 105239 Bernard 105250 MARIE Philippe 105211 Mounier Quel est le nombre d’étudiants par formation ? SELECT formation, count ([N° étudiant]) as Nombre FROM étudiant Group by formation formation Nombre MMIA 1 Gestion 3 Anglais 2

Fonctions d’agrégats : Count (2/2) Quelles sont les formations de étudiants N° étudiant Nom Prénom formation 105230 MARTIN Marie MMIA 105234 BERNARD Louis Gestion 105237 THOMAS Alice Anglais 105239 Bernard 105250 MARIE Philippe 105211 Mounier Quelles sont les formations de Plus de 2 étudiants? SELECT formation, count([N° étudiant]) as Nombre FROM étudiant Group by formation Having count([N° étudiant]) > 2 formation Nombre Gestion 3

Important ! Tous les champs sur lesquels on fait la projection (clause Select) doivent servir dans la clause d’agrégat (clause Group By). Mais, un champ peut figurer dans la clause d’agrégat sans servir à la projection. De même, les champs utilisés dans la restriction Where peuvent ne pas servir à la projection.

Exemples SELECT formation, count([N° étudiant]) FROM étudiant Group by formation Having count([N° étudiant]) >2 formation formation  SELECT formation, prénom, count([N° étudiant]) FROM étudiant Group by formation Having count([N° étudiant]) >2 formation prénom formation  SELECT formation, prénom, count([N° étudiant]) FROM étudiant Group by formation, prénom Having count([N° étudiant]) >2 formation, prénom formation, prénom  SELECT formation, count([N° étudiant]) FROM étudiant Group by formation, prénom Having count([N° étudiant]) >2 formation formation prénom 

SQL : les tris Plusieurs types de requêtes : d’interrogation. de manipulation : insert, update, delete… de définition : create, alter, drop… SELECT [DISTINCT] liste de champs FROM liste de tables [WHERE prédicats] , fonctions d’agrégats [GROUP BY définition des groupes] [HAVING condition] [ORDER BY liste de champs]

Quelles sont les formations triées par ordre alphabétique? Les tris : exemple 1 étudiants N° étudiant Nom Prénom formation 105230 MARTIN Marie MMIA 105234 BERNARD Louis Gestion 105237 THOMAS Alice Anglais 105239 Bernard 105250 MARIE Philippe 105211 MOUNIER Quelles sont les formations triées par ordre alphabétique? SELECT formation FROM étudiant Order By formation Formation Anglais Gestion MMIA Formation Anglais Gestion MMIA SELECT Distinct formation FROM étudiant Order By formation

Quelles sont les formations triées par ordre alphabétique Les tris : exemple 2 étudiants N° étudiant Nom Prénom formation 105230 MARTIN Marie MMIA 105234 BERNARD Louis Gestion 105237 THOMAS Alice Anglais 105239 Bernard 105250 MARIE Philippe 105211 MOUNIER Quelles sont les formations triées par ordre alphabétique inversé? Formation MMIA Gestion Anglais SELECT formation FROM étudiant Order By formation DESC

Exercice : base de données Cinéma Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée, refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) codeC codeR codeF refR refC codeA refF refA

Qui joue dans « mission impossible » ? BD Cinéma : Qui joue dans « mission impossible » ? Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée,refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) SELECT Acteurs.nom,Acteurs.prénom FROM Films INNER JOIN (Acteurs INNER JOIN Joue ON Acteur.codeA =Joue.refA) ON Films.codeF=Joue.refF WHERE films.titre= "Mission impossible"

Combien de films a réalisé « Spielberg » ? BD Cinéma : Combien de films a réalisé « Spielberg » ? Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée,refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) SELECT count(codeF) as Nombre FROM Réalisateurs INNER JOIN Films ON Films.refR=Réalisateurs.codeR WHERE Réalisateurs.nom= "Spielberg"

Combien de films de chaque catégorie a réalisé « Spielberg » ? BD Cinéma : Combien de films de chaque catégorie a réalisé « Spielberg » ? Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée,refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) SELECT Catégorie.intitulé,count(codeF) as Nombre FROM Réalisateurs INNER JOIN (Films INNER JOIN Catégories ON Films.refC= Catégories.codeC) ON Films.refR=Réalisateurs.codeR WHERE Réalisateurs.nom= "Spielberg" Groupe By Catégorie.codeC, Catégorie.intitulé

Quels sont les réalisateurs dont le nom commence par « Spiel »? BD Cinéma : Quels sont les réalisateurs dont le nom commence par « Spiel »? Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée,refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) SELECT Réalisateurs.nom FROM Réalisateurs WHERE Réalisateurs.nom LIKE "Spiel*" LIKE : compare deux expression avec des joker. * : Joker qui signifie une chaine de n’importe quelle taille. ? : Joker qui signifie un seul caractère.

Quels sont les films de durée entre 90 et 120 minutes? BD Cinéma : Quels sont les films de durée entre 90 et 120 minutes? Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée,refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) SELECT Films.titre FROM Films WHERE Filmes.durée >= 90 AND Filmes.durée <=120 SELECT Films.titre FROM Films WHERE Filmes.durée BETWEEN 90 AND 120

Quels sont les films dont la catégorie n’est pas renseignée? BD Cinéma : Quels sont les films dont la catégorie n’est pas renseignée? Catégories(codeC,intitulé) Réalisateurs(codeR,nom,prénom,nationalité) Films(codeF,titre,durée,refR,refC) Acteurs(codeA,nom,prénom) Joue(refF,refA) SELECT Films.titre FROM Films WHERE ISNULL(Filmes.refC) ISNULL : est une fonction qui teste le renseignement d’une valeur dans un champ.

SQL : sous-requêtes Plusieurs types de requêtes : d’interrogation. de manipulation : insert, update, delete… de définition : create, alter, drop… Les sous-requêtes SELECT [DISTINCT] liste de champs FROM liste de tables [WHERE prédicats] , (SELECT…. ) exp op ANY (SELECT...) exp op ALL (SELECT...) exp IN (SELECT...) exp NOT IN (SELECT...) …

Quelle est la formation ayant la le plus grand nombre d’étudiants ? Exemple étudiants N° étudiant Nom Prénom formation 105230 MARTIN Marie MMIA 105234 BERNARD Louis Gestion 105237 THOMAS Alice Anglais 105239 Bernard 105250 MARIE Philippe 105211 Mounier Quelle est la formation ayant la le plus grand nombre d’étudiants ? nb 1 3 2 maximum 3 SELECT formation FROM étudiant GROUP BY formation HAVING count(N° étudiant) = ( ) SELECT max(nb) as maximum FROM ( ) SELECT count(N° étudiant) as nb FROM étudiant GROUP BY formation formation Gestion