INTRODUCTION AUX BASES DE DONNEES SQL -2

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.
Bases de Données Avancées: Bases de Données Relationnelles
Manipulation des données dans SQL
Jeudi 24/09 Correction TP du mardi 22/09
SQL - Subtilités.
Planning 11 Séances 2 devoirs en TD Jeudi 25 mars Jeudi 13 mai.
1 Planning AmphiJeudi 15h 16h30 Notes de cours ! TD : 11 Séances 2 devoirs en TD Mercredi 24 mars Mercredi 12 mai.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Les Requêtes S.Q.L « Structured Query Language)
Les fonctions.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LMD: Langage de Manipulation de Données
L’utilisation des bases de données
BASE DE DONNEES RELATIONNELLES
LE LANGAGE SQL Langage de manipulation de données (LMD)
Bases de données et SGBD relationnels
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
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)
Algèbre relationnelle
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL PHILIPPE BANCQUART.
Mise en œuvre du langage MDX
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
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.
SIO SLAM1: Exploitation d’un schéma de données
Traduction des opérations sous MySQL
Optimisation de requêtes
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Sélection de colonnes (la projection)
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Copyright  Oracle Corporation, Tous droits réservés. 2 Sélection et Tri des Lignes Retournées par un SELECT.
Bases de données et SGBD relationnels
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.
Bases de données avancées
Algorithmique Tableaux de données
Introduction aux Bases de Données et au langage SQL
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle
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 Dépendances et normalisation
INTRODUCTION AUX BASES DE DONNEES Base et métabase
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.
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle Exercices Université Panthéon-Assas Paris 2 L2 Economie-Gestion.
CONCEPTS BD - Synthèse journée 1 :
Base de données Magasins.accdb
De Arnault Chazareix :
Cédric du Mouza – NFA0111 Approfondissement Bases de Données NFA011 Cédric du Mouza (d’après des supports d’Elisabeth Métais)
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é.
Les fonctions et les regroupements B.T.S. S.I.O – SI3 – 1.
Les sous-requêtes ou requêtes imbriquées B.T.S. S.I.O – SI3 – 1.
Langage de manipulation de données (LMD)
Manipulation D’Une Base De Données
4 Copyright © 2004, Oracle. Tous droits réservés. Afficher des données agrégées à l'aide des fonctions de groupe.
Transcription de la présentation:

INTRODUCTION AUX BASES DE DONNEES SQL -2 COURS 2 Université Panthéon-Assas Paris 2 L2 Economie-Gestion

Les fonctions ensemblistes MAX MAX fournit la valeur maximale d ’un attribut Capacité maximale des avions allant à Madrid

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

Les fonctions ensemblistes MAX Capacité maximale des avions allant à Madrid SELECT MAX(avion.cap) FROM avion, vol WHERE vol.numav=avion.numavion AND vol.arrivee=‘ Madrid ’ ; max(cap) 300

Les fonctions ensemblistes MIN MIN fournit la valeur minimale d ’un attribut Heure de départ du 1er vol du 15/5/99

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Les fonctions ensemblistes MIN Heure de départ du 1er vol du 15/5/99 SELECT MIN(vol.hdep) FROM vol WHERE vol.jdep={d ’1999-05-15 ’}; min(hdep) 10:00

Les fonctions ensemblistes COUNT COUNT permet de compter le nombre d ’occurrences Nombre d ’avions au départ de Paris

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Les fonctions ensemblistes COUNT COUNT permet de compter le nombre d ’occurrences Nombre d ’avions au départ de Paris SELECT COUNT(vol.depart) FROM vol WHERE vol.depart=‘ Paris ’ ; nombre(depart) 2

Les fonctions ensemblistes SUM SUM permet d ’additionner des attributs Capacité totale des avions au départ de Paris

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Les fonctions ensemblistes SUM Capacité totale des avions au départ de Paris SELECT SUM(avion.cap) FROM avion, vol WHERE vol.numav=avion.numavion AND vol.depart=‘ Paris ’; somme(cap) 840

Les fonctions ensemblistes AVG AVG permet de calculer des moyennes d ’attributs Moyenne des capacités des avions à destination d ’Amsterdam

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Les fonctions ensemblistes AVG Moyenne des capacités des avions à destination d ’Amsterdam SELECT AVG(avion.cap) FROM avion, vol WHERE vol.numav=avion.numavion AND vol.arrivee=‘ Amsterdam ’; moyenne(cap) 120

Les fonctions ensemblistes VAR VAR permet de calculer des variances d ’attributs

Autres fonctions DISTINCT DISTINCT permet de n ’obtenir qu’une seule fois chaque occurrence Type d ’avions

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

Autres fonctions DISTINCT DISTINCT permet de n ’obtenir qu’une seule fois chaque occurrence Type d ’avions type Airbus 300 Airbus 320 Boeing 737 Boeing 747 DC 10 SELECT DISTINCT(avion.type) FROM avion

Autres fonctions ORDER BY ORDER BY permet d ’ordonner par ordre croissant ou décroissant (DESC) Type et capacité des avions par type croissant (ordre alphabétique)

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

Autres fonctions ORDER BY ORDER BY permet d ’ordonner par ordre croissant ou décroissant (DESC) Type et capacité des avions par type croissant (ordre alphabétique) type cap Airbus 300 Airbus 320 Boeing 737 Boeing 747 DC 10 280 300 250 420 410 120 SELECT DISTINCT avion.type,avion.cap FROM avion ORDER BY avion.type;

Autres fonctions ORDER BY Pilotes par ordre alphabétique décroissant

pilote numpilote nom prenom P0001 P0002 P0003 P0004 P0005 P0006 Dupuis Simon François André Arthur Mathieu Antoine Georges Luc Louis

Autres fonctions ORDER BY Pilotes par ordre alphabétique décroissant nom Simon Mathieu François Dupuis Arthur André SELECT pilote.nom FROM pilote ORDER BY pilote.nom DESC;

Autres fonctions GROUP BY GROUP BY permet de faire des regroupements Somme des capacités des avions, groupés par ville de départ

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Autres fonctions GROUP BY GROUP BY permet de faire des regroupements Somme des capacités des avions, groupés par ville de départ depart Somme(cap) Berlin Bruxelles Londres New York Paris 420 410 530 840 SELECT vol.depart, SUM(avion.cap) FROM avion, vol WHERE avion.numavion=vol.numav GROUP BY vol.depart;

Autres fonctions GROUP BY GROUP BY est souvent utilisé avec la clause HAVING qui permet de spécifier des caractéristiques du groupement Somme des capacités des avions, groupés par ville de départ telle que le 1er vol soit après 9:00

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

Autres fonctions GROUP BY depart Somme(cap) Berlin Bruxelles Paris 420 410 840 Autres fonctions GROUP BY Somme des capacités des avions, groupés par ville de départ telle que le 1er vol soit après 9:00 SELECT vol.depart, SUM(avion.cap) FROM vol, avion WHERE vol.numav=avion.numavion GROUP BY vol.depart HAVING (MIN(vol.hdep)>’09:00’);

Autres fonctions BETWEEN BETWEEN a AND b permet de tester l’appartenance à un intervalle Départ et arrivée des vols partant entre 10h et 14h30

Vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Autres fonctions BETWEEN depart arrivee Berlin Bruxelles Londres Paris Amsterdam Madrid Rome Moscou San Francisco Autres fonctions BETWEEN BETWEEN a AND b permet de tester l’appartenance à un intervalle Départ et arrivée des vols partant entre 10h et 14h30 SELECT DISTINCT vol.depart, vol.arrivee FROM vol WHERE vol.hdep BETWEEN ’10:00’ AND ’14:30’;

Autres fonctions LIKE LIKE permet d’utiliser des jokers dans des chaînes de caractères Le joker _ représente un unique caractère Le joker % représente une chaîne de caractères de longueur quelconque

Autres fonctions LIKE Numéro des vols dont le nom du pilote a pour 2ème lettre la lettre « r »

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

pilote numpilote nom prenom P0001 P0002 P0003 P0004 P0005 P0006 Dupuis Simon François André Arthur Mathieu Antoine Georges Luc Louis

Autres fonctions LIKE Numéro des vols dont le nom du pilote a pour 2ème lettre la lettre « r » SELECT vol.numvol numvol V0003 V0005 V0008 FROM vol, pilote WHERE vol.numpil=pilote.numpilote AND (pilote.nom LIKE ‘_r%’);

Autres fonctions LIKE Somme des capacités des avions, groupés par ville de départ telle que l’heure du 1er vol soit comprise entre 10:00 et 11:00 (11:00 non compris)

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

avion numavion type cap A0001 A0002 A0003 A0004 A0005 A0006 Boeing 747 Airbus 320 Airbus 300 Boeing 737 DC 10 420 300 280 250 120 410

depart Somme(cap) Bruxelles Paris 410 840 Autres fonctions LIKE Somme des capacités des avions, groupés par ville de départ telle que l’heure du 1er vol soit comprise entre 10:00 et 11:00 (11:00 non compris) SELECT vol.depart, SUM(avion.cap) FROM vol, avion WHERE vol.numav=avion.numavion GROUP BY vol.depart HAVING MIN(vol.hdep) LIKE ’10:%’;

Autres fonctions IS NULL IS NOT NULL IS NULL et IS NOT NULL permettent de vérifier si l’attribut est renseigné ou pas Numéros des vols auxquels sont affectés des pilotes

vol numvol depart arrivee numav numpil jdep hdep jarr harr V0001 V0002 Paris Londres Berlin Bruxelles New York San Francisco Moscou Madrid Rome Amsterdam A0001 A0003 A0002 A0004 A0006 A0005 P0002 P0001 P0003 P0006 P0005 15/05/99 16/05/99 17/05/99 10:00 10:30 11:15 06:20 14:30 18:00 03:00 09:30 17:00 15:10 20:00 21:30

Autres fonctions IS NULL IS NOT NULL IS NULL et IS NOT NULL permettent de vérifier si l’attribut est renseigné ou pas Numéros des vols auxquels sont affectés des pilotes numvol V0001 V0002 V0003 V0004 V0005 V0006 V0007 V0008 SELECT vol.numvol FROM vol WHERE vol.numpil IS NOT NULL;

AND (vol.JDEP=vol0006.JDEP) AND (vol.NUMPIL<>'P0006'); Code des pilotes pilotant un avion décollant le même jour que le pilote ’P0006’ SELECT vol.NUMPIL FROM vol, vol vol0006 WHERE (vol0006.NUMPIL='P0006') AND (vol.JDEP=vol0006.JDEP) AND (vol.NUMPIL<>'P0006'); NUMPIL P0002 P0001 P0005

Nom des pilotes pilotant le même type d’avion que le pilote Simon nom SELECT DISTINCT pilote.NOM FROM avion avion, avion avionsimon, pilote pilote, pilote pilotesimon, vol vol, vol volsimon WHERE pilote.NUMPILOTE = vol.NUMPIL AND vol.NUMAV = avion.NUMAVION AND avion.TYPE = avionsimon.TYPE AND pilotesimon.NUMPILOTE = volsimon.NUMPIL AND volsimon.NUMAV = avionsimon.NUMAVION AND pilotesimon.NOM='Simon' AND pilote.NOM<>'Simon'; nom Arthur François

Nom des pilotes pilotant le même type d’avion que le pilote Simon SELECT pilote.NOM FROM avion, pilote, vol WHERE pilote.NUMPILOTE = vol.NUMPIL AND vol.NUMAV = avion.NUMAVION AND avion.TYPE = (SELECT DISTINCT avion.TYPE FROM avion , pilote , vol WHERE pilote.NUMPILOTE = vol.NUMPIL AND vol.NUMAV = avion.NUMAVION AND pilote.NOM='Simon') AND pilote.NOM<>'Simon'; nom Arthur François

NUMVOL ARRIVEE HDEP V0008 Paris 03:00 Code, destination des avions décollant le plus tôt et heure de décollage SELECT vol.NUMVOL, vol.ARRIVEE, vol.HDEP FROM vol WHERE vol.HDEP= (SELECT MIN(vol.HDEP) FROM vol );

Code, destination des avions décollant le plus tôt et heure de décollage SELECT vol.NUMVOL, vol.ARRIVEE, vol.HDEP FROM vol, vol volmin GROUP BY vol.NUMVOL, vol.ARRIVEE,vol.HDEP HAVING vol.HDEP=MIN(volmin.HDEP);