Contenu

# Ébauche de requête

Le mode Ébauche de requête permet de créer et d'éditer une requête de base de données.

Pour accéder à cette commande...

Dans une fenêtre de fichier de base de données, cliquez sur l'icône Requêtes, puis cliquez sur Édition - Éditer.

La plupart des bases de données utilisent des requêtes pour filtrer ou trier les tables de base de données, ou bien pour afficher les enregistrements à l'écran. Les vues offrent les mêmes fonctionnalités que les requêtes, mais côté serveur. Si votre base de données se trouve sur un serveur qui prend en charge les vues, vous pouvez utiliser ces dernières pour filtrer les enregistrements stockés sur le serveur et accélérer le temps d'affichage.

Sélectionner la commande Créer une vue dans l'onglet Tables d'un document de base de données permet d'afficher la fenêtre Ébauche de vue, similaire à la fenêtre Ébauche de requête décrite ici.

La mise en page de la fenêtre Ébauche de requête est enregistrée avec une requête créée mais ne peut pas être enregistrée avec une vue créée.

## Mode Ébauche

Pour créer une requête, cliquez sur l'icône Requêtes dans un document de base de données, puis sur Créer une requête en mode Ébauche.

Le volet inférieur du mode Ébauche est l'endroit où vous définissez la requête. Pour définir une requête, spécifiez les noms des champs de base de données à inclure et les critères d'affichage des champs. Pour réorganiser les colonnes dans le volet inférieur du mode Ébauche, faites glisser un en-tête de colonne vers un nouvel emplacement ou sélectionnez la colonne et appuyez sur CommandeCtrl+touche fléchée.

Les icônes des barres Ébauche de requête et Ébauche s'affichent en haut de la fenêtre du mode Ébauche de requête.

Si vous souhaitez tester une requête, double-cliquez sur le nom de la requête dans le document de base de données. Le résultat de la requête s'affiche dans une table similaire à la vue des sources de données. Remarque : la table affichée est temporaire.

### Touches en mode Ébauche de requête

Touche | Fonction
--- | ---
F4 | Aperçu
F5 | Exécuter la requête
F7 | Ajouter une table ou une requête

## Parcourir

Lorsque vous ouvrez l'ébauche de requête pour la première fois, vous voyez une boîte de dialogue dans laquelle vous devez d'abord sélectionner la table ou la requête qui sera la base de votre nouvelle requête.

Double-cliquez sur les champs à ajouter à la requête. Définissez des relations par glisser-déposer.

Lorsque vous concevez une requête, vous ne pouvez pas modifier les tables sélectionnées.

### Supprimer des tables

Pour supprimer une table de la fenêtre d'ébauche, cliquez sur le bord supérieur de la fenêtre des tables, activez le menu contextuel et sélectionnez la commande Supprimer. Vous pouvez également utiliser la touche Suppr.

### Déplacer une table et modifier la taille de la table

Vous pouvez organiser les tables à votre gré et en modifier la taille. Pour déplacer une table, cliquez sur le bord supérieur et faites-la glisser jusqu'à la position voulue. Pour agrandir ou réduire l'affichage, faites glisser un bord ou un angle de la table.

## Relations de table

S'il y a des relations de données entre un nom de champ dans une table et un nom de champ dans une autre table, vous pouvez utiliser ces relations dans votre requête.

Si, par exemple, vous disposez d'une feuille de calcul pour les articles identifiés par un numéro d'article et d'une feuille de calcul pour les clients dans laquelle vous enregistrez tous les articles qu'un client commande à l'aide des numéros d'article correspondants, une relation est alors établie entre les deux champs de données "numéro d'article". Si maintenant vous souhaitez créer une requête renvoyant tous les articles qu'un client a commandés, vous devez récupérer les données des deux feuilles de calcul. Pour cela, vous devez spécifier à LibreOffice la relation existant entre les données des deux feuilles de calcul.

Pour ce faire, cliquez sur un nom de champ de données d'une table (par exemple le champ "Numéro d'article" de la table Clients) et, tout en maintenant le bouton de la souris enfoncé, faites-le glisser jusqu'au nom de champ de données de l'autre table ("Numéro d'article" de la table Articles). Lorsque vous relâchez le bouton de la souris, un trait qui reliant les deux champs entre les deux fenêtres apparaît. La condition correspondante, à savoir que le contenu des deux champs de données doit être identique, est entrée dans la requête SQL résultante.

La création d'une requête basée sur plusieurs feuilles liées n'est possible que si vous utilisez LibreOffice en tant qu'interface pour une base de données relationnelle.

Vous ne pouvez pas accéder aux tables de plusieurs bases de données dans une requête. Les requêtes impliquant plusieurs tables ne peuvent être créées que dans une seule base de données.

### Indiquer le type de relation

Si vous double-cliquez sur la ligne reliant deux champs liés ou si vous activez la commande de menu Insérer - Nouvelle relation, vous pouvez spécifier le type de relation dans la boîte de dialogue Relations.

Vous pouvez également appuyer sur la touche Tabulation jusqu'à ce que la ligne de jointure soit sélectionnée. Appuyez ensuite sur Maj+F10 pour afficher le menu contextuel et choisissez la commande Éditer. Certaines bases de données ne prennent en charge qu'un sous-ensemble des types de jointure possibles.

### Supprimer les relations

Pour supprimer une relation entre deux tables, cliquez sur la ligne de connexion puis appuyez sur la touche Suppr.

Vous pouvez également supprimer les entrées respectives dans la zone Champs utilisés de la boîte de dialogue Relations. Vous pouvez aussi appuyer sur la touche Tabulation jusqu'à ce que le vecteur de connexion soit mis en évidence, puis appuyer sur Maj+F10 pour ouvrir le menu contextuel et sélectionner la commande Supprimer.

## Définir la requête

Sélectionnez les conditions pour définir votre requête. Toutes les colonnes de la table d'ébauche acceptent des champs de données pour les requêtes. Les conditions d'une ligne donnée sont liées par un ET logique.

### Indiquer les noms de champ

Sélectionnez d'abord tous les noms de champ dans les tables devant être ajoutées à la requête. Pour ce faire, vous pouvez effectuer un glisser-déposer ou double-cliquer sur un nom de champ dans la fenêtre de la table. Avec la méthode glisser-déposer, utilisez la souris pour amener un nom de champ depuis la fenêtre de table jusqu'à la zone inférieure de l'ébauche de requête. Ce faisant, vous pouvez décider dans quelle colonne vous souhaitez ajouter le champ. Un nom de champ peut aussi être sélectionné en double-cliquant dessus. Il est alors ajouté à la prochaine colonne libre dans la fenêtre d'ébauche de requête.

### Supprimer les noms de champ

Pour supprimer un nom de champ de la requête, cliquez sur l'en-tête de la colonne du champ, puis choisissez la commande Supprimer dans le menu contextuel de la colonne.

### Enregistrer la requête

Utilisez l'icône Enregistrer de la barre d'outils Standard pour enregistrer la requête. Une boîte de dialogue vous invite à attribuer un nom à la requête. Si la base de données prend en charge les schémas, vous pouvez également entrer un nom de schéma.

#### Schéma

Saisissez le nom du schéma qui est assigné à la requête ou à la vue de table.

#### Nom de la requête ou de la vue de table

Saisissez le nom de la requête ou de la vue de table.

### Filtrer les données

Pour filtrer les données de la requête, définissez les critères souhaités dans la zone inférieure de la fenêtre d'ébauche de requête. Les options suivantes sont disponibles :

#### Champ

Saisissez le nom du champ de données auquel vous avez fait référence dans la requête. Tous les réglages effectués dans les lignes d'options de filtrage se rapportent à ce champ. Si vous activez une cellule ici d'un clic de souris, vous verrez un bouton flèche permettant de sélectionner un champ. L'option « Nom de la table.* » sélectionne tous les champs de données avec pour effet que les critères spécifiés seront appliqués à tous les champs de la table.

#### Alias

Indique un alias. Cet alias sera listé dans la requête au lieu du nom de champ. Cela permet d'utiliser des étiquettes de colonne personnalisées. Par exemple, si le champ de données est nommé PtNo et qu'à la place vous souhaitez voir apparaître "Numéro de référence" dans la requête, saisissez "Numéro de référence" en tant qu'alias.

Dans une instruction SQL, les alias se définissent comme suit :

SELECT column AS alias FROM table.

Par exemple :

    SELECT "PtNo" AS "PartNum" FROM "Parts"

#### Table

La table de base de données correspondante du champ de données sélectionné est listée ici. Si vous activez une cellule à l'aide d'un clic de souris, une flèche apparaîtra qui vous permettra de sélectionner une autre table pour la requête active.

#### Trier

Si vous cliquez sur cette cellule, vous pouvez choisir parmi les options de tri suivantes : croissant, décroissant et non trié. Les champs de texte seront triés par ordre alphabétique et les champs numériques par ordre numérique. Pour la plupart des bases de données, les administrateurs peuvent paramétrer les options de tri au niveau de la base de données.

#### Visible

Si vous cochez la propriété Visible pour un champ de données, ce champ est visible dans la requête résultante. Si un champ de données est utilisé dans le seul but de formuler une condition ou de faire un calcul, son affichage n'est pas indispensable.

#### Critères

Spécifie un premier critère selon lequel le contenu du champ de données doit être filtré.

#### ou

Sur chaque ligne vous pouvez saisir un critère de filtre supplémentaire. Plusieurs critères dans une colonne seront interprétés par un OU.

Vous pouvez également utiliser le menu contextuel des en-têtes de ligne dans la partie inférieure de la fenêtre de conception de la requête pour insérer un filtre basé sur une fonction :

### Fonctions

Les fonctions que vous pouvez exécuter ici dépendent de celles fournies par le moteur de base de données.

Si vous utilisez la base de données HSQL intégrée, la zone de liste dans la ligne Fonction propose les options suivantes :

Option | SQL | Effet
--- | --- | ---
Aucune fonction |  | Aucune fonction n'est exécutée.
Moyenne | AVG | Calcule la moyenne arithmétique d'un champ.
NB | COUNT | Détermine le nombre d'enregistrements dans la table. Les champs vides peuvent être comptés (a) ou exclus (b). a) NB(*) : Lorsque vous fournissez un astérisque en guise d'argument, tous les enregistrements de la table sont comptés. b) NB(colonne) : passer un nom de champ comme argument compte uniquement les enregistrements dans lesquels le champ spécifié contient une valeur. Les enregistrements pour lesquels le champ a une valeur Null (i.e. ne contient ni de valeur textuelle ou numérique) ne seront pas comptés.
Maximum | MAX | Détermine la plus grande valeur d'un enregistrement pour ce champ.
Minimum | MIN | Détermine la plus petite valeur d'un enregistrement pour ce champ.
Somme | SUM | Calcule la somme des valeurs des enregistrements pour les champs associés.
Grouper | GROUP BY | Regroupe les données de la requête en fonction du nom de champ sélectionné. Les fonctions sont exécutées selon les groupes spécifiés. En SQL, cette commande correspond à la clause GROUP BY (grouper par). Si un critère est ajouté, cette entrée s'affiche dans la sous-clause SQL HAVING.

Vous pouvez également saisir des appels de fonctions directement dans l'instruction SQL. La syntaxe est la suivante :

SELECT FUNCTION(column) FROM table.

Par exemple, l'appel de fonction permettant de calculer une somme se présentera comme suit dans SQL :

    SELECT SUM("Prix") FROM "Articles".

Sauf pour la fonction Grouper, les fonctions ci-dessus sont appelées fonctions consolidées. Ce sont des fonctions calculant des données afin de créer des récapitulatifs des résultats. D'autres fonctions que celles listées dans la zone de liste sont également disponibles. Elles dépendent du moteur de base de données spécifique utilisé et de l'état des fonctionnalités fournies par le pilote Base utilisé pour se connecter à ce moteur de base de données.

Pour utiliser d'autres fonctions qui ne sont pas listées dans la zone de liste, vous devez les saisir manuellement sous Champ.

Pour les appels de fonctions, vous pouvez également utiliser des alias. Pour que les noms de fonctions n'apparaissent pas dans l'en-tête de colonne, saisissez le nom de substitution souhaité sous Alias.

Dans une instruction SQL, l'appel de fonction correspondant se présente comme suit :

SELECT FUNCTION() AS alias FROM table

Exemple :

    SELECT COUNT(*) AS Nombre FROM "Articles"

Lorsque vous exécutez une telle fonction, vous ne pouvez pas insérer de colonnes additionnelles pour la requête autres que celles incluses dans la fonction "Grouper".

Exemples

Dans l'exemple suivant, une requête portant sur deux tables est exécutée : une table "Articles" contenant le champ "No_article" et une table "Fournisseurs" contenant le champ "Nom_fournisseur". Par ailleurs, les deux tables possèdent un champ commun, en l'occurrence "No_fournisseur"

Pour créer une requête contenant tous les fournisseurs qui livrent plus de trois articles, les étapes suivantes sont nécessaires.

1. Insérer les tables "Articles" et "Fournisseurs" dans l'ébauche de requête.

2. Lier les champs "No_fournisseur" des deux tables, au cas où il n'existe pas déjà de relation de ce type entre les deux tables.

3. Double-cliquer sur le champ "No_article" de la table "Articles". Afficher la ligne Fonction via le menu contextuel et sélectionner la fonction Nombre.

4. Saisir >3 comme critère et désactiver l'option Visible.

5. Double-cliquer sur le champ "Nom_fournisseur" de la table "Fournisseurs" et sélectionner la fonction Grouper.

6. Exécutez la requête.

Si la table "Articles" contient les champs "Prix" (prix unitaire de chaque article) et "No_fournisseur" (désignant le fournisseur de l'article), la requête suivante vous permet de calculer le prix moyen des articles proposés par un fournisseur :

1. Insérer la table "Articles" dans l'ébauche de requête.

2. Double-cliquer sur les champs "Prix" et "No_fournisseur".

3. Activer la ligne Fonction et sélectionner la fonction Moyenne pour le champ "Prix".

4. Si vous le souhaitez, vous pouvez saisir l'alias "Moyenne" sur la ligne (sans les guillemets).

5. Sélectionner la fonction Grouper pour le champ "No_fournisseur".

6. Exécutez la requête.

Voici les commandes de menu contextuel et les icônes disponibles :

### Fonctions

Affiche ou masque une ligne pour la sélection de fonctions.

### Nom de la table

Affiche ou masque la ligne pour le nom de table.

### Nom d'alias

Affiche ou masque la ligne pour l'alias.

### Valeurs distinctes

Récupère uniquement les valeurs distinctes de la requête. Ceci s'applique à plusieurs enregistrements contenant des données figurant plusieurs fois dans les champs sélectionnés. Si la commande Valeurs distinctes est active, la requête contient un seul enregistrement (DISTINCT). Dans le cas contraire, elle contient tous les enregistrements correspondant aux critères de la requête (TOUT).

Par exemple, si le nom "Martin" est présent plusieurs fois dans votre base de données d'adresses, vous pouvez choisir la commande Valeurs distinctes pour indiquer dans la requête que le nom "Martin" ne doit s'afficher qu'une seule fois.

Pour une requête utilisant plusieurs champs, la combinaison des valeurs provenant de tous les champs doit être unique afin que le résultat puisse être constitué à partir d'un enregistrement spécifique. Un carnet d'adresses peut contenir, par exemple, une occurrence de "Martin de Brest" et deux occurrences de "Martin de Paris". Si la commande Valeurs distinctes est utilisée, la requête utilise les champs "nom" et "ville", et son résultat contient une fois "Martin de Brest" et une fois "Martin de Paris".

En SQL, cette commande correspond au prédicat DISTINCT.

### Limite

Permet de limiter le nombre maximum d'enregistrements renvoyés par une requête.

Si une constrution Limite est ajoutée, vous obtiendrez au maximum autant de lignes que le nombre spécifié. Sinon, vous obtiendrez tous les enregistrements qui correspondent au critère de la requête.

### Formuler les conditions de filtrage

Lors de la formulation des conditions de filtrage, plusieurs opérateurs et commandes sont disponibles. Outre les opérateurs relationnels, il existe des commandes spécifiques à SQL qui interrogent le contenu des champs de la base de données. Si vous utilisez ces commandes dans la syntaxe LibreOffice, LibreOffice les convertit automatiquement dans la syntaxe SQL correspondante à l'aide d'un analyseur interne. Vous pouvez également saisir la commande SQL directement et contourner l'analyseur interne. Les tableaux suivants donnent une vue générale des opérateurs et des commandes :

Opérateur | Signification | La condition est remplie si...
--- | --- | ---
= | égal à | ... le contenu du champ est identique à l'expression indiquée. L'opérateur = n'est pas affiché dans les champs de requête. Si vous saisissez une valeur sans opérateur, c'est l'opérateur = qui sera supposé.
<> | différent de | ... le contenu du champ ne correspond pas à l'expression spécifiée.
> | supérieur à | ... le contenu du champ est supérieur à l'expression spécifiée.
< | inférieur à | ... le contenu du champ est inférieur à l'expression spécifiée.
>= | supérieur ou égal à | ... le contenu du champ est supérieur ou égal à l'expression spécifiée.
<= | inférieur ou égal à | ... le contenu du champ est inférieur ou égal à l'expression spécifiée.

Commande LibreOffice | Commande SQL | Signification | La condition est remplie si...
--- | --- | --- | ---
IS EMPTY | IS NULL | est vide | ... le champ ne contient pas de données. Dans le cas de champs de type Oui/Non à trois états, cette commande interroge l'état indéterminé (ni Oui ni Non).
IS NOT EMPTY | IS NOT NULL | n'est pas vide | ... le champ n'est pas vide, c'est-à-dire il contient des données.
LIKE substituant (*) pour un nombre quelconque de caractères substituant (?) pour exactement un caractère | LIKE substituant (%) pour un nombre quelconque de caractères Substituant (_) pour exactement un caractère | appartient à | ... le champ de données contient l'expression indiquée. Dans ce cas, le substituant (*) indique si l'expression x se trouve au début (x*), à la fin (*x) ou à l'intérieur du contenu du champ (*x*). Dans l'interface LibreOffice, vous pouvez saisir comme substituant dans les requêtes SQL soit le caractère SQL %, soit le substituant habituel (*) du système de fichiers. Le substituant (*) ou (%) représente un nombre quelconque de caractères. Le point d'interrogation (?) dans l'interface de LibreOffice ou le trait de soulignement (_) dans les requêtes SQL sont utilisés pour représenter exactement un caractère.
NOT LIKE | NOT LIKE | N'appartient pas à | ... le champ ne contient pas de données ayant l'expression spécifiée.
BETWEEN x AND y | BETWEEN x AND y | compris dans l'intervalle [x,y] | ... le champ contient une valeur de donnée comprise entre les deux valeurs x et y.
NOT BETWEEN x AND y | NOT BETWEEN x AND y | Non compris dans l'intervalle [x,y] | ... le champ contient une valeur de données non comprise entre les deux valeurs x et y.
IN (a; b; c...) Remarquez que les point-virgules sont utilisés comme séparateurs dans toutes les listes de valeurs ! | IN (a, b, c...) | contient a, b, c... | ... le champ de données contient l'une des expressions a, b, c,... spécifiées. Un nombre quelconque d'expressions peut être spécifié et le résultat de la requête est déterminé par un opérateur logique OU. Les expressions a, b, c... peuvent être aussi bien des nombres que des caractères
NOT IN (a; b; c...) | NOT IN (a, b, c...) | ne contient pas a, b, c... | ... le champ ne contient pas l'une des expressions spécifiées a, b, c,...
= TRUE | = TRUE | a la valeur Vrai | ... le champ de données contient la valeur Vrai.
= FALSE | = FALSE | a la valeur Faux | ... le champ de données est défini à faux.

### Exemples

='Madame' | renvoie les champs de données contenant l'expression "Madame"
<'2001-01-10' | renvoie les dates antérieures au 10 janvier 2001
LIKE 'gr?ve' | renvoie le nom des champs ayant un contenu du type "grive" et "grave".
LIKE 'S*' | renvoie les champs de données contenant l'expression "Sun".
BETWEEN 10 AND 20 | renvoie les enregistrements dont le contenu des champs est compris entre les valeurs 10 et 20 (il peut s'agir aussi bien de champs de texte que de champs numériques).
IN (1; 3; 5; 7) | renvoie les champs de données contenant les valeurs 1, 3, 5, 7. Si ce champ contient par exemple un numéro d'article, vous pouvez créer une requête qui restitue l'article correspondant au numéro entré.
NOT IN ('Martin') | renvoie des enregistrements ne contenant pas "Martin".

Like Escape Sequence: {escape 'escape-character'}

Exemple :

    SELECT * FROM Item WHERE ItemName LIKE 'The *%' {escape '*'}

L'exemple renvoie toutes les entrées dont le nom de l'article commence par 'Thé *'. Ceci vous permet donc de rechercher des caractères (interprétés dans d'autres cas comme substituants) tels que *, ?, _, % ou le point.

Outer Join Escape Sequence: {oj outer-join}

Exemple :

    SELECT Article.* FROM {oj item LEFT OUTER JOIN orders ON item.no=orders.ANR}

### Interroger les champs de texte

Pour interroger le contenu d'un champ de texte, vous devez inclure l'expression entre apostrophes. La distinction entre les lettres majuscules et minuscules dépend de la base de données utilisée. LIKE, par définition, est sensible à la casse (bien que certaines bases de données ne l'interprète pas strictement).

### Interroger les champs de date

Les champs Date sont représentés sous la forme #Date# pour les identifier clairement comme des dates. Les constantes (expressions littérales) Date, Heure et Date/Heure utilisées dans des conditions peuvent être de type syntaxe d'échappement SQL ou syntaxe SQL2 par défaut.

Élément de type Date | Syntaxe d'échappement SQL #1 - peut-être obsolète | Syntaxe d'échappement SQL #2 | Syntaxe SQL2
--- | --- | --- | ---
Date | {D'YYYY-MM-DD'} | {d 'YYYY-MM-DD'} | 'YYYY-MM-DD'
Heure | {D'HH:MM:SS'} | {t 'HH:MI:SS[.SS]'} | 'HH:MI:SS[.SS]'
Date et heure | {D'YYYY-MM-DD HH:MM:SS'} | {ts 'YYYY-MM-DD HH:MI:SS[.SS]'} | 'YYYY-MM-DD HH:MI:SS[.SS]'

Exemple :

    SELECT {d '1999-12-31'} FROM world.years

Exemple :

    SELECT * FROM mytable WHERE years='1999-12-31'

Toutes les expressions (littérales de date) doivent être placées entre guillemets simples (pour plus de détails, consultez la documentation de référence de la base de données et du connecteur que vous utilisez.)

### Interroger les champs Oui/Non

Pour lancer une requête sur des champs Oui/Non, utilisez la syntaxe suivante pour des tables dBase :

Statut | Critères de requête | Exemple
--- | --- | ---
Oui | pour les tables dBASE : différente d'une quelconque valeur donnée | =1 renvoie tous les enregistrements pour lesquels le champ Oui/Non est de statut "Oui" ou "activé" (sélectionné en noir),
Non | . | =0 renvoie tous les enregistrements pour lesquels le champ Oui/Non a l'état "Non" ou "désactivé" (aucune sélection).
Null | IS NULL | IS NULL renvoie tous les enregistrements pour lesquels le champ Oui/Non n'a ni l'état Oui ni l'état Non (sélectionné en gris).

La syntaxe dépend du système de base de données utilisé. Remarquez également que les champs Oui/Non peuvent être définis différemment (deux statuts seulement au lieu de trois).

### Requêtes avec paramètre

Les requêtes paramétrées permettent à l'utilisateur de fournir des valeurs à l'exécution. Ces valeurs sont utilisées dans les critères pour sélectionner les enregistrement à afficher. Chacune de ces valeurs est associée à un nom de paramètre qui est utilisé pour demander à l'utilisateur de fournir cette valeur lorsque la requête est exécutée.

Les noms de paramètre sont précédés par un deux-points dans les deux modes Ébauche et SQL d'une requête. Ils peuvent être utilisés partout où une valeur peut apparaître. Si la même valeur doit apparaître plus d'une fois dans une requête, le même nom de paramètre sera utilisé.

Dans le cas le plus simple où l'utilisateur saisit une valeur pour une relation d'égalité, le nom de paramètre précédé de son deux-points est simplement saisi dans la ligne du critère. En mode SQL cela devrait être saisi sous la forme WHERE "Field" = :Parameter_name

Les noms de paramètre ne peuvent contenir aucun des caractères <space>`!"$%^*()+={}[]@'~#<>?/,. Ils ne peuvent pas être identiques à des noms de champs ni à des mots SQL réservés. Ils peuvent être identiques à des alias.

Une construction utile pour sélectionner des enregistrements en fonction de parties du contenu d'un champ de texte consiste à ajouter une colonne masquée avec "LIKE '%' || :Part_of_field || '%'" comme critère. Cela sélectionnera les enregistrements avec une correspondance exacte. Si un test insensible à la casse est souhaité, une solution consiste à utiliser LOWER (Field_Name) comme champ et LIKE LOWER ( '%' || :Part_of_field || '%' ) comme critère. Notez que les espaces dans le critère sont importants ; s'ils sont omis, l'analyseur SQL interprète le critère entier comme une chaîne à mettre en correspondance. En mode SQL, cela doit être saisi comme LOWER ( "Field_Name" ) LIKE LOWER ( '%' || :Part_of_field || '%' ).

Les requêtes de paramètre peuvent être utilisées comme source de donnée pour sous-formulaire afin de permettre à l'utilisateur de limiter les enregistrements affichés.

### Saisie de paramètre

La boîte de dialogue Saisie de paramètre demande à l'utilisateur d'indiquer les valeurs des paramètres. Saisissez une valeur pour chaque paramètre de requête et confirmez en cliquant sur OK ou en appuyant sur Entrée.

Pour la saisie des valeurs l'utilisateur peut utiliser n'importe quel caractère autorisé par le SQL pour le critère correspondant ; cela peut dépendre du système de base de données sous-jacent.

L'utilisateur peut utiliser les caractères de substitution SQL "%" (chaîne de caractères arbitraire) ou "_" (caractère arbitraire) comme partie de la valeur pour extraire des enregistrements avec des critères plus complexes.

## Mode SQL

L'abréviation SQL signifie "Structured Query Language" (langage de requête structuré) et désigne un ensemble d'instructions destinées à interroger, actualiser et gérer des bases de données relationnelles.

Dans LibreOffice, vous n'avez pas besoin de connaître le SQL pour la plupart des requêtes, dans la mesure où vous n'avez pas à saisir le code SQL. Si vous créez une requête dans l'ébauche de requête, LibreOffice convertit automatiquement les instructions dans la syntaxe SQL correspondante. Si vous passez en mode SQL à l'aide du bouton (Dés)activer le mode Ébauche, vous pouvez afficher les commandes SQL d'une requête ayant déjà été créée.

Vous pouvez formuler votre requête directement en code SQL. Remarquez cependant que la syntaxe exacte dépend du système de base de données que vous utilisez.

Lorsque vous saisissez le code SQL manuellement, vous pouvez créer des requêtes SQL spécifiques qui ne sont pas prises en charge par l'interface graphique dans l'ébauche de requête. De telles requêtes doivent être exécutées en mode SQL natif.

En cliquant sur l'icône Exécuter directement l'instruction SQL dans la vue SQL, vous pouvez formuler une requête n'étant pas traitée par LibreOffice.