Formattatore SQL
Incolla una query SQL e ottienila riformattata con ogni clausola (SELECT, FROM, WHERE, JOIN, GROUP BY…) su una propria riga indentata.
1.121 visualizzazioni
Come Funziona
Una lunga query SQL scritta su una sola riga è difficile da scorrere per coglierne la struttura — dove finisce la clausola WHERE e dove inizia la GROUP BY, quale JOIN appartiene a quale tabella? Questo strumento prende SQL grezzo e lo suddivide su righe separate a ogni confine di clausola principale: SELECT, FROM, WHERE, l'intera famiglia JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN…), GROUP BY, ORDER BY, HAVING e UNION. Le condizioni concatenate con AND/OR, e le condizioni di join dopo ON, vengono indentate di un livello sotto la clausola a cui appartengono, e le parole chiave vengono opzionalmente rese maiuscole per coerenza. Una query come select id,name from users where active=1 and role='admin' order by name diventa un blocco con SELECT, FROM, WHERE e ORDER BY che iniziano ciascuna la propria riga e la condizione AND indentata sotto WHERE — la stessa informazione, semplicemente disposta come verrebbe scritta a mano in una revisione del codice.
Questo conta soprattutto proprio dove è più difficile farlo a mano: query con diverse tabelle unite, una subquery sepolta dentro una clausola WHERE, o un'espressione CASE multi-ramo. Un'indentazione coerente è ciò che permette a chi revisiona di individuare a colpo d'occhio una condizione di join mancante o una parentesi fuori posto, invece di leggere carattere per carattere.
Cosa Dovresti Sapere
Questo è un formattatore, non un validatore — riorganizza soltanto spazi e a-capo attorno a un insieme fisso di parole chiave che riconosce; non analizza mai la query in un albero sintattico e non la esegue mai contro un database. Un validatore davvero consapevole del dialetto avrebbe bisogno di un parser completo per ogni variante SQL, perché MySQL, PostgreSQL, SQL Server e SQLite divergono tutti su dettagli come la quotatura degli identificatori, le funzioni di data e persino quali istruzioni siano legali — un controllo superficiale lato browser che fingesse di validare tutto ciò produrrebbe solo una falsa sicurezza. Se l'output formattato sembra strano, di solito significa che l'input conteneva già un errore di battitura o una parentesi non bilanciata; lo strumento formatta attorno a esso invece di segnalarlo.
Poiché opera esclusivamente sulla disposizione del testo, è sicuro eseguirlo su query di produzione: identificatori, letterali stringa, valori numerici e operatori non vengono mai riscritti, aggiunti o rimossi — cambiano solo gli spazi, più opzionalmente le maiuscole delle parole chiave. Nulla viene inviato da nessuna parte né eseguito; la query non lascia mai il browser.
Domande Frequenti
Mi dice se il mio SQL è corretto?
No — deliberatamente. La vera validazione SQL dipende dal database a cui ti rivolgi (MySQL, PostgreSQL, SQL Server hanno tutte particolarità sintattiche diverse), e uno strumento leggero da browser non può farlo onestamente. Questo riformatta solo la disposizione, senza mai affermare che la tua query sia valida o non valida.
Romperà la mia query?
No — inserisce solo interruzioni di riga e indentazione, e opzionalmente rende maiuscole le parole chiave. Il testo SQL stesso (identificatori, valori, operatori) non viene mai alterato.
Posso usarlo con qualsiasi dialetto SQL (MySQL, PostgreSQL, SQL Server)?
Sì, a livello di disposizione — le parole chiave di clausola che questo formattatore riconosce (SELECT, FROM, WHERE, JOIN, GROUP BY e così via) sono comuni a praticamente ogni dialetto SQL. Ciò che non farà è validare la sintassi, le funzioni o le regole di quotatura specifiche del dialetto; queste differiscono abbastanza tra i motori che solo eseguire la query contro il database reale può confermarne la correttezza.
Cosa succede con le subquery o le CTE?
Le istruzioni SELECT annidate e i blocchi WITH (common table expression) vengono formattati usando le stesse regole di suddivisione delle clausole in modo ricorsivo, così una query interna ottiene la propria struttura indentata dentro quella esterna — esattamente dove la formattazione aiuta di più, poiché le query profondamente annidate sono le più difficili da leggere su un'unica riga.
La formattazione cambia il comportamento della mia query?
No. Vengono toccati solo spazi, a-capo e opzionalmente le maiuscole delle parole chiave. Ogni identificatore, letterale, confronto e operatore resta esattamente come scritto, quindi la query formattata è funzionalmente identica all'originale — produce lo stesso set di risultati in entrambi i casi.
Strumenti Simili
Segnala un Problema
Formattatore SQL
Commenti
Ancora nessun commento — scrivi il primo!