Formatta le query SQL per renderle più leggibili.
Tutti i calcoli sono eseguiti localmente nel tuo browser. Nessun dato viene inviato al server.
I risultati hanno carattere informativo. Verificali con altre fonti.
Questo formattatore confronta parole chiave, quindi spezzerà una stringa che contiene la parola FROM
Divide la tua query sugli spazi e sulla punteggiatura e inserisce un a capo prima di ciascuna di ventitré parole chiave. Non ha idea di che cosa sia una stringa letterale. Formatta SELECT name FROM t WHERE label = 'order from stock' e il letterale torna come 'order\nfrom stock': un a capo dentro gli apici e una query che ora filtra qualcos'altro.
Come funziona
- Comprime tutte le sequenze di spazi, poi divide la query in token su spazi, parentesi, virgole e punti e virgola.
- Comincia una nuova riga prima di ciascuna delle ventitré parole chiave di clausola, senza distinguere maiuscole e minuscole.
- Segue l'annidamento tramite le parentesi aperte e chiuse e rientra di due spazi per livello.
per ogni token:
se il token è ')' → rientro = max(0; rientro − 1)
se il token è una parola chiave di clausola → emetti a capo + due spazi × rientro
emetti il token invariato
se il token è '(' → rientro = rientro + 1Esempio pratico
Una query il cui testo contiene una parola chiave fra apici.
- input: SELECT name FROM t WHERE label = 'order from stock'
- SELECT, FROM e WHERE aprono ciascuno una nuova riga, come previsto
- anche la parola from dentro gli apici viene riconosciuta, perché gli apici sono invisibili al confronto
- l'output mette un a capo fra 'order e from stock'
- il letterale non è più la stessa stringa di prima
Tre a capo voluti e uno che cambia il significato della query. Tutto ciò che sta fuori dalle stringhe viene formattato correttamente; tutto ciò che sta dentro è a rischio.
Come leggere il risultato
- Controlla ogni query che contenga testo fra apici prima di usare il risultato. I commenti presentano lo stesso pericolo: anche una parola chiave dentro un commento riceve un a capo, e in un commento su una sola riga quell'a capo può spingere il resto del commento su una riga di SQL attiva.
- Il rientro segue soltanto le parentesi, quindi rispecchia la profondità di annidamento e non la struttura delle clausole. Una query lunga e piatta senza parentesi esce del tutto priva di rientri per quante clausole abbia: corretto per questa regola e spesso non ciò che volevi.
- L'elenco delle parole chiave è fisso e generico. La sintassi propria di un dialetto — funzioni finestra, espressioni di tabella comuni, estensioni del fornitore, MERGE — non vi compare e resterà in riga anziché ottenerne una propria.
- Viene aggiunto solo spazio bianco. I token sono emessi esattamente come li hai scritti, quindi il tuo uso delle maiuscole si conserva e nessuna parola chiave viene riscritta: lo strumento cambia l'impaginazione, non il testo.
Domande frequenti
- È sicuro usarlo su query di produzione?
- Formatta prima e leggi l'output prima di usarlo. Lo strumento non riscrive mai i tuoi token, ma può inserire un a capo dentro una stringa fra apici o un commento, e in entrambi i casi l'SQL risultante significa qualcosa di diverso da ciò che hai incollato.
- Perché la mia query annidata non è rientrata?
- Il rientro è guidato solo dalle parentesi. Una sottoquery racchiusa fra parentesi rientra; una sequenza di join e clausole senza parentesi no, perché lo strumento non ha un modello della struttura delle clausole su cui allinearsi.