Menu

Formattatore SQL

Formatta le query SQL con un'indentazione che rispetta la sintassi.

Di Nethanel Bar, Co-founder & CEO

Ultimo aggiornamento

Vuoi imparare a programmare sul serio?

Coddy ti insegna facendoti scrivere codice vero nel browser: lezioni interattive, feedback immediato e aiuto dall'AI quando ti blocchi.

Cos'è un SQL formatter?

Un SQL formatter prende codice SQL compatto, scritto su una sola riga o generato automaticamente, e lo riscrive con indentazione e ritorni a capo coerenti. Sviluppatori e analisti lo usano per rivedere i join, fare debug dei filtri, ripulire l'output di un ORM, condividere query in ticket o documentazione e analizzare i piani di esecuzione.

La formattazione non cambia cosa *fa* una query: cambia quanto è facile leggerla per una persona. Con un layout coerente, il rapporto tra SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING e ORDER BY diventa molto più semplice da esaminare, soprattutto nelle query che mescolano subquery e CTE.

SQL ha molti *dialetti*: PostgreSQL, MySQL, SQLite, T-SQL (Microsoft SQL Server), Oracle e BigQuery estendono tutti lo standard con una sintassi propria. Un buon formatter capisce il dialetto che scegli, così non rompe la sintassi specifica del database.

Cosa impari mentre formatti SQL

  • Le clausole SQL hanno ruoli precisi: SELECT sceglie le colonne, FROM sceglie le tabelle, WHERE filtra le righe, GROUP BY aggrega e ORDER BY ordina.
  • Un'indentazione leggibile mette in evidenza query annidate, join e condizioni che in una query su una sola riga resterebbero invisibili.
  • Il dialetto conta: RETURNING, LIMIT, TOP e gli identificatori tra parentesi quadre ([col] o "col") non sono portabili tra database.
  • Con un buon formatter i commenti sopravvivono alla formattazione, così puoi spiegare *perché* esiste un filtro proprio accanto al filtro.

Come formattare una query SQL passo per passo

  1. Incolla la query

    Inserisci il tuo SQL nella casella di input. Funziona con SQL su una sola riga, generato da un ORM o formattato solo in parte.

  2. Scegli il dialetto

    Seleziona PostgreSQL, MySQL, SQLite o T-SQL, così il formatter rispetta le parole chiave specifiche come LIMIT, TOP o RETURNING.

  3. Imposta lo stile

    Scegli maiuscole o minuscole per le parole chiave (il maiuscolo è lo standard) e l'ampiezza dell'indentazione (2 o 4 spazi). La maggior parte dei team usa parole chiave in maiuscolo e indentazione a 2 spazi.

  4. Leggi l'output formattato

    Ogni clausola sta su una riga propria, i join sono allineati e le subquery indentate. I commenti vengono mantenuti.

  5. Copialo nel tuo progetto

    Incolla la query formattata nella tua migrazione, in una raw query dell'ORM o nel tuo strumento di BI. Tutto resta nel tuo browser.

Riferimento rapido delle clausole SQL

Le clausole che vedrai nel 95% delle query SELECT, nell'ordine in cui vengono elaborate a livello concettuale. Documentazione ufficiale: PostgreSQL SELECT, MySQL SELECT.

ClausolaA cosa serveEsempio
SELECTScegliere quali colonne o espressioni restituireSELECT id, name
FROMScegliere la tabella (o le tabelle) di origineFROM users
JOIN ... ONCombinare righe di un'altra tabellaJOIN orders ON orders.user_id = users.id
WHEREFiltrare le righe prima del raggruppamentoWHERE active = true
GROUP BYAggregare le righe che condividono valoriGROUP BY country
HAVINGFiltrare i gruppi aggregatiHAVING COUNT(*) > 10
ORDER BYOrdinare il risultatoORDER BY created_at DESC
LIMIT / OFFSETPaginare il risultatoLIMIT 20 OFFSET 40
WITH ... ASCommon Table Expression (CTE): dare un nome a una subqueryWITH active AS (...)

Esempi SQL da provare

Formattare una query semplice

Input
select id,name from users where active=true order by created_at desc limit 10
Formattato
SELECT  id,  nameFROM usersWHERE active = trueORDER BY created_at DESCLIMIT 10;

Ora ogni clausola sta sulla sua riga e l'elenco delle colonne è indentato. Rivedere questa query in una code review è diventato 10 volte più facile.

Analizzare un join

Input
select u.name,o.total from users u join orders o on o.user_id=u.id where o.total>100
Formattato
SELECT  u.name,  o.totalFROM users uJOIN orders o ON o.user_id = u.idWHERE o.total > 100;

Gli alias di tabella (users u, orders o) tengono corto l'elenco delle colonne. La riga JOIN ... ON rende esplicito il rapporto tra le tabelle.

Leggere una subquery annidata

Input
select * from users where id in (select user_id from enrollments where course_id=5)
Formattato
SELECT *FROM usersWHERE id IN (  SELECT user_id  FROM enrollments  WHERE course_id = 5);

Indentare la query interna mostra chiaramente la dipendenza. Molte subquery si possono riscrivere come JOIN o CTE una volta che la struttura è visibile.

Rendere leggibile l'output minificato di un ORM

Input
SELECT "posts"."id", "posts"."title", "users"."name" FROM "posts" INNER JOIN "users" ON "users"."id" = "posts"."author_id" WHERE "posts"."published" = true AND "posts"."created_at" > '2026-01-01' ORDER BY "posts"."created_at" DESC LIMIT 25
Abbellito
SELECT  "posts"."id",  "posts"."title",  "users"."name"FROM "posts"INNER JOIN "users" ON "users"."id" = "posts"."author_id"WHERE "posts"."published" = true  AND "posts"."created_at" > '2026-01-01'ORDER BY "posts"."created_at" DESCLIMIT 25;

ORM come Prisma, Django e ActiveRecord registrano l'SQL nei log come un'unica lunga riga. Il beautifier la divide in clausole e indenta le condizioni WHERE concatenate, così puoi davvero leggere cosa fa la query prima di incollarla in un ticket.

Errori comuni nella formattazione SQL

  • Dare per scontato che un SQL formattato sia un SQL *corretto*. La formattazione cambia il layout, non la semantica: una query dall'aspetto pulito può comunque dare il risultato sbagliato.
  • Modificare una query mentre la formatti e dimenticare di testare di nuovo il risultato.
  • Ignorare il dialetto: LIMIT 10 in PostgreSQL, TOP 10 in T-SQL e FETCH FIRST 10 ROWS ONLY in SQL standard fanno tutti la stessa cosa.
  • Mescolare maiuscole e minuscole nelle parole chiave (Select, SELECT, select) nello stesso progetto. Scegli uno stile e resta coerente: la maggior parte dei team usa parole chiave in maiuscolo.

Domande frequenti sul SQL formatter

Formattare SQL cambia il risultato della query?
No. La formattazione cambia solo spazi bianchi e maiuscole. Il database interpreta entrambe le versioni con lo stesso piano di esecuzione, quindi le righe restituite sono identiche.
Perché formattare SQL?
Un SQL leggibile è più facile da correggere, rivedere, insegnare e mantenere, soprattutto quando la query ha più join, subquery, CTE o funzioni finestra.
Cos'è un dialetto SQL?
Un dialetto SQL è un'estensione dello SQL standard specifica di un database. PostgreSQL, MySQL, SQLite, T-SQL (SQL Server), Oracle e BigQuery hanno ciascuno una sintassi propria che va oltre lo standard.
Un SQL formatter può correggere query rotte?
Un formatter può far emergere problemi di sintassi riscrivendo la query in forma strutturata, ma non conosce il tuo schema e non può garantire che la query sia logicamente corretta.
Devo scrivere le parole chiave SQL in maiuscolo?
La maggior parte delle guide di stile consiglia parole chiave in maiuscolo (SELECT, FROM, WHERE) e identificatori in minuscolo, perché il contrasto visivo fa risaltare la struttura della query. Scegli uno stile e resta coerente.
Che differenza c'è tra SQL formatter e SQL beautifier?
Sono due nomi per la stessa cosa. "Beautify" e "format" significano entrambi riscrivere una query con indentazione, ritorni a capo e maiuscole coerenti, così è più facile da leggere. Che tu cerchi un SQL beautifier, un SQL pretty printer o un SQL formatter, questo strumento fa il lavoro: incolla la query, scegli il dialetto e copia la versione pulita.
Come formatto una query SQL online gratis?
Incolla la query nella casella di input, scegli il dialetto (PostgreSQL, MySQL, SQLite o T-SQL) e il formatter la reindenta all'istante con ogni clausola su una riga propria. È completamente gratis e senza registrazione, e tutto gira nel tuo browser: il tuo SQL non viene mai caricato, quindi è sicuro anche per query proprietarie o di produzione.

Scopri di più

Altri strumenti per sviluppatori

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA