Andesi - forum

Forum francophone pour Debian

Vous n'êtes pas identifié(e).

#1 22/07/2011 12:05:30

ledub
Membre
Lieu : Creil (60)
Inscription : 22/04/2003
Messages : 4 545

Typographie d'une requête SQL

Hello tout le monde,

Je suis en cours d'apprentissage dans la rédaction de requêtes SQL. J'aimerais que les scripts, que je suis en train d'écrire, soit les plus beaux possibles, je suis donc à la recherche d'une norme de typographie pour les requêtes SQL, c'est-à-dire comment placer des espaces,les tabulations et les changement de lignes devant ou après quel mot clé, comment couper les lignes, etc ?

J'ai cherché sur le terre net mais ma requête (non SQL) n'étant pas très claire, les réponses récupérées le sont encore moins !!!

LeDub qui va chercher du côté de VIm


« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!

Hors ligne

#2 23/07/2011 21:09:09

eLR!C
Membre
Lieu : Les Lilas
Inscription : 25/02/2004
Messages : 421
Site Web

Re : Typographie d'une requête SQL

Hello Ledub,

Il n'existe pas à ma connaissance de "standard" incontournable (chaque projet documente en principe sa norme)
Ce que je préfèrais à l'époque où je codais encore vraiment, c'était du style

SELECT tb1.champ1,
       tb1.champ2,
       tb2.champ1,
       tb3.champ1
FROM   table1 tb1,
       table2 tb2,
       table3 tb2
WHERE  tb2.id = tb1.id
AND    tb3.id2 = tb2.id2;

Ici, l'indentation et l'utilisation des majuscules pour les mots clé me paraît faciliter la lecture. L'utilisation des alias sous formes de trigrammes parlants me paraît une bonne habitude (quand la requête se complexifie ça facilite l'identification de la provenance des champs). Enfin, dans la clause "where", j'ordonne les conditions dans un ordre logique pour me rappeler ce que je voulais faire (i.e. j'écris a=2 et non 2=a) et retrouver facilement la logique de l'enchaînement des conditions.
Enfin, ne pas oublier de commenter son code, surtout quand il s'agit de SQL smile

Si je remets la main sur une de ses normes et que c'est "postable", je te dirai ...

happy coding
(eLR!C, pas souvent là, mais toujours sous (a)SID après toutes ces années tongue)

Hors ligne

#3 27/07/2011 20:29:21

ioguix
Administrator
Lieu : Paris
Inscription : 25/04/2003
Messages : 3 945

Re : Typographie d'une requête SQL

Oé, je suis d'accord, le plus important est certainement de mettre en majuscule les mots clé SQL et indenter tout le reste.

En général, j'essaie aussi de conserver seulement les mots suivants sans indentation: SELECT, INSERT, UPDATE, DELETE, FROM, WHERE, ORDER BY, GROUP BY, HAVING, LIMIT, OFFSET. Ce qui nous donne:

SELECT a.c1, a.c2, a.c3,
    b.c1, b.c2,
    c.c1
FROM t1 AS a,
    t2 AS b
    JOIN t3 AS c ON (b.foo=c.bar)
WHERE tralala
    AND trilili=blih
ORDER BY 1
LIMIT 10

[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222

Hors ligne

#4 29/07/2011 08:30:28

orgrim
Administrator
Lieu : Palaiseau
Inscription : 03/09/2005
Messages : 373
Site Web

Re : Typographie d'une requête SQL

Le détail important que montre ioguix ici est l'utilisation de JOIN au niveau du FROM pour faire des jointures plutot qu'utiliser = dans la clause WHERE. ça ouvre les possibilités d'utilisation de divers types de jointures.


"First they ignore you, then they ridicule you, then they fight you, then you win."
  --  Mahatma Gandhi

Hors ligne

Pied de page des forums