Skip to content

Commit

Permalink
Corrections orthographiques sur la partie Langage SQL
Browse files Browse the repository at this point in the history
  • Loading branch information
ced75 authored and gleu committed Sep 12, 2018
1 parent 891d51c commit d984084
Showing 1 changed file with 30 additions and 30 deletions.
60 changes: 30 additions & 30 deletions postgresql/queries.xml
Original file line number Diff line number Diff line change
Expand Up @@ -964,7 +964,7 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr
utilisée pour regrouper les lignes d'une table qui ont les mêmes valeurs
dans toutes les colonnes précisées. L'ordre dans lequel ces colonnes sont
indiquées importe peu. L'effet est de combiner chaque ensemble de lignes
partageant des valeurs communes en un seul groupe de ligne représentant
partageant des valeurs communes en un seul groupe de lignes représentant
toutes les lignes du groupe. Ceci est fait pour éliminer les redondances dans
la sortie et/ou pour calculer les agrégats s'appliquant à ces groupes. Par
exemple&nbsp;:
Expand All @@ -989,15 +989,15 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr
<para>
Dans la seconde requête, nous n'aurions pas pu écrire <literal>SELECT *
FROM test1 GROUP BY x</literal> parce qu'il n'existe pas une seule valeur
pour la colonne <literal>y</literal> pouvant être associé avec chaque autre groupe.
pour la colonne <literal>y</literal> pouvant être associée avec chaque autre groupe.
Les colonnes de regroupement peuvent être référencées dans la liste de
sélection car elles ont une valeur constante unique par groupe.
sélection, car elles ont une valeur constante unique par groupe.
</para>

<para>
En général, si une table est groupée, les colonnes qui ne sont pas
listées dans le <literal>GROUP BY</literal> ne peuvent pas être référencées
sauf dans les expressions d'agrégats. Voici un exemple d'expressions
sauf dans les expressions d'agrégats. Voici un exemple d'expression
d'agrégat&nbsp;:
<screen><prompt>=&gt;</prompt> <userinput>SELECT x, sum(y) FROM test1 GROUP BY x;</userinput>
x | sum
Expand All @@ -1014,7 +1014,7 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr
<tip>
<para>
Le regroupement sans expressions d'agrégats calcule effectivement
l'ensemble les valeurs distinctes d'une colonne. Ceci peut aussi se faire
l'ensemble des valeurs distinctes d'une colonne. Ceci peut aussi se faire
en utilisant la clause <literal>DISTINCT</literal> (voir la <xref
linkend="queries-distinct"/>).
</para>
Expand All @@ -1028,10 +1028,10 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr
GROUP BY produit_id, p.nom, p.prix;</programlisting>
Dans cet exemple, les colonnes <literal>produit_id</literal>,
<literal>p.nom</literal> et <literal>p.prix</literal> doivent être dans la
clause <literal>GROUP BY</literal> car elles sont référencées dans la liste de
clause <literal>GROUP BY</literal>, car elles sont référencées dans la liste de
sélection de la requête (but see below). La colonne
<literal>s.unite</literal> n'a pas besoin d'être dans la liste <literal>GROUP
BY</literal> car elle est seulement utilisée dans l'expression de l'agrégat
BY</literal>, car elle est seulement utilisée dans l'expression de l'agrégat
(<literal>sum(...)</literal>) représentant les ventes d'un produit. Pour
chaque produit, la requête renvoie une ligne de résumé sur les ventes de ce
produit.
Expand Down Expand Up @@ -1063,13 +1063,13 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr

<para>
Si une table a été groupée en utilisant la clause <literal>GROUP
BY</literal> mais que seuls certains groupes sont intéressants, la clause
BY</literal>, mais que seuls certains groupes sont intéressants, la clause
<literal>HAVING</literal> peut être utilisée, comme une clause
<literal>WHERE</literal>, pour éliminer les groupes du résultat. Voici la
syntaxe&nbsp;:
<synopsis>SELECT <replaceable>liste_selection</replaceable> FROM ... <optional>WHERE ...</optional> GROUP BY ... HAVING <replaceable>expression_booléenne</replaceable></synopsis>
Les expressions de la clause <literal>HAVING</literal> peuvent référer à la fois
aux expressions groupées et aux expressions non groupées (ce qui impliquent
aux expressions groupées et aux expressions non groupées (ce qui implique
nécessairement une fonction d'agrégat).
</para>

Expand Down Expand Up @@ -1106,13 +1106,13 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr
</para>

<para>
Si une requête contient des appels à des fonctions d'aggrégat, mais pas
Si une requête contient des appels à des fonctions d'agrégat, mais pas
de clause <literal>GROUP BY</literal>, le regroupement a toujours lieu&nbsp;:
le résultat est une seule ligne de regroupement (ou peut-être pas de ligne
du tout si la ligne unique est ensuite éliminée par la clause
<literal>HAVING</literal>).
Ceci est vrai aussi si elle comporte une clause <literal>HAVING</literal>,
même sans fonction d'aggrégat ou <literal>GROUP BY</literal>.
même sans fonction d'agrégat ou <literal>GROUP BY</literal>.
</para>
</sect2>

Expand Down Expand Up @@ -1154,8 +1154,8 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 &gt; fdt.c1)</progr
</para>

<para>
À l'heure actuelle, les fonctions window nécessitent toujours des données
pré-triées, ce qui fait que la sortie de la requête sera triée suivant
À l'heure actuelle, les fonctions Window nécessitent toujours des données
prétriées, ce qui fait que la sortie de la requête sera triée suivant
l'une ou l'autre des clauses <literal>PARTITION BY</literal>/<literal>ORDER BY</literal>
des fonctions Window.
Il n'est toutefois pas recommandé de s'en servir. Utilisez une clause
Expand Down Expand Up @@ -1200,7 +1200,7 @@ de la table intermédiaire à afficher.
<programlisting>SELECT a, b, c FROM ...</programlisting>
Les noms de colonnes <literal>a</literal>, <literal>b</literal> et <literal>c</literal> sont
soit les noms actuels des colonnes des tables référencées dans la clause
<literal>FROM</literal> soit les alias qui leur ont été donnés (voir l'explication
<literal>FROM</literal>, soit les alias qui leur ont été donnés (voir l'explication
dans <xref linkend="queries-table-aliases"/>). L'espace de nom disponible
dans la liste de sélection est le même que dans la clause <literal>WHERE</literal>
sauf si le regroupement est utilisé, auquel cas c'est le même que dans la
Expand All @@ -1209,7 +1209,7 @@ de la table intermédiaire à afficher.

<para>
Si plus d'une table a une colonne du même nom, le nom de la table doit
aussi être donné comme dans&nbsp;:
aussi être donné, comme dans&nbsp;:
<programlisting>SELECT tbl1.a, tbl2.a, tbl1.b FROM ...</programlisting>
En travaillant avec plusieurs tables, il est aussi utile de demander toutes
les colonnes d'une table particulière&nbsp;:
Expand All @@ -1225,7 +1225,7 @@ aussi être donné comme dans&nbsp;:
ligne avec une substitution des valeurs de lignes avec les références de
colonnes. Mais les expressions de la liste de sélection n'ont pas à
référencer les colonnes dans l'expression de la table de la clause
<literal>FROM</literal>&nbsp;; elles pourrait être des expressions arithmétiques
<literal>FROM</literal>&nbsp;; elles pourraient être des expressions arithmétiques
constantes, par exemple.
</para>
</sect2>
Expand Down Expand Up @@ -1333,10 +1333,10 @@ SELECT a "valeur", b + c AS somme FROM ...

<para>
La clause <literal>DISTINCT ON</literal> ne fait pas partie du standard SQL et est
quelque fois considérée comme étant un mauvais style à cause de la nature
quelques fois considérée comme étant un mauvais style à cause de la nature
potentiellement indéterminée de ses résultats. Avec l'utilisation judicieuse
de <literal>GROUP BY</literal> et de sous-requêtes dans <literal>FROM</literal>, la
construction peut être évitée mais elle représente souvent l'alternative la
construction peut être évitée, mais elle représente souvent l'alternative la
plus agréable.
</para>
</sect2>
Expand Down Expand Up @@ -1403,7 +1403,7 @@ SELECT a "valeur", b + c AS somme FROM ...
<para>
<literal>EXCEPT</literal> renvoie toutes les lignes qui sont dans le résultat de
<replaceable>requete1</replaceable> mais pas dans le résultat de
<replaceable>requete2</replaceable> (ceci est quelque fois appelé la
<replaceable>requete2</replaceable> (ceci est quelquefois appelé la
<firstterm>différence</firstterm> entre deux requêtes). De nouveau, les lignes
dupliquées sont éliminées sauf si <literal>EXCEPT ALL</literal> est utilisé.
</para>
Expand All @@ -1430,12 +1430,12 @@ SELECT a "valeur", b + c AS somme FROM ...
</indexterm>

<para>
Après qu'une requête ait produit une table en sortie (après que la liste de
sélection ait été traitée), elle peut être optionnellement triée. Si le tri
Après qu'une requête a produit une table en sortie (après que la liste de
sélection a été traitée), elle peut être optionnellement triée. Si le tri
n'a pas été choisi, les lignes sont renvoyées dans un ordre non spécifié.
Dans ce cas, l'ordre réel dépendra des types de plan de parcours et de
jointure et de l'ordre sur le disque mais vous ne devez pas vous y fier. Un
tri particulier en sortie peut seulement être garantie si l'étape de tri est
jointure et de l'ordre sur le disque, mais vous ne devez pas vous y fier. Un
tri particulier en sortie peut seulement être garanti si l'étape de tri est
choisie explicitement.
</para>

Expand Down Expand Up @@ -1545,7 +1545,7 @@ SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- mauvais
</para>

<para>
Si un nombre limite est donné, pas plus que ce nombre de lignes sera renvoyé
Si un nombre limite est donné, pas plus que ce nombre de lignes ne sera renvoyé
(mais peut-être moins si la requête récupère moins de lignes). <literal>LIMIT
ALL</literal> revient à ne pas spécifier la clause <literal>LIMIT</literal>.
</para>
Expand All @@ -1563,7 +1563,7 @@ SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- mauvais
Lors de l'utilisation de <literal>LIMIT</literal>, il est important d'utiliser une
clause <literal>ORDER BY</literal> contraignant les lignes résultantes dans un ordre
unique. Sinon, vous obtiendrez un sous-ensemble non prévisible de lignes de
la requête. Vous pourriez demander les lignes de 10 à 20 mais dans quel
la requête. Vous pourriez demander les lignes de 10 à 20, mais dans quel
ordre&nbsp;? L'ordre est inconnu si vous ne spécifiez pas <literal>ORDER
BY</literal>.
</para>
Expand All @@ -1577,7 +1577,7 @@ SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- mauvais
des sous-ensembles différents d'un résultat de requête <emphasis>donnera des
résultats inconsistants</emphasis> sauf si vous forcez un ordre de
résultat prévisible avec <literal>ORDER BY</literal>. Ceci n'est pas un bogue&nbsp;;
c'est une conséquence inhérente du fait que le SQL ne promette par de
c'est une conséquence inhérente au fait que le SQL ne promette pas de
délivrer les résultats d'une requête dans un ordre particulier sauf si
<literal>ORDER BY</literal> est utilisé pour contraindre l'ordre.
</para>
Expand All @@ -1599,7 +1599,7 @@ SELECT a + b AS sum, c FROM table1 ORDER BY sum + c; -- mauvais

<para>
<literal>VALUES</literal> fournit une façon de générer une table de
<quote>constantes</quote> qui peut être utilisé dans une requête sans
<quote>constantes</quote> qui peut être utilisée dans une requête sans
avoir à réellement créer et peupler une table sur disque. La syntaxe est
<synopsis>
VALUES ( <replaceable class="parameter">expression</replaceable> [, ...] ) [, ...]
Expand Down Expand Up @@ -1717,12 +1717,12 @@ FROM commandes
WHERE region IN (SELECT region FROM meilleures_regions)
GROUP BY region, produit;</programlisting>

qui affiche les totaux de ventes par produit dans seulement les régions
qui affiche les totaux de ventes par produit seulement dans les régions
ayant les meilleures ventes.
La clause <literal>WITH</literal> définit deux ordres
auxiliaires appelés <structname>ventes_regionales</structname>
et <structname>meilleures_regions</structname>, où la sortie
de <structname>ventes_regionales</structname> est utilisé dans
de <structname>ventes_regionales</structname> est utilisée dans
<structname>meilleures_regions</structname> et la sortie de
<structname>meilleures_regions</structname> est utilisée dans la
requête <command>SELECT</command> primaire.
Expand All @@ -1748,7 +1748,7 @@ GROUP BY region, produit;</programlisting>
SELECT sum(n) FROM t;</programlisting>

La forme générale d'une requête <literal>WITH</literal> est toujours un
<firstterm>terme non-recursif</firstterm>, puis <literal>UNION</literal> (ou
<firstterm>terme non récursif</firstterm>, puis <literal>UNION</literal> (ou
<literal>UNION ALL</literal>), puis un <firstterm>terme récursif</firstterm>.
Seul le terme récursif peut contenir une référence à la sortie propre de la
requête. Une requête de ce genre est exécutée comme suit&nbsp;:
Expand Down

0 comments on commit d984084

Please sign in to comment.