Formatta le query SQL per renderle più leggibili.
I risultati hanno carattere informativo. Verificali con altre fonti.
Calcolato nel tuo browser. Nulla di ciò che inserisci viene inviato.
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.