|
|
|
|
<!--
|
|
|
|
|
<!DOCTYPE chapter PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd">
|
|
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<sect1 id="designing-queries">
|
|
|
|
|
<title
|
|
|
|
|
>Concevoir des requêtes de base de données</title>
|
|
|
|
|
<para
|
|
|
|
|
>Le but principal d'une base de données est de stocker des données et de permettre d'en sortir la partie qui vous intéresse. Une base de données &kexi; vous permet de préciser plus de critères de recherche qu'une base de données sur papier. Les résultats sont plus rapides, même pour de grands jeux de données. Tout ceci vient de la puissance des bases de données. Cependant, pour pouvoir accomplir des <emphasis
|
|
|
|
|
>requêtes</emphasis
|
|
|
|
|
> efficaces dans votre base de données, vous devez apprendre comment expliquer à la base de données ce que vous cherchez. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Grâce aux requêtes de base de données, vous pouvez restreindre les données arrivant d'une table à un jeu prédéfini de lignes et colonnes, ainsi que <firstterm
|
|
|
|
|
>joindre</firstterm
|
|
|
|
|
> dynamiquement des données provenant de plusieurs tables. </para>
|
|
|
|
|
<para
|
|
|
|
|
>Pour voir comment les requêtes fonctionnent en pratique, vous allez créer une requête <literal
|
|
|
|
|
>contacts</literal
|
|
|
|
|
> joignant les données de deux tables : <literal
|
|
|
|
|
>personnes</literal
|
|
|
|
|
> et <literal
|
|
|
|
|
>numero_de_telephone</literal
|
|
|
|
|
> (conçues dans le chapitre 3.1i et remplies de données dans le chapitre 3.2). </para>
|
|
|
|
|
<procedure>
|
|
|
|
|
<step>
|
|
|
|
|
<para
|
|
|
|
|
>Créez une nouvelle requête vide en choisissant <menuchoice
|
|
|
|
|
><guimenu
|
|
|
|
|
>Insérer</guimenu
|
|
|
|
|
><guimenuitem
|
|
|
|
|
>Requête</guimenuitem
|
|
|
|
|
></menuchoice
|
|
|
|
|
> dans la barre de menu. La fenêtre de conception va apparaitre. Cette fenêtre est divisée en deux parties : les relations de la requêtes en haut et les colonnes de la requête en bas. </para>
|
|
|
|
|
</step>
|
|
|
|
|
<step>
|
|
|
|
|
<para
|
|
|
|
|
>Choisissez la table <literal
|
|
|
|
|
>personnes</literal
|
|
|
|
|
> dans la liste déroulante <guilabel
|
|
|
|
|
>Table :</guilabel
|
|
|
|
|
> situé en haut de la fenêtre et cliquez sur le bouton <guibutton
|
|
|
|
|
>Ajouter</guibutton
|
|
|
|
|
>. Une représentation graphique de la table va apparaître dans la zone des relations. Faites la même chose avec la table <literal
|
|
|
|
|
>numeros_de_telephone</literal
|
|
|
|
|
>, pour l'insérer elle aussi, comme le montre la figure ci-dessous. </para>
|
|
|
|
|
<!--<screenshot>
|
|
|
|
|
<screeninfo
|
|
|
|
|
><literal
|
|
|
|
|
>contacts</literal
|
|
|
|
|
> query design</screeninfo>
|
|
|
|
|
<mediaobject>
|
|
|
|
|
<imageobject>
|
|
|
|
|
<imagedata fileref="img/05_03_00_query_design.png" format="PNG"/>
|
|
|
|
|
</imageobject>
|
|
|
|
|
<textobject>
|
|
|
|
|
<phrase
|
|
|
|
|
><literal
|
|
|
|
|
>contacts</literal
|
|
|
|
|
> query design</phrase>
|
|
|
|
|
</textobject>
|
|
|
|
|
</mediaobject>
|
|
|
|
|
</screenshot
|
|
|
|
|
>-->
|
|
|
|
|
</step>
|
|
|
|
|
<step>
|
|
|
|
|
<para
|
|
|
|
|
>Ajoutez les relations de la requête en glissant et déposant avec la souris : cliquez sur le champ <literal
|
|
|
|
|
>id</literal
|
|
|
|
|
> de la table <literal
|
|
|
|
|
>personnes</literal
|
|
|
|
|
> et déposez le sur le champ <literal
|
|
|
|
|
>personnes</literal
|
|
|
|
|
> de la table <literal
|
|
|
|
|
>numeros_de_telephone</literal
|
|
|
|
|
>. Cela va <emphasis
|
|
|
|
|
>joindre les deux champs en créant une nouvelle relation</emphasis
|
|
|
|
|
>. </para>
|
|
|
|
|
</step>
|
|
|
|
|
<step>
|
|
|
|
|
<para
|
|
|
|
|
>Double-cliquez sur le champ <literal
|
|
|
|
|
>prenom</literal
|
|
|
|
|
> de la table <literal
|
|
|
|
|
>personnes</literal
|
|
|
|
|
>, pour ajouter ce champ comme <firstterm
|
|
|
|
|
>colonne de la requête</firstterm
|
|
|
|
|
>. De même, ajoutez les champs <literal
|
|
|
|
|
>nom</literal
|
|
|
|
|
>, <literal
|
|
|
|
|
>rue</literal
|
|
|
|
|
>, <literal
|
|
|
|
|
>numero</literal
|
|
|
|
|
>, <literal
|
|
|
|
|
>ville</literal
|
|
|
|
|
> de la table <literal
|
|
|
|
|
>personnes</literal
|
|
|
|
|
> et <literal
|
|
|
|
|
>telephone</literal
|
|
|
|
|
> de la table <literal
|
|
|
|
|
>numeros_de_telephone</literal
|
|
|
|
|
>. </para>
|
|
|
|
|
</step>
|
|
|
|
|
<step>
|
|
|
|
|
<para
|
|
|
|
|
>Votre requête est maintenant prête à être testée. Cliquez sur le bouton <guibutton
|
|
|
|
|
>passer en mode données</guibutton
|
|
|
|
|
> de la barre d'outils, pour passer du mode conception au mode permettant de voir les données retournées par la requête. </para>
|
|
|
|
|
<!--<screenshot>
|
|
|
|
|
<screeninfo
|
|
|
|
|
><literal
|
|
|
|
|
>Contacts</literal
|
|
|
|
|
> query results</screeninfo>
|
|
|
|
|
<mediaobject>
|
|
|
|
|
<imageobject>
|
|
|
|
|
<imagedata fileref="img/05_03_00_query_results.png" format="PNG"/>
|
|
|
|
|
</imageobject>
|
|
|
|
|
<textobject>
|
|
|
|
|
<phrase
|
|
|
|
|
><literal
|
|
|
|
|
>Contacts</literal
|
|
|
|
|
> query results</phrase>
|
|
|
|
|
</textobject>
|
|
|
|
|
</mediaobject>
|
|
|
|
|
</screenshot
|
|
|
|
|
>-->
|
|
|
|
|
</step>
|
|
|
|
|
<step>
|
|
|
|
|
<para
|
|
|
|
|
>Enregistrer votre requête en cliquant sur le bouton <guibutton
|
|
|
|
|
>Enregistrer</guibutton
|
|
|
|
|
> de la barre d'outils. Vous pouvez aussi utiliser <menuchoice
|
|
|
|
|
><guimenu
|
|
|
|
|
>Fichier</guimenu
|
|
|
|
|
><guimenuitem
|
|
|
|
|
>Enregistrer</guimenuitem
|
|
|
|
|
></menuchoice
|
|
|
|
|
> dans la barre de menu ou presser les touches <keycombo action="simul"
|
|
|
|
|
><keycap
|
|
|
|
|
>Ctrl</keycap
|
|
|
|
|
><keycap
|
|
|
|
|
>S</keycap
|
|
|
|
|
></keycombo
|
|
|
|
|
>. Puisque la requête n'avait pas encore été enregistrée, vous allez devoir lui donner un nom. Saisissez le nom <literal
|
|
|
|
|
>Contacts</literal
|
|
|
|
|
> dans le champ <guilabel
|
|
|
|
|
>Légende</guilabel
|
|
|
|
|
> et cliquez sur le bouton <guibutton
|
|
|
|
|
>OK</guibutton
|
|
|
|
|
>. </para>
|
|
|
|
|
</step>
|
|
|
|
|
</procedure>
|
|
|
|
|
</sect1>
|