Quali buoni motivi ci sono per capitalizzare le parole chiave SQL?


28

Sembra che ci siano molti sviluppatori che scrivono il loro SQL capitalizzando le parole chiave:

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

Mi chiedo perché la gente si attenga a questo approccio? Chiaramente, è una convenzione consolidata da tempo, ma non ho mai incontrato un RDBMS che richiede l'uso di maiuscole.

Personalmente, trovo che KEYWORDS SHOW attiri l'attenzione esattamente sulla parte sbagliata della query, motivo per cui scrivo le parole chiave in minuscolo.

Tuttavia, abbastanza persone usano questa convenzione da pensare che potrei perdere qualcosa, quindi questa domanda.


3
È bello avere più parole chiave, anche se il tuo IDE rende il testo delle parole chiave un colore diverso.
The Muffin Man,

3
L'unico modo per far fronte ad avere una lingua in una lingua è quello SHOUTdei comandi dell'interprete SQL ...
Ben DeMott

Anche la mia domanda. +1
Saeed Neamati

Capisco le parole chiave in maiuscolo di SQL. La maggior parte delle dichiarazioni e query delle tabelle che vedo capitalizzano TUTTO, inclusi i nomi delle tabelle e le colonne.
MPelletier,

Risposte:


22

Le maiuscole le fanno risaltare, al contrario degli altri caratteri che si trovano nella finestra della query.

Il motivo per cui non lo faccio perché è un enorme perditempo. Puoi fare una delle due cose:

1) Tenere premuto il tasto MAIUSC mentre si digita la parola : troppo incline agli errori e solo a casaccio.

2) Metti il ​​blocco maiuscole per tutta la durata della parola : un po 'troppo tempo di consumo.

Uso SQL Server e l'ambiente (SSMS) ha una grande evidenziazione della sintassi, quindi non credo personalmente che la capitalizzazione delle parole chiave sia prevalente in questi giorni come lo era una volta (se non del tutto).

È buona pratica nei libri e nei tutorial online, quindi è evidente quali siano le parole chiave riservate. È solo una di quelle cose non scritte.


20
@dave ma a differenza del codice dell'applicazione, è molto probabile che gli script SQL vengano visualizzati in un editor senza evidenziazione della sintassi.
Aaronaught,

8
@dave: gli script SQL sono completamente autonomi e quasi invariabilmente vengono inviati per e-mail, digitati in textareas, stampati per auditor o inseriti in utility da riga di comando come SQL * Plus. Non si tratta del tuo ambiente, riguarda la durata degli script SQL al di fuori di quell'ambiente - qualcosa che non riguarda realmente il codice sorgente dell'applicazione perché non ha un reale utilizzo al di fuori di un compilatore / IDE.
Aaronaught,

6
Le istruzioni SQL vengono spesso visualizzate nei file di registro, nei messaggi di errore, nei documenti XML e in tutti i tipi di luoghi in cui l'evidenziazione della sintassi non è un'opzione, quindi qualsiasi formattazione che faciliti la lettura è sempre benvenuta.
James Anderson,

8
-1 se tenere premuto MAIUSC o premere BLOC MAIUSC è troppo, penso che ci siano altri problemi. Ed esattamente quanto i 0,25 secondi che hai salvato hanno effetto su qualcosa?
TheLQ

2
La mia risposta alla tua domanda è un'altra domanda: scrivi codice SQL ogni giorno? E moltiplica 0,25 secondi per la quantità di codice che scrive uno sviluppatore / dba di SQL ...

8

Trovo che questo tipo di maiuscole offra un modo rapido e semplice per suddividere visivamente le diverse parti della query. Questo combinato con un buon rientro può aiutare la leggibilità e la comprensione della logica.

Se questo ha qualcosa a che fare con lo standard, non lo so. Ma questa è la mia esperienza personale.


7

Già ai vecchi tempi, le parole chiave non erano evidenziate in alcun modo quando si scriveva il codice, quindi si trattava di un tentativo di aiutare le persone a differenziare tra le parti SQL e le parti degli oggetti del database delle query, avrebbe potuto andare nell'altro modo ma gli oggetti tendono ad avere nomi più lunghi che li rendono più difficili da capitalizzare e alcune convenzioni di denominazione degli oggetti erano specifiche del caso.

Personalmente lo trovo altrettanto facile da leggere se non sono in maiuscolo ma molte persone sono così abituate a leggerli in quel modo, li butta via se non capitalizzi.


4
Sono stato di recente esposto a persone che effettivamente fanno invertire la convenzione, capitalizzando i nomi degli oggetti e lasciando le parole chiave in minuscolo; è stonante, per non dire altro.
Aaronaught,

6

SQL è un linguaggio orientato alla clausola, molto più di ogni altra cosa che abbia mai provato. Hai la tua clausola SELECT, la tua clausola FROM, le tue clausole JOIN e la tua clausola WHERE. ORDINA PER, GRUPPO PER, ecc. Ecc.

La capitalizzazione di tali parole chiave consente di separare visivamente le clausole separate. Ciò è particolarmente utile quando ti trovi in ​​una di quelle difficili situazioni di debug in cui stai emettendo il tuo SQL in un commento HTML, quindi copia e incolla in una console. Brutto, ma siamo stati tutti lì. È utile avere un po 'di aiuto per vedere dove inizia ogni parte della dichiarazione.


2

Personalmente, trovo che KEYWORDS SHOW attiri l'attenzione esattamente sulla parte sbagliata della query, motivo per cui scrivo le parole chiave in minuscolo.

Come è stato sottolineato, con i vecchi IDE non c'erano molte opzioni oltre al case per differenziare il testo. Come fai notare, mettere in risalto le parole chiave distoglie l'attenzione da dove dovrebbe essere. Il problema è che sai che le parole chiave possono sempre essere in maiuscolo, mentre le altre cose possono contenere valori letterali e identificativi che fanno distinzione tra maiuscole e minuscole. Ciò ha portato al fatto che il percorso di minor resistenza è quello di capitalizzare solo le parole chiave.


-1

Nel mio caso, preferisco capitalizzare le parole chiave, indipendentemente dall'evidenziazione della sintassi. Immagina di non avere un editor SQL appropriato e di dover scrivere / modificare o aprire gli script in Blocco note o WordPad. Questi editor non hanno un'evidenziazione della sintassi.

Non prendo molta attenzione all'evidenziazione della sintassi di SQL Server per lo stesso motivo che ho descritto sopra, ma è utile (mi annoio vedere tutto il codice in nero). Ho sempre usato le maiuscole per distinguere le parole chiave dalle mie variabili, costanti, nomi, ecc.


Questo avrebbe dovuto essere un commento, ma non hai la reputazione di postarne uno ...
Adam Zuckerman

Ho trattato questo nella domanda originale: l'uso di MAIUSCOLO per le parole chiave attira l'attenzione dei lettori sulla parte meno importante della query o dell'istruzione.
Bevan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.