Access -...
Transcript of Access -...
Requêtes sous Access
Licence IDEA 1ère année
Julien Velcin
http://mediamining.univ-lyon2.fr/velcin/
Une base de données… mais pour quoi faire ?
• Modélisation de l�information sous la forme d�un MCD, d�un MLD puis d�un MPD
• Que faire avec notre BD ? – Maintenance (bien sûr) – Requêtes : il est très important que ces
informations puissent être retrouvées rapidement et simplement par les personnes qui en ont besoin.
Types de requêtes
• Il existe 3 types de requêtes : – les requêtes de projection : il s�agit de ne
conserver que les champs intéressants – les requêtes de sélection : on ne conserve
que les enregistrements intéressants – les requêtes de jointure : on remet ensemble
des données situées dans différentes tables • On peut mélanger les types de requêtes
Projection contre sélection
Soit une table Etudiants(NumE, Nom, Prénom, Age, Année, Fac) qui contient 150 étudiants :
• Requête de projection : n�afficher que les noms et prénoms des étudiants
• Requête de sélection : n�afficher que les étudiants dont le nom commence par �M�
NumE Nom Prénom Age Année Fac
1 Bonnaud Jean 24 4 Sociologie
2 Assin Marc 21 2 Histoire
Requête de projection
Requête de sélection
Effectuer une requête sous Access
Différentes étapes :
1) choisir le type d�objet « Requête » ; 2) puis « Créer une requête en mode
création » ; 3) ajouter les données servant de base à la
requête : table(s), requête(s), etc.
La fenêtre de requête
Les données de base
Partie requête
Faire une projection
• Il suffit de double-cliquer uniquement sur les champs souhaités :
Seuls les champs sélectionnés s�ajoutent en bas. Ils seront les seuls à s�afficher (si la case « afficher » est bien cochée). Le champ �*� signifie « tous les champs ».
Exécuter une requête
• Plusieurs possibilités : – demander l�exécution – changer le type d�affichage
• Résultat : une « feuille de données ».
Double aspect d�une requête
• Nous voyons que, comme une table, une requête présente un double aspect : – l'aspect structure, lequel est défini en mode
création ; – l'aspect résultat, qui est représentée par une
table à l'existence volatile, laquelle s'appelle « feuille de données » sous Access.
Enregistrement d�une requête
• Une requête peut être enregistrée pour conserver sa structure. Cela permet d�effectuer des requêtes emboîtées.
• Puisque le résultat d'une requête est une table, une autre possibilité est de l�enregistrer comme tel. Pour cela, il faut sélectionner l�option « Requête Création de table » sous Access.
Requête de sélection
• Contrairement à la projection, la sélection permet d�extraire d�une table les lignes (enregistrements) répondant à un certain nombre de critères.
• L�ensemble des critères est parfois appelé un filtre.
• La sélection représente l'outil courant de recherche de l'information dans les Bases de Données.
Les critères (1) : le tri
• Pour trier selon un ou plusieurs champs, il faut mettre « croissant » ou « décroissant » dans la case « tri » de la colonne correspondante :
Les critères (2) : comme
• A utiliser pour les champs de type « texte » • Permet de dire à quoi doit ressembler le résultat • Utilisation de deux caractères spéciaux :
– * : n�importe quoi en nombre quelconque – ? : un caractère quelconque
• Ex : les noms qui commencent par �M�
Les critères (3) : comparaison
• Pour les dates et les nombres, utilisation des symboles de comparaison (>, <, >=, <=)
• Les dates sont encadrées de # (par exemple #24/09/2007#)
Les critères (4) : entre
• Pour les dates et les nombres. • Possibilité d�indiquer deux bornes :
Entre XXX et XXX
Les critères (5) : liste
• Possibilité de préciser une liste de valeur. • Seuls les enregistrements correspondants
à une des valeurs sont conservés.
Plusieurs critères sur un champ
• On peut cumuler les critères avec « Et » et « Ou ».
• On peut aussi exclure des critères avec « Pas ».
Plusieurs critères sur différents champs
• Si les critères sont sur la même ligne : ET • Si les critères sont sur des lignes
différentes : OU
(Nom comme « M* » ET ville dans (« Laval », « Montréal »)) OU Prénom comme « P* »
Les fonctions
• Pour exprimer des critères, on peut aussi utiliser des fonctions. Par exemple : – NbCar([NomClient])= "4" – Droite([NomEmployé];2)="se" – PartDate("aaaa";[Date_commande])=2000 – Jour([Date_envoi])=12 etc.
Requête paramétrée
• On peut demander un critère à l�exécution de la requête
• On met alors comme critère : [Message à afficher]
Personnalisation de l�affichage • On peut changer la largeur ou l�ordre des colonnes des
résultats : ces modifications seront sauvegardées • On peut aussi modifier le nom des colonnes : en mode
création, choisir un champ puis « propriétés » et remplir la légende
Le nom du champ
Élimination des doublons
• Une requête peut donner des doublons dans la liste des enregistrements retournés, ce qui est souvent indésirable.
• Pour éviter cela, sélectionner l�option « Valeurs distinctes » à Oui dans le menu propriété de la requête.
Les calculs dans les requêtes
• Pour certains calculs, il est inutile d�enregistrer toutes les données calculées.
• On ne stocke donc que les données de base et les calculs seront refaits à chaque requête.
• Compromis entre : – place sur le disque nécessaire pour la base – capacités de calcul de l�ordinateur
Faire un calcul sous Access
• Il suffit de mettre un nouveau champ – nom du champ : le futur nom de la colonne – suivi de deux points – puis de la formule, avec les champs entre [ ]
• Ex. : prix total = prix unitaire * quantité
Les regroupements / agrégats
• Il est possible de regrouper certaines données selon un ou plusieurs critères.
• On peut alors faire des calculs sur les autres champs : somme, moyenne, min, max, compte…
• Ex : total des commandes par client – Regroupement par client – Somme sur les commandes
Faire un regroupement sous Access
• Cliquez sur le bouton pour faire apparaître la ligne « Opérations »
• Choisir : – Regroupement : pour les champs à regrouper – Les autres fonctions : pour les champs sur
lesquels on fait des calculs (somme, moyenne, etc.)
– Où : lorsque l�on veut mettre un critère
Exemple
• Nombre d�articles commandés par client :
Requête sur plusieurs tables
• Si on veut récupérer des informations sur une table, il suffit de faire une requête de sélection ou de projection.
• Problème : et si mes données sont dans deux tables (ou plus) différentes ?
Exemple : base Comptoirs Exemple de questions
• Pour chaque commande, donnez sa date, le nom de l�employé qui l�a enregistré et la société du client
Opération de jointure
• Une jointure est une combinaison des enregistrements de deux ou plusieurs tables.
• La combinaison se fait grâce aux liens clef primaire – clef secondaire (ou étrangère).
• Mathématiquement, une jointure est une composition de relations, tout comme on peut composer des fonctions (ex. : gof).
Exemple de jointure
La combinaison se fait grâce au « code client » : à chaque enregistrement de « commandes », on fait correspondre le client
correspondant.
Jointure sous Access
• Sur la page « relations », il faut bien préciser quelles sont les clefs étrangères et les cardinalités.
• Lors des requêtes, Access va utiliser ces informations pour réaliser les jointures.
Procédure - 1
On choisit les tables qui vont intervenir dans la requête + les tables qui les lient (toutes les tables choisies doivent être liées
entre elles).
Procédure – 2
On choisit les champs et on y met les critères s�il y en a, comme dans toute requête. Le champ « table » correspond à la table d�où provient
le champ.
Procédure – 3
On lance la requête, Access fait la jointure pour nous.
ATTENTION
• Il ne faut bien mettre que des tables en relations dans les sources de la requête sinon Access fait un produit cartésien (toutes les possibilités).
• Il peut donc être nécessaire de rajouter des tables pour lier les tables « utiles » (celles qui contiennent les champs voulus).