Pourquoi devrais-je capitaliser mes mots-clés SQL?

Duplication possible:
Y a-t-il une bonne raison d’utiliser les majuscules pour les mots-clés T-SQL?

Question simple. Je trouve personnellement qu’une chaîne de caractères minuscules est plus lisible qu’une chaîne de caractères majuscules. Y a-t-il un aspect ancien / populaire de SQL sensible à la casse ou quelque chose?

Pour référence:

select this.Column1, case when this.Column2 is null then 0 else this.Column2 end from dbo.SomeTable this inner join dbo.AnotherTable another on this.id = another.id where this.Price > 100 

contre.

 SELECT this.Column1, CASE WHEN this.Column2 IS NULL THEN 0 ELSE this.Column2 END FROM dbo.SomeTable this INNER JOIN dbo.AnotherTable another ON this.id = another.id WHERE this.Price > 100 

Le premier me semble tellement plus lisible, mais je le vois plus souvent.

Je pense que ce dernier est plus lisible. Vous pouvez facilement séparer les mots-clés des noms de tables et de colonnes, etc.

Je suis d’accord avec vous – pour moi, les majuscules ne sont que des SHOUTING.

Je laisse mon IDE se débrouiller pour faire ressortir les mots-clés, grâce à la coloration syntaxique.

Je ne connais pas de raison historique pour cela, mais maintenant, c’est juste une préférence subjective.

Modifier pour clarifier davantage mon raisonnement:

Voulez-vous mettre en majuscule vos mots-clés dans toute autre langue moderne? Exemple composé:

 USING (EditForm form = NEW EditForm()) { IF (form.ShowDialog() == DialogResult.OK) { IF ( form.EditedThing == null ) { THROW NEW Exception("No thing!"); } RETURN form.EditedThing; } ELSE { RETURN null; } } 

Pouah!

Quoi qu’il en soit, il ressort clairement des votes que le style est plus populaire, mais je pense que nous sums tous d’accord pour dire que c’est juste une préférence personnelle.

Une chose que j’appendai à cela et que je n’ai encore vu personne:

Si vous utilisez du SQL ad hoc depuis un langage de programmation, vous aurez beaucoup de chaînes SQL à l’intérieur. Par exemple:

 insertStatement = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jane','Smith')" 

Dans ce cas, la coloration syntaxique ne fonctionnera probablement pas, de sorte que la mise en majuscule pourrait aider à la lisibilité.

Du style de programmation SQL de Joe Celko (ISBN 978-0120887972):

Règle:

Mettre en majuscule les mots réservés.

Raisonnement:

Les mots en majuscules sont considérés comme une unité plutôt que comme une série de syllabes ou de lettres. L’œil est attiré par eux et ils agissent pour annoncer une déclaration ou une clause. C’est pourquoi les titres et les panneaux d’avertissement fonctionnent.

Les typographes utilisent le terme bouma pour la forme d’un mot. Le terme apparaît dans le livre de Paul Saenger (1975). Imaginez chaque lettre sur une carte rectangular qui lui correspond, de sorte que vous voyez les ascendeurs, les descendeurs et les lettres de base comme différents «blocs de Lego» qui sont assemblés pour former un mot.

Le bouma d’un mot en majuscule est toujours un rectangle simple et dense, et il est facile de choisir un champ de mots minuscules.

Ce que je trouve convaincant, c’est que c’est le seul livre sur l’heuristique SQL, écrit par un auteur bien connu de travaux SQL. Alors, est-ce la vérité absolue? Qui sait. Cela semble assez raisonnable et je peux au moins signaler la règle à un membre de l’équipe et leur dire de la suivre (et s’ils veulent blâmer quelqu’un, je leur donne l’adresse électronique de Celko 🙂

La plupart du temps c’est la tradition. Nous aimons garder les mots-clés et nos noms d’espaces de noms séparés pour des raisons de lisibilité, et puisque dans beaucoup de SGBD, les noms de tables et de colonnes sont sensibles à la casse, nous ne pouvons pas les mettre en majuscule.

Le code a une ponctuation qui manque aux instructions SQL. Il y a des points et des parenthèses et des points-virgules pour vous aider à garder les choses séparées. Le code a aussi des lignes. Bien que vous puissiez écrire une instruction SQL sur plusieurs lignes physiques, il s’agit d’une seule instruction, d’une seule “ligne de code”.

Si je devais écrire du texte en anglais sans aucune ponctuation normale, il serait peut-être plus facile si je mettais en majuscule le début des nouvelles clauses. Ainsi, il serait plus facile de déterminer où se terminait et la suivante. difficile à lire PAS cet id suggère son facile à lire maintenant, mais au moins vous pouvez le suivre je pense

Je préfère les mots-clés en minuscules. La couleur de Management Studio code les mots-clés, il n’y a donc aucun problème à les distinguer des identificateurs.

Et les mots-clés majuscules se sentent si bien … BASIC …;)

– “BASIC, COBOL et FORTRAN ont appelé à partir des années 80, ils voulaient que leurs mots clés UPPERCASE reviennent.” 😉

J’aime utiliser les majuscules sur les mots-clés SQL. Je pense que mon esprit les saute car ils sont vraiment bloqués et se concentre sur ce qui est important. Les mots bloqués divisent les bits importants lorsque vous mettez en page comme ceci:

 SELECT s.name, m.eyes, m.foo FROM muppets m, muppet_shows ms, shows s WHERE m.name = 'Gonzo' AND m.muppetId = ms.muppetId AND ms.showId = s.showId 

(Le manque de jointures ANSI est un problème pour une autre question.)

Il y a une étude de psychologie qui montre que les minuscules sont plus rapides à lire que les majuscules car les contours des mots sont plus distinctifs. Cependant, cet effet peut disparaître avec beaucoup de pratique à lire en majuscules.

Pire encore, comme la majorité des développeurs de mon bureau croient aux majuscules pour les mots-clés SQL, j’ai donc dû passer à la majuscule. Règles majoritaires

Je crois que les minuscules sont plus faciles à lire et que les mots-clés SQL sont de toute façon mis en évidence en bleu.

Dans les jours de gloire, les mots-clés étaient dans les captifs parce que nous développions sur des écrans verts!

La question est la suivante: si nous n’écrivons pas les mots-clés c # en majuscules, pourquoi dois-je écrire des mots-clés SQL en majuscules?

Comme quelqu’un d’autre l’a dit – les capitales font des cris!

C’est juste une question de lisibilité. Vous aide à distinguer rapidement les mots-clés SQL.

Btw, cette question a déjà été répondue: la syntaxe SQL est-elle sensible à la casse?

Je préfère utiliser les majuscules pour les mots-clés en SQL.

Oui, les minuscules sont plus lisibles, mais pour moi, prendre une seconde de plus pour parcourir la requête vous fera du bien la plupart du temps. Une fois que cela est fait et testé, vous ne devriez plus jamais le revoir (DAL, proc stocké ou tout ce qui peut le cacher).

Si vous le lisez pour la première fois, la majuscule WHERE AND JOIN vous saute aux yeux, comme il se doit.

C’est juste une question de lisibilité. L’utilisation de UPPERCASE pour les mots-clés SQL facilite la compréhension du script.

Dans les années 80, je capitalisais les noms de bases de données et je laissais les mots-clés sql en minuscules. La plupart des auteurs ont fait le contraire, en capitalisant les mots-clés SQL. Finalement, j’ai commencé à suivre la foule.

En passant, je mentionnerai que, dans la plupart des fragments de code publiés en C, C ++ ou Java, les mots-clés du langage sont toujours en minuscule et que certains mots-clés ne reconnaissent même pas les mots-clés en majuscules. Je ne vois pas de raison valable d’utiliser la convention inverse de SQL que vous utilisez dans le langage de programmation, même lorsque le code SQL est intégré au code source.

Et je ne défends pas l’utilisation de tous les majuscules pour les noms de bases de données. Cela ressemble en fait à “crier”. Et il existe de meilleures conventions, comme l’utilisation de quelques lettres majuscules dans les noms de bases de données. (Par «noms de firebase database», j’entends les noms de schémas, les objects de schéma comme les tables et peut-être quelques autres choses.) Ce n’est pas parce que je l’ai fait dans les années 80 que je dois le défendre aujourd’hui.

Enfin, “De gustibus non disputandum est”.

Certains développeurs SQL aiment à le présenter comme ceci:

 SELECT s.name, m.eyes, m.foo FROM muppets m, muppet_shows ms, shows s WHERE m.name = 'Gonzo' AND m.muppetId = ms.muppetId AND ms.showId = s.showId 

Ils prétendent que cela est plus facile à lire, contrairement à l’approche à un champ par ligne que j’utilise moi-même.

À propos de rien peut-être, mais je préfère composer SQL mots-clés SQL en petites capitales . De cette façon, ils ont l’air capitalisés pour la plupart des lecteurs, mais ils ne sont pas les mêmes que ceux du style ALL CAPS.

Un autre avantage est que je peux laisser le code tel quel et l’imprimer dans le style traditionnel. (J’utilise le package de listings dans LaTeX pour le code d’impression.)

Je capitaliser SQL pour le rendre plus “contrasté” au langage hôte (principalement C # ces jours-ci).

C’est juste une question de préférence et / ou de tradition vraiment …