Requêtes
Créer une requête monotable
Les requêtes monotables utilisent une seule table de votre base de données. Les requêtes permettent de filtrer et d’afficher des enregistrements selon un ou plusieurs critères ; elles peuvent être enregistrées et exécutées à tout moment : lorsque vous exécutez une requête, Base sélectionne automatiquement les enregistrements de la table source répondant aux critères posés. Une requête monotable peut être utilisée pour ajouter ou modifier des données, la modification sera automatiquement répercutée dans la table source.
Créer une requête en mode Ébauche
Il s’agit de créer une requête sans l’aide de l’assistant Requête.
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données.
Cliquez sur le lien Créer une requête en mode Ébauche situé dans le volet Tâches ou utilisez la commande Insertion - Requête (mode Ébauche) ou ouvrez la liste associée à l’outil Formulaire et choisissez l’option Nouvelle requête (vue Ébauche).
La fenêtre d’une nouvelle requête s’affiche à l’écran et Base vous propose d’ajouter des tables par l’intermédiaire de la boîte de dialogue Ajouter une table ou une requête.
Pour ajouter une table, laissez active l’option Tables puis, sélectionnez la table à utiliser dans votre nouvelle requête et cliquez sur le bouton Ajouter.
Vous pouvez également double cliquer sur le nom de la table à ajouter.
Cliquez sur le bouton Fermer de la boîte de dialogue Ajouter une table ou une requête.
La partie supérieure de la fenêtre affiche la table source et la liste des champs de la table.
La partie inférieure, appelée grille d’interrogation, est réservée à la définition des critères. Il est possible de modifier la hauteur de chacune de ces deux parties en faisant glisser la barre horizontale qui les sépare.
Insérez, dans la grille d’interrogation, les champs que vous souhaitez voir apparaître dans la feuille de données (résultat de la requête) : double cliquez sur chaque nom de champ à insérer ou faites-les glisser dans la première cellule vide de la ligne Champ de la grille d’interrogation.
Vous pouvez également cliquer dans la première cellule vide de la ligne Champ et sélectionner le nom du champ dans la liste correspondante.
Lorsqu’un champ est inséré dans la grille d’interrogation...
Créer une requête multitable
Il s’agit de créer une requête basée sur plusieurs tables (ou requêtes). Ces types de requêtes ne permettent pas ensuite de modifier les données affichées dans la requête.
Éventuellement, définissez les relations entre les tables à partir desquelles la nouvelle requête multitable doit être créée (cf. chapitre Relations entres les tables - Établir une relation entre plusieurs tables).
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données.
Sans l’aide de l’assistant
Cliquez sur le lien Créer une requête en mode Ébauche situé dans le volet Tâches ou utilisez la commande Insertion - Requête (mode Ébauche) ou bien, ouvrez la liste associée à l’outil Formulaire et choisissez l’option Nouvelle requête (vue Ébauche).
Choisissez l’option Tables ou Requêtes en fonction des objets sur lesquels doit être basée la requête.
La requête peut être basée à la fois sur des tables et des requêtes.
Sélectionnez chacun des objets à ajouter à la requête et cliquez ensuite sur le bouton Ajouter.
Vous pouvez aussi double cliquer sur le nom des objets à ajouter.
Cliquez sur le bouton Fermer de la boîte de dialogue Ajouter une table ou une requête.
Si les tables ont été mises en relation dans la fenêtre Relations, elles sont maintenant reliées par une ligne de jointure. Si besoin, vous pouvez établir des relations spécifiques à la requête...
Exécuter une requête
Il existe deux techniques permettant d’afficher le résultat de la requête.
À partir de la fenêtre de base de données, cliquez, si besoin, sur l’objet Requêtes puis double cliquez sur le nom de la requête à exécuter.
Le résultat de la requête affiche, dans une feuille de données, les enregistrements de la table source répondant aux critères définis dans la requête. S’il s’agit d’une requête monotable, vous pouvez créer de nouveaux enregistrements, modifier et/ou supprimer des données. Les modifications seront automatiquement répercutées dans la table source.
À partir de la structure de la requête (mode Ébauche) : cliquez, si besoin, sur l’objet Requêtes puis faites un clic droit sur le nom de la requête à exécuter et sélectionnez...
Gérer la grille des requêtes
Gérer les objets : tables ou requêtes
La gestion des objets, tables ou requêtes, s’effectue dans la partie supérieure de la fenêtre.
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête concernée et sélectionnez l’option Éditer pour afficher sa structure.
Pour insérer une table ou une requête supplémentaire, utilisez la commande Insertion - Ajouter une table ou une requête ou cliquez sur l’outil Ajouter une table ou une requête de la barre d’outils Ébauche ou appuyez sur la touche F7.
Double cliquez sur le nom de la table ou de la requête à insérer ou sélectionnez-la et cliquez sur le bouton Ajouter.
Cliquez ensuite sur le bouton Fermer.
Pour déplacer une table, pointez sa barre de titre et faites-la glisser à l’endroit voulu.
Pour supprimer une table, faites un clic droit sur sa barre de titre puis sélectionnez l’option Supprimer.
Pour supprimer toutes les tables ou requêtes, utilisez la commande Édition - Effacer la requête ou cliquez sur l’outil Effacer la requête de la barre d’outils Ébauche...
Gérer les relations dans la structure d’une requête
Dans la structure de la requête, vous pouvez modifier les caractéristiques des relations existantes entre les tables ou en créer des nouvelles. Les relations créées dans la structure de la requête ne seront pas reprises dans la fenêtre des relations de la base de données active, elles ne seront donc effectives que pour la requête.
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête concernée et sélectionnez l’option Éditer pour afficher sa structure.
Pour établir des relations spécifiques à la requête, faites glisser le champ commun de la table ou de la requête primaire vers le champ de la table ou de la requête à relier.
Pour préciser les caractéristiques de la relation ou modifier les propriétés d’une relation existante, double cliquez sur la ligne de jointure.
Dans la liste Type de champ, sélectionnez l’option correspondant au type de lien :
Jointure interne |
Pour afficher uniquement les données correspondant aux champs liés si celles-ci sont identiques. |
Jointure gauche |
Pour afficher toutes les données de la table de gauche, et uniquement... |
Définir les critères de la requête
Préciser un critère selon le type de champ
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête concernée et sélectionnez l’option Éditer pour afficher sa structure.
Cliquez sur la ligne Critère de la colonne correspondant au champ sur lequel porte le critère.
Précisez le critère en veillant à respecter les indications suivantes :
Type de champ |
Principes |
Exemples |
Texte |
Saisissez le texte comme il a été saisi dans la table. Si le champ n’est pas de type VARCHAR_IGNORECASE, respectez les majuscules et minuscules utilisées dans la table. |
|
Numérique |
Saisissez la valeur sans aucune présentation. |
1300,2 |
Date/Heure |
Saisissez la date ou l’heure en utilisant un des formats ci-contre. |
1/1/2008 1-jan-2008 11:25 |
Oui/Non |
Saisissez +1 ou TRUE pour la valeur Oui Saisissez +0 ou FALSE pour la valeur Non |
Sur cet exemple, la requête affichera toutes les commandes réglées passées après le 1er janvier 2020. Après validation d’un critère de type Date, un dièse est automatiquement ajouté au début et à la fin de la valeur ; pour un critère de type Texte, c’est une apostrophe qui est ajoutée au début et à la fin du texte.
Cliquez sur l’outil Exécuter la requête ou appuyez sur la touche F5 pour visualiser le résultat.
Enregistrez les modifications apportées à la structure de la requête en cliquant sur l’outil Enregistrer .
Fermez, si besoin, la requête en cliquant sur le bouton de la fenêtre.
Utiliser les opérateurs
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête concernée et sélectionnez l’option Éditer pour afficher sa structure.
Cliquez sur la ligne Critère de la colonne correspondant au champ sur lequel porte le critère....
Créer une requête paramétrée
Une requête paramétrée permet, au moment d’exécuter la requête, d’afficher une boîte de dialogue dans laquelle vous saisirez le critère voulu. Les requêtes paramétrées sont utilisées lorsque les critères sont variables.
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête concernée et sélectionnez l’option Éditer pour afficher sa structure.
Sur la ligne Critère, dans la colonne du champ sur lequel doit porter le critère, saisissez deux points (:) suivi du nom de la variable sans espace (elle apparaîtra dans la boîte de dialogue).
Sur cet exemple, la variable Nom_Auteur sera demandée avant d’afficher le résultat de la requête :
Vous pouvez préciser plusieurs critères de requête paramétrée. Si les critères doivent être vérifiés simultanément, saisissez-les sur la même ligne Critère ou, si l’un ou l’autre des critères doit être vérifié, saisissez-les sur des lignes différentes Ou.
Sur l’exemple suivant, l’utilisateur devra préciser le nom de l’auteur...
Insérer un champ calculé dans une requête
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête à laquelle vous souhaitez ajouter un champ calculé et sélectionnez l’option Éditer pour afficher sa structure.
Cliquez dans la première cellule vide de la ligne Champ.
Renseignez l’expression du calcul en saisissant, entre guillemets, le nom du ou des champ(s) à utiliser dans le calcul.
Si, dans l’expression du calcul, vous devez préciser une valeur avec décimales, utilisez le point comme séparateur de décimales.
Saisissez, sur la ligne Alias, du champ calculé, le nom que vous souhaitez donner à la colonne. Dans le cas contraire, la colonne portera le nom de l’expression du calcul.
Sur cet exemple, la requête calculera le prix de vente TTC de chaque livre :
Cliquez sur l’outil Exécuter la requête ou appuyez sur la touche F5 pour afficher le résultat.
Enregistrez les modifications apportées à la structure de la requête en cliquant sur l’outil Enregistrer .
Fermez, si besoin, la requête en cliquant sur le bouton de la fenêtre.
Réaliser un calcul statistique sans regroupement
Un calcul statistique peut porter sur tous les enregistrements ou seulement sur un groupe d’enregistrements, par exemple : le nombre total de livres dans la table Livres ou seulement le nombre de livres dont la catégorie est LITTERATURE.
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête à laquelle vous souhaitez ajouter un calcul statistique et sélectionnez l’option Éditer pour afficher sa structure.
Dans la grille d’interrogation, ajoutez le(s) champ(s) sur lesquels le calcul doit s’effectuer.
La grille d’interrogation doit comporter uniquement les champs sur lesquels les calculs seront réalisés et ceux sur lesquels un critère sera posé.
Cliquez ensuite sur la ligne Fonction dans la colonne du champ ajouté.
Ouvrez la liste correspondante et sélectionnez le calcul statistique que vous souhaitez effectuer : Moyenne, Nombre, Maximum, Minimum ou Somme.
Sur la ligne Alias, saisissez le nom que vous souhaitez donner à l’en-tête de la colonne qui s’affichera dans le résultat de la requête.
Lorsque cette information n’est pas renseignée, Base donnera comme nom par défaut...
Réaliser un calcul statistique avec regroupement
Il faut distinguer deux formes de calculs statistiques avec regroupement : le regroupement qui permet d’effectuer un calcul statistique en tenant compte de tous les enregistrements de la table ou d’une partie si des critères ont été définis et le regroupement qui permet d’afficher les enregistrements répondant au critère du résultat du calcul statistique. Par exemple, la requête peut afficher, par catégorie, la somme des prix dont le prix (par article) est supérieur à 50 ou elle peut afficher, par catégorie, la somme des prix lorsque cette somme est supérieure à 50.
Calcul statistique avec regroupement sur tous les enregistrements
Dans la fenêtre de base de données, cliquez, si besoin, sur le type d’objets Requêtes dans le volet Base de données puis faites un clic droit sur le nom de la requête à laquelle vous souhaitez ajouter un calcul statistique avec regroupement et sélectionnez l’option Éditer pour afficher sa structure.
Dans la grille d’interrogation, ajoutez le champ utilisé pour regrouper les enregistrements.
Seuls les champs utilisés pour le ou les calculs (y compris celui sur lequel sera basé le regroupement) et ceux utilisés pour la définition des critères...
Requêtes en mode SQL
Base propose de réaliser les requêtes grâce à une interface graphique (mode Ébauche vu précédemment) ou directement en langage SQL (Structured Query Language). L’utilisation du mode graphique reste néanmoins limitée à la réalisation de requêtes de type Sélection. Pour réaliser des requêtes destinées à modifier, supprimer ou ajouter des données, créer ou supprimer une table, vous devez utiliser le langage SQL.
Créer une requête de sélection en mode SQL
Dans le volet Base de données, sélectionnez Requêtes puis cliquez sur le lien Créer une requête en mode SQL dans le volet Tâches.
Si la requête créée ne doit pas être interprétée par Base (affichage de la requête en mode Ébauche), choisissez la commande Édition - Exécuter directement l’instruction SQL ou cliquez sur l’outil .
Saisissez l’instruction SQL de la requête en utilisant uniquement l’opérateur SELECT (cf. Requêtes en mode SQL - Opérateurs utilisés dans les requêtes de sélection dans ce chapitre). Sur cet exemple, la requête affichera la sélection (SELECT) des champs Titre et Auteur de la table LIVRES :
Exécutez la requête en choisissant la commande Édition - Exécuter la requête ou l’outil de la barre d’outils Ébauche de requête ou F5.
Enregistrez la requête en utilisant la commande Fichier - Enregistrer ou l’outil ou Ctrl S. Saisissez le Nom la requête dans la zone correspondante et cliquez sur le bouton OK.
Créer une requête d’action en mode SQL
Dans la fenêtre de base de données, utilisez la commande Outils - SQL et saisissez la Commande à exécuter dans la zone de saisie correspondante (cf. titres suivants).
Sur cet exemple, la requête créera une nouvelle table nommée Categories :
Cliquez sur le bouton...