web-dev-qa-db-fra.com

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

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

Question simple. Personnellement, je trouve qu'une chaîne de caractères minuscules est plus lisible qu'une chaîne de caractères majuscules. Est-ce une certaine saveur ancienne/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

vs.

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.

103
Samantha Branham

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

108
Trent

Je suis d'accord avec vous - pour moi, les majuscules sont juste des cris.

Je laisse mon IDE gérer la mise en évidence des mots clés, via la coloration syntaxique.

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

Modifier pour clarifier davantage mon raisonnement:

Souhaitez-vous mettre en majuscule vos mots-clés dans une 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 est assez clair d'après les votes quel style est le plus populaire, mais je pense que nous sommes tous d'accord pour dire que c'est juste une préférence personnelle.

165
Blorgbeard

Je vais ajouter une chose à laquelle je n'ai encore vu personne:

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

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

Dans ce cas, la coloration de la syntaxe ne fonctionnera probablement pas, donc la majuscule pourrait aider à la lisibilité.

58
User

Extrait du "SQL Programming Style" de Joe Celko (ISBN 978-0120887972):

Règle:

Majuscules les mots réservés.

Raisonnement:

Les mots en majuscules sont considérés comme une unité, plutôt que d'être lus 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 rectangulaire qui lui correspond, de sorte que vous voyez les ascendants, les descendants et les lettres de base comme différents "blocs 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 dans un champ de mots en minuscule.

Ce que je trouve convaincant, c'est que c'est le seul livre sur l'heuristique SQL, écrit par un auteur bien connu des travaux SQL. Est-ce donc 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 lui dire de la suivre (et s'ils veulent blâmer quelqu'un, je leur donne l'adresse e-mail de Celko :)

42
onedaywhen

C'est surtout la tradition. Nous aimons garder les mots clés et les noms de nos espaces de noms séparés pour plus de lisibilité, et comme dans de nombreux SGBD, les noms de table et de colonne sont sensibles à la casse, nous ne pouvons pas les mettre en majuscules, donc nous majuscules les mots clés.

20
Paul Tomblin

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 également des lignes. Malgré le fait que vous pouvez é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 la ponctuation normale, cela pourrait être plus facile si je mettais en majuscule le début de nouvelles clauses de cette façon, il serait plus facile de dire où l'une se terminait et la suivante commençait AUTREMENT un bloc de texte aussi long serait probablement très difficile à lire PAS que id suggère son facile à lire maintenant MAIS au moins vous pouvez le suivre je pense

17
Instance Hunter

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

Et les mots clés en majuscules se sentent si ... bien ... BASIC ...;)

- "BASIC, COBOL et FORTRAN ont appelé des années 80, ils voulaient récupérer leurs MOTS CLÉS MAJUSCULES." ;)

13
Guffa

J'aime utiliser les majuscules sur les mots clés SQL. Je pense que mon esprit les saute car ils sont vraiment polyédriques et se concentre sur ce qui est important. Les mots en blocs divisent les bits importants lorsque vous disposez 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

(L'absence de jointures ANSI est un problème pour une autre question.)

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

5
WW.

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 en majuscules. Règles de majorité.

Je crois que les minuscules sont plus faciles à lire et cela étant donné que les mots clés SQL sont surlignés en bleu de toute façon.

Aux jours de gloire, les mots-clés étaient dans les sous-titres car nous développions sur des écrans verts!

La question est: si nous n'écrivons pas de mots clés c # en majuscules, alors pourquoi dois-je écrire des mots clés sql en majuscules?

Comme quelqu'un d'autre l'a dit - les capitales CRIENT!

3
Steve

Dans les années 80, j'avais l'habitude de capitaliser les noms de bases de données et de laisser 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 extraits de code publiés en C, C++ ou Java les mots-clés du langage sont toujours en minuscules et les mots-clés en majuscules peuvent même ne pas être reconnus comme comme par certains analyseurs. Je ne vois pas de bonne raison d'utiliser la convention inverse dans SQL que vous utilisez dans le langage de programmation, même lorsque le SQL est incorporé dans le code source.

Et je ne défends pas l'utilisation de toutes les majuscules pour les noms de base de données. Cela ressemble en fait un peu à des "cris". Et il existe de meilleures conventions, comme l'utilisation de quelques lettres majuscules dans les noms de base de données. (Par "noms de base de données", je veux dire les noms des schémas, des objets de schéma comme des 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".

3
Walter Mitty

C'est juste une question de lisibilité. L'utilisation de UPPERCASE pour les mots-clés SQL permet de rendre le script plus compréhensible.

2
user59634

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?

2
rogeriopvl

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

Oui, les minuscules sont plus lisibles, mais pour moi, avoir à prendre une seconde supplémentaire pour parcourir la requête vous fera du bien la plupart du temps. Une fois qu'il est fait et testé, vous ne devriez de toute façon plus jamais le revoir (DAL, proc stocké ou quoi que ce soit qui vous le cachera).

Si vous le lisez pour la première fois, les lettres majuscules WHERE AND JOIN sauteront directement sur vous, comme il se doit.

2
jfrobishow

Certains développeurs SQL aiment ici 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 c'est plus facile à lire contrairement à votre approche d'un champ par ligne que j'utilise moi-même.

1
Steve

Je capitalise SQL pour le rendre plus "contrasté" avec le langage hôte (principalement C # de nos jours).

C'est juste une question de préférence et/ou de tradition vraiment ...

0
Branko Dimitrijevic

Apropos de rien peut-être, mais je préfère composer SQL mots-clés en petites majuscules . De cette façon, ils semblent capitalisés pour la plupart des lecteurs, mais ils ne sont pas les mêmes que le style laid 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 listings dans LaTeX pour le code de jolie impression.)

0
Jon Ericson