Formatta mentre scrivi — non c'è nulla da premere. La tua query resta in questa pagina, dentro stringhe e commenti non si guarda mai, e gli identificatori mantengono esattamente le maiuscole che hai scritto.
Formattare SQL
L'SQL arriva come un'unica riga enorme. Dal log di un ORM, da una segnalazione di bug, dagli appunti di qualcuno. Funziona benissimo ed è impossibile da leggere, e il pezzo che cerchi sta da qualche parte in mezzo.
Incollalo e torna impaginato: una clausola per riga, le colonne indentate sotto SELECT, le join e le loro condizioni ON allineate, così la forma della query si vede a colpo d'occhio.
Come si usa
- Incolla il tuo SQL nel riquadro a sinistra — la versione formattata e colorata compare a destra mentre scrivi
- Regola l'indentazione, le maiuscole delle parole chiave e la posizione delle virgole se vuoi: il risultato si aggiorna subito
- Copialo, oppure scaricalo come file .sql
- Passa a Minifica per rimetterlo su una riga; quella modalità resta mentre continui a scrivere
Non c'è un pulsante da premere per formattare. Gli unici due pulsanti che cambiano il risultato
sono Formatta e Minifica, e scelgono quale dei due stai guardando.
Il colore nasce dalla stessa lettura della query
L'output viene colorato ripassando sul testo finito lo stesso tokenizzatore che l'ha
impaginato: parole chiave in ciano, stringhe in giallo, numeri in arancione, commenti in
grigio, punteggiatura in rosa, e i tuoi nomi di tabelle e colonne lasciati semplici, così da
staccarsi dall'SQL intorno.
Conta per più dell'aspetto. Poiché un'unica lettura della query produce sia l'impaginazione sia
il colore, i due non possono mai contraddirsi: ciò che è dipinto come stringa è esattamente ciò
che il formattatore ha trattato come stringa. Se da qualche parte un apice non è chiuso, il
colore prosegue e ti mostra dove — di solito più in fretta di quanto lo troveresti a occhio.
Copia e Scarica consegnano il testo semplice, mai il markup colorato.
Due cose su cui sta attento
La maggior parte dei formattatori SQL veloci lavora con espressioni regolari, e questi due punti sono proprio dove quell'approccio si sfascia.
- Dentro stringhe e commenti non si guarda mai. Una query che contiene WHERE note = 'from a, b' ha una parola chiave, una virgola e uno spazio dentro una stringa letterale. Un formattatore a regex spezza lì la riga e cambia ciò che la query fa. Questo legge prima la query in token, così l'interno di un letterale esce esattamente com'era entrato — spaziatura compresa
- Gli identificatori mantengono le maiuscole che hai scritto. Solo le parole chiave vengono rese maiuscole o minuscole. Su un server che distingue maiuscole e minuscole userId e userid sono colonne diverse, e un formattatore che le «mette in ordine» ha rotto la query per farla sembrare più pulita
Tutti gli stili di quoting sono compresi: 'stringhe' con escape '', "identificatori tra virgolette", backtick MySQL, [parentesi quadre] SQL Server e $$ dollar quoting $$ PostgreSQL.
Le opzioni
- Indenta con — 4 spazi, 2 spazi o una tabulazione
- Parole chiave — MAIUSCOLO, minuscolo, o esattamente come le hai scritte
- Virgole — a fine riga, oppure in testa a inizio riga, se è lo stile della tua squadra
Minifica
Minifica riporta la query su una riga sola. Uno spazio resta solo dove toglierlo cambierebbe il significato o creerebbe un nuovo token, quindi il risultato è il più corto possibile in sicurezza.
I commenti di riga vengono eliminati, perché -- come questo inghiottirebbe il resto della riga una volta che tutto sta su una riga. I commenti a blocco restano, esattamente come sono scritti.
A cosa serve
- Rendere leggibile una query uscita da un log di ORM
- Ripulire l'SQL prima di metterlo in una pull request o in una migrazione
- Capire una query lunga scritta da qualcun altro
- Tirare fuori una query da una segnalazione di bug in una forma su cui lavorare
- Far stare una query su una riga per un file di configurazione o un comando di shell
- Uniformare lo stile di una cartella di file .sql prima di committarli
Buono a sapersi
- La tua query resta in questa pagina — non viene inviata da nessuna parte. Comodo quando contiene nomi veri di tabelle e colonne
- Questo impagina l'SQL; non verifica che sia valido. Una query con un errore di sintassi viene formattata al meglio possibile, non rifiutata
- Il quoting specifico dei dialetti è supportato, ma non viene riscritto da un dialetto all'altro
- Le query molto grandi non sono un problema — è un lavoro semplice sulla tua macchina
- Funziona in ogni browser, anche su telefono
Strumenti correlati
- Formattatore JSON — lo stesso lavoro per il JSON
- Da CSV a JSON — convertire i dati restituiti dalla query
- Trova e sostituisci in molti file — cambiare un nome di tabella in un'intera cartella di .sql
- Confronto tra testi — confrontare due versioni di una query
- Tester di regex — costruire il modello prima di cercarci