Quelles sont les bonnes raisons de capitaliser les mots clés SQL?


28

Il semble y avoir beaucoup de développeurs qui écrivent leur SQL en capitalisant les mots clés:

SELECT column
FROM table
     INNER JOIN table
     ON condition
WHERE condition
GROUP BY clause
HAVING condition

Je me demande pourquoi les gens s'en tiennent à cette approche? De toute évidence, c'est une convention établie de longue date - mais je n'ai jamais rencontré de SGBDR qui nécessite une capitalisation.

Personnellement, je trouve que les MOTS CLÉS QUI CRIENT attirent l'attention sur exactement la mauvaise partie de la requête, c'est pourquoi j'écris les mots clés en minuscules.

Pourtant, suffisamment de gens utilisent cette convention pour que je suppose que je manque quelque chose, d'où cette question.


3
C'est bien d'avoir les mots-clés plus visibles, même si votre IDE donne au texte des mots-clés une couleur différente.
The Muffin Man

3
La seule façon de faire face à avoir un langage dans un langage, c'est SHOUTles commandes de l'interpréteur SQL ...
Ben DeMott

Ma question aussi. +1
Saeed Neamati

Capitaliser les mots clés SQL que je peux comprendre. La plupart des déclarations et des requêtes de table que je vois mettent tout en majuscule, les noms de table et les colonnes sont inclus.
MPelletier

Réponses:


22

La mise en majuscule les fait ressortir, contrairement aux autres caractères qui se trouvent dans la fenêtre de requête.

La raison pour laquelle je ne fais pas ça car c'est un énorme gaspillage de temps. Vous pouvez effectuer l'une des deux opérations suivantes:

1) Maintenez la touche Maj enfoncée tout en tapant le mot : beaucoup trop sujet aux erreurs et juste au hasard.

2) Mettez le verrouillage des majuscules pour la durée du mot : un peu trop de temps.

J'utilise SQL Server et l'environnement (SSMS) a une excellente mise en évidence de la syntaxe, donc je ne pense pas personnellement que la capitalisation des mots clés soit aussi courante ces jours-ci qu'elle l'était (le cas échéant).

C'est une bonne pratique dans les livres et les didacticiels en ligne, cependant, il est donc évident quels sont les mots clés réservés. Ce n'est qu'une de ces choses non écrites.


20
@dave mais contrairement au code d'application, les scripts SQL sont très susceptibles d'être affichés dans un éditeur sans coloration syntaxique.
Aaronaught

8
@dave: les scripts SQL sont complètement autonomes et sont presque toujours envoyés par courrier électronique, saisis dans des zones de texte, imprimés pour les auditeurs ou saisis dans des utilitaires de ligne de commande comme SQL * Plus. Il ne s'agit pas de votre environnement, il s'agit de la durée de vie des scripts SQL en dehors de cet environnement - quelque chose qui n'est pas vraiment un problème avec le code source de l'application car il n'a aucune utilisation réelle en dehors d'un compilateur / IDE.
Aaronaught

6
Les instructions SQL apparaissent fréquemment dans les fichiers journaux, les messages d'erreur, intégrés dans les documents XML et toutes sortes d'endroits où la mise en surbrillance de la syntaxe n'est pas une option - donc toute mise en forme qui la rend plus facile à lire est toujours la bienvenue.
James Anderson

8
-1 si maintenir la touche Maj enfoncée ou appuyer sur le verrouillage des majuscules est trop, je pense qu'il y a d'autres problèmes. Et exactement combien les 0,25 secondes que vous avez enregistrées affectent-elles réellement quelque chose?
TheLQ

2
Ma réponse à votre question est une autre question: écrivez-vous quotidiennement du code SQL? Et multipliez 0,25 seconde par la quantité de code qu'un développeur SQL / dba écrit ...

8

Je trouve que ce type de capitalisation fournit un moyen rapide et facile de décomposer visuellement les différentes parties de la requête. Ceci, combiné à une bonne indentation, peut aider à la lisibilité et à la compréhension de la logique.

Que cela ait ou non quelque chose à voir avec la façon dont la norme a été élaborée, je ne sais pas. Mais c'est mon expérience personnelle.


7

Il y a bien longtemps, les mots-clés n'étaient en aucun cas mis en évidence lorsque vous écriviez du code, donc c'était une tentative pour aider les gens à faire la différence entre les parties SQL et les parties objets de base de données des requêtes, cela aurait pu aller dans le sens inverse, mais les objets ont tendance à avoir des noms plus longs, ce qui les rend plus difficiles à capitaliser et certaines conventions de dénomination des objets étaient spécifiques au cas.

Personnellement, je trouve cela aussi facile à lire s'ils ne sont pas en majuscules, mais beaucoup de gens sont tellement habitués à les lire de cette façon, cela les déstabilise si vous ne les capitalisez pas.


4
J'ai récemment été exposé à des gens qui en fait font renverser la convention, en capitalisant les noms des objets et en laissant les mots - clés en minuscules; c'est pour le moins choquant.
Aaronaught

6

SQL est un langage orienté clause, bien plus que tout ce que j'ai pu expérimenter. Vous avez votre clause SELECT, et votre clause FROM, et vos clauses JOIN et votre clause WHERE. COMMANDER PAR, GROUPE PAR, etc., etc.

La mise en majuscule de ces mots clés vous aide à séparer visuellement les clauses distinctes. Ceci est particulièrement pratique dans l'une de ces situations de débogage délicates où vous sortez votre SQL dans un commentaire HTML, puis copiez-collez dans une console. Méchant, mais nous y sommes tous allés. Il est bon d'avoir de l'aide pour voir où commence chaque élément de la déclaration.


2

Personnellement, je trouve que les MOTS CLÉS QUI CRIENT attirent l'attention sur exactement la mauvaise partie de la requête, c'est pourquoi j'écris les mots clés en minuscules.

Comme cela a été souligné, avec les anciens IDE, vous n'aviez pas beaucoup d'options en plus de la casse pour différencier le texte. Comme vous le faites remarquer, faire ressortir les mots clés détourne votre attention de l'endroit où elle devrait être. Le problème est que vous savez que les mots clés peuvent toujours être capitalisés, tandis que les autres éléments peuvent contenir des littéraux et des identificateurs qui respectent la casse. Cela conduit à la voie de moindre résistance étant de simplement capitaliser les mots clés.


-1

Dans mon cas, je préfère mettre en majuscule les mots clés, indépendamment de la coloration syntaxique. Imaginez que vous ne disposez pas d'un éditeur SQL approprié et que vous devez écrire / modifier ou ouvrir vos scripts dans le Bloc-notes ou WordPad. Ces éditeurs n'ont pas de coloration syntaxique.

Je ne fais pas très attention à la coloration syntaxique de SQL Server pour la même raison que je l'ai décrite ci-dessus, mais c'est utile (ça m'ennuie de voir tout le code en noir). J'ai toujours utilisé des majuscules pour distinguer les mots clés de mes variables, constantes, noms, etc.


Cela aurait dû être un commentaire, mais vous n'avez pas la réputation d'en poster un ...
Adam Zuckerman

J'ai couvert cela dans la question d'origine - l'utilisation des MAJUSCULES pour les mots clés attire l'attention des lecteurs sur la partie la moins importante de la requête ou de la déclaration.
Bevan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.