Skip to content

Commit

Permalink
Relecture orthographique du chapitre sur les types de données
Browse files Browse the repository at this point in the history
  • Loading branch information
gleu committed Sep 24, 2018
1 parent c492d15 commit 2afb52c
Show file tree
Hide file tree
Showing 5 changed files with 333 additions and 333 deletions.
42 changes: 21 additions & 21 deletions postgresql/array.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
</para>

<para>
Une autre syntaxe, conforme au standard SQL via l'utilisation du mot clé
Une autre syntaxe, conforme au standard SQL via l'utilisation du mot-clé
<literal>ARRAY</literal>, peut être employée pour les tableaux à une
dimension. <structfield>paye_par_semaine</structfield> peut être défini
ainsi&nbsp;:
Expand Down Expand Up @@ -100,7 +100,7 @@
<synopsis>'{ <replaceable>val1</replaceable> <replaceable>delim</replaceable> <replaceable>val2</replaceable> <replaceable>delim</replaceable> ... }'</synopsis>
où <replaceable>delim</replaceable> est le caractère de délimitation pour ce
type, tel qu'il est enregistré dans son entrée <literal>pg_type</literal>.
Parmi les types de données standard fournis par la distribution
Parmi les types de données standards fournis par la distribution
<productname>PostgreSQL</productname>, tous utilisent une virgule
(<literal>,</literal>), sauf pour le type <type>box</type> qui utilise
un point-virgule (<literal>;</literal>). Chaque <replaceable>val</replaceable> est soit une constante
Expand Down Expand Up @@ -154,7 +154,7 @@ Carol | {20000,25000,25000,25000} | {{petit-déjeuner,consultation},{rendez-vou
</para>

<para>
Les tableaux multi-dimensionnels doivent avoir des échelles correspondantes
Les tableaux multidimensionnels doivent avoir des échelles correspondantes
pour chaque dimension. Une différence cause la levée d'une erreur. Par
exemple&nbsp;:

Expand Down Expand Up @@ -260,7 +260,7 @@ INSERT INTO sal_emp
{{rendez-vous,repas},{entrainement,présentation}}
(1 row)</programlisting>

Pour éviter la confusion avec le cas sans indice, il est meilleur d'utiliser
Pour éviter la confusion avec le cas sans indice, il est préférable d'utiliser
la syntaxe avec indice pour toutes les dimensions, c'est-à-dire
<literal>[1:2][1:1]</literal> et non pas <literal>[2][1:1]</literal>.
</para>
Expand Down Expand Up @@ -324,7 +324,7 @@ SELECT planning[:][1:1] FROM sal_emp WHERE nom = 'Bill';
(1 row)</programlisting>

<function>array_dims</function> donne un résultat de type <type>text</type>,
ce qui est pratique à lire mais peut s'avérer plus difficile à interpréter
ce qui est pratique à lire, mais peut s'avérer plus difficile à interpréter
par les
programmes. Les dimensions sont aussi récupérables avec
<function>array_upper</function> et <function>array_lower</function>, qui
Expand Down Expand Up @@ -406,7 +406,7 @@ SELECT cardinality(planning) FROM sal_emp WHERE nom = 'Carol';
déjà présents. Toute position entre ceux déjà présents et les nouveaux
éléments est remplie avec la valeur NULL. Par exemple, si le tableau
<literal>mon_tableau</literal> a actuellement quatre éléments, il en aura
six après une mise à jour qui affecte <literal>mon_tableau[6]</literal>
six après une mise à jour qui affecte <literal>mon_tableau[6]</literal>,
car <literal>mon_tableau[5]</literal> est alors rempli avec une valeur NULL.
Actuellement, l'agrandissement de cette façon n'est autorisé que pour
les tableaux à une dimension, pas pour les tableaux multidimensionnels.
Expand Down Expand Up @@ -533,10 +533,10 @@ SELECT array_cat(ARRAY[5,6], ARRAY[[1,2],[3,4]]);
préférée à l'utilisation directe de ces fonctions. Néanmoins, comme
l'opérateur de concaténation est surchargé pour servir les trois cas,
certaines utilisations peuvent bénéficier de l'utilisation d'une fonction
pour éviter toute ambiguité. Par exemple&nbsp;:
pour éviter toute ambiguïté. Par exemple&nbsp;:

<programlisting>
SELECT ARRAY[1, 2] || '{3, 4}'; -- le litéral non typé est pris pour un tableau
SELECT ARRAY[1, 2] || '{3, 4}'; -- le littéral non typé est pris pour un tableau
?column?
-----------
{1,2,3,4}
Expand All @@ -558,9 +558,9 @@ SELECT array_append(ARRAY[1, 2], NULL); -- ceci peut être voulu

Dans l'exemple ci-dessus, l'analyseur voit un tableau d'entiers d'un côté de
l'opérateur de concaténation et une constante de type indéterminé de
l'autre. L'heuristique utilisé pour résoudre le type de la constante revient
l'autre. L'heuristique utilisée pour résoudre le type de la constante revient
à assumer qu'elle est de même type que l'autre entrée de l'opérateur &mdash;
dans ce cas, un tableau d'entiers. Donc l'opérateur de concaténation est
dans ce cas, un tableau d'entiers. Donc, l'opérateur de concaténation est
supposé représenter <function>array_cat</function>, et non pas
<function>array_append</function>. Quand le choix est erroné, cela peut se
corriger en convertissant la constante dans le type de données d'un élément
Expand All @@ -579,7 +579,7 @@ SELECT array_append(ARRAY[1, 2], NULL); -- ceci peut être voulu

<para>
Pour rechercher une valeur dans un tableau, il faut vérifier chaque valeur
dans le tableau. Ceci peut se faire à la main lorque la taille du
dans le tableau. Ceci peut se faire à la main lorsque la taille du
tableau est connue. Par exemple&nbsp;:

<programlisting>SELECT * FROM sal_emp WHERE paye_par_semaine[1] = 10000 OR
Expand Down Expand Up @@ -626,15 +626,15 @@ SELECT * FROM sal_emp WHERE paye_par_semaine &amp;&amp; ARRAY[10000];
</programlisting>

Les opérateurs sur les tableaux sont décrits plus en profondeur dans
<xref linkend="functions-array"/>. Leur performances peuvent profiter d'un
<xref linkend="functions-array"/>. Leurs performances peuvent profiter d'un
index approprié, comme décrit dans <xref linkend="indexes-types"/>.
</para>

<para>
Vous pouvez aussi rechercher des valeurs spécifiques dans un tableau en utilisant les
fonctions <function>array_position</function> et <function>array_positions</function>.
La première renvoie l'indice de la première occurence d'une valeur dans un tableau.
La seconde renvoie un tableau avec les indices de toutes les occurences de la valeur
La première renvoie l'indice de la première occurrence d'une valeur dans un tableau.
La seconde renvoie un tableau avec les indices de toutes les occurrences de la valeur
dans le tableau. Par exemple&nbsp;:

<programlisting>SELECT array_position(ARRAY['sun','mon','tue','wed','thu','fri','sat'], 'mon');
Expand All @@ -653,7 +653,7 @@ SELECT array_positions(ARRAY[1, 4, 3, 1, 3, 4, 2, 1], 1);
Les tableaux ne sont pas des ensembles&nbsp;; rechercher des éléments
spécifiques dans un tableau peut être un signe d'une mauvaise conception de
la base de données. On utilise plutôt une table séparée avec une
ligne pour chaque élément faisant parti du tableau. Cela simplifie
ligne pour chaque élément faisant partie du tableau. Cela simplifie
la recherche et fonctionne mieux dans le cas d'un grand nombre
d'éléments.
</para>
Expand All @@ -677,7 +677,7 @@ SELECT array_positions(ARRAY[1, 4, 3, 1, 3, 4, 2, 1], 1);
délimitation entre éléments adjacents. Le caractère délimiteur est
habituellement une virgule (<literal>,</literal>) mais peut différer&nbsp;:
il est déterminé par le paramètre <literal>typdelim</literal> du type de l'élément
tableau. Parmi les types de données standard supportés par l'implantation
tableau. Parmi les types de données standards supportés par l'implantation
de <productname>PostgreSQL</productname>, seul le type <type>box</type> utilise un
point-virgule (<literal>;</literal>), tous les autres utilisant la virgule.
Dans un tableau multidimensionnel, chaque dimension (row, plane, cube, etc.)
Expand All @@ -702,11 +702,11 @@ SELECT array_positions(ARRAY[1, 4, 3, 1, 3, 4, 2, 1], 1);
Pour représenter des tableaux avec des limites basses différentes, les
indices du tableau doivent être indiqués explicitement avant d'écrire le
contenu du tableau.
Cet affichage est consititué de crochets (<literal>[]</literal>) autour
Cet affichage est constitué de crochets (<literal>[]</literal>) autour
de chaque limite basse et haute d'une
dimension avec un délimiteur deux-points (<literal>:</literal>) entre
les deux.
L'affichage des dimensions du tableau est suivie par un signe d'égalité
L'affichage des dimensions du tableau est suivi par un signe d'égalité
(<literal>=</literal>). Par exemple&nbsp;:
<programlisting>
SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2
Expand All @@ -718,14 +718,14 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2
(1 row)
</programlisting>
La routine de sortie du tableau inclut les dimensions explicites dans
le resultat uniquement lorsqu'au moins une limite basse est différente
le résultat uniquement lorsqu'au moins une limite basse est différente
de 1.
</para>

<para>
Si la valeur écrite pour un élément est <literal>NULL</literal> (toute
variante), l'élément est considéré NULL. La présence de guillemets ou
d'antislashs désactive ce fonctionnement et autorise la saisie de la valeur litérale de
d'antislashs désactive ce fonctionnement et autorise la saisie de la valeur littérale de
la chaîne <quote>NULL</quote>. De plus, pour une compatibilité ascendante
avec les versions antérieures à la version 8.2 de
<productname>PostgreSQL</productname>,
Expand Down Expand Up @@ -761,7 +761,7 @@ SELECT f1[1][-2][3] AS e1, f1[1][-1][5] AS e2

<note>
<para>
Toute ce qui est écrit dans une commande SQL est d'abord
Tout ce qui est écrit dans une commande SQL est d'abord
interprété en tant que chaîne littérale puis en tant que tableau. Ceci
double le nombre d'antislash nécessaire. Par exemple, pour
insérer une valeur de tableau de type <type>text</type> contenant un antislash
Expand Down

0 comments on commit 2afb52c

Please sign in to comment.