Salta al contenuto principale
Strumenti Database

SQL Formatter

Abbellisci, formatta e minimizza istantaneamente le query SQL nel tuo browser. Supporta MySQL, PostgreSQL, SQL Server, SQLite e altro - zero dati inviati a qualsiasi server.

Esempi:
Input SQL
Output Formattato
- righe - token - caratteri

Cos'è la Formattazione SQL?

La formattazione SQL è il processo di ristrutturazione di una query SQL in un layout coerente e leggibile - aggiungendo indentazione, interruzioni di riga e maiuscole/minuscole coerenti per le parole chiave. L'SQL grezzo scritto in fretta, generato da ORM o minimizzato per il trasporto è spesso una singola riga illeggibile. Un formattatore lo rende leggibile dall'uomo senza cambiare il modo in cui il database lo esegue.

Questo strumento utilizza la libreria open-source sql-formatter che funziona interamente nel tuo browser. Nessuna query viene mai trasmessa a un server - la formattazione avviene localmente in meno di un millisecondo.

Perché Formattare il Tuo SQL?

Leggibilità

SQL strutturato con indentazione coerente consente agli sviluppatori di scansionare una query a colpo d'occhio. Join, subquery e CTE diventano immediatamente evidenti. Le revisioni del codice sono più veloci, i bug sono più facili da individuare.

Coerenza tra i team

Quando tutti eseguono le query attraverso un formattatore con impostazioni condivise (dialetto, dimensione indentazione, maiuscole/minuscole parole chiave), i diff nel controllo versione riflettono i cambiamenti effettivi della logica - non il rumore degli spazi bianchi.

Debugging

Una query formattata rende facile isolare quale clausola si sta comportando male. L'SQL minimizzato, d'altra parte, ti costringe a analizzare mentalmente la struttura delle righe prima ancora di poter pensare alla logica.

Opzioni di Formattazione Spiegate

OpzioneValoriEffetto
DialettoMySQL, PostgreSQL, T-SQL, SQLite, BigQuery, SparkRegola le parole riservate e le convenzioni di quoting per il database di destinazione
Parole ChiaveMAIUSCOLO / minuscolo / PreservaControlla se le parole chiave SQL come SELECT, FROM, WHERE sono in maiuscolo, minuscolo o lasciate come sono
Indentazione2 spazi / 4 spazi / TabulazioneUnità utilizzata per indentare clausole annidate e sotto-espressioni
Formatta automaticamenteOn / OffQuando abilitato, il formattatore viene eseguito automaticamente mentre scrivi (debounced 320 ms)

Esempio Prima e Dopo

Prima (grezzo)

select u.id,u.name,count(o.id) as order_count,sum(o.total) as lifetime_value from users u left join orders o on u.id=o.user_id where u.created_at>='2024-01-01' group by u.id,u.name having count(o.id)>0 order by lifetime_value desc limit 100

Dopo (formattato, dialetto MySQL)

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS order_count,
  SUM(o.total) AS lifetime_value
FROM
  users u
  LEFT JOIN orders o ON u.id = o.user_id
WHERE
  u.created_at >= '2024-01-01'
GROUP BY
  u.id,
  u.name
HAVING
  COUNT(o.id) > 0
ORDER BY
  lifetime_value DESC
LIMIT
  100

Dialetti SQL Supportati

DialettoDatabaseDifferenze chiave
MySQLMySQL, MariaDBIdentificatori con backtick, LIMIT … OFFSET, ON DUPLICATE KEY
PostgreSQLPostgreSQL, CockroachDBIdentificatori con doppi apici, RETURNING, operatore cast ::
T-SQLSQL Server, Azure SQLIdentificatori con parentesi quadre, TOP, hint NOLOCK
SQLiteSQLiteSistema di tipi minimale, UPSERT, nessuno schema
BigQueryGoogle BigQueryIdentificatori con backtick, STRUCT, ARRAY, UNNEST
Spark SQLApache Spark, DatabricksCompatibile con Hive, LATERAL VIEW, estensioni Delta

Domande Frequenti

Questo strumento invia il mio SQL a un server?
No. Tutto funziona all'interno del tuo browser utilizzando la libreria JavaScript sql-formatter caricata da un CDN. Il tuo SQL non viene mai trasmesso da nessuna parte - la formattazione è istantanea e può funzionare offline una volta che la libreria è in cache.
La formattazione cambia il modo in cui viene eseguita la query?
No. SQL è insensibile agli spazi bianchi. Aggiungere interruzioni di riga, spazi e cambiare la capitalizzazione delle parole chiave (che è anch'essa insensibile al maiuscolo/minuscolo in SQL standard) non altera il piano di esecuzione della query o i risultati in alcun modo. Le versioni formattata e minimizzata sono semanticamente identiche.
Quale dialetto dovrei scegliere?
Scegli il dialetto che corrisponde al database che stai utilizzando. Il dialetto influisce principalmente su come vengono citati gli identificatori (`backtick` per MySQL/BigQuery, "doppi apici" per PostgreSQL, [parentesi quadre] per T-SQL) e su quali parole riservate vengono evidenziate. Per SQL generico o sconosciuto, l'opzione SQL Generico è sicura e ampiamente compatibile.
Cosa fa Minimizza?
Minimizza rimuove i commenti e compatta tutti gli spazi bianchi in spazi singoli, producendo la versione più breve possibile della query. È utile per incorporare SQL in configurazioni di app, analisi dei log o ovunque tu voglia ridurre il numero di byte. Usa Formatta per invertire il processo.
Posso formattare stored procedure e istruzioni DDL?
Sì. Il formattatore gestisce DML (SELECT, INSERT, UPDATE, DELETE), DDL (CREATE TABLE, ALTER TABLE, DROP) e DCL (GRANT, REVOKE). Costrutti complessi come CTE (WITH … AS), window functions e subquery sono tutti formattati correttamente. Corpi di stored procedure molto lunghi con codice procedurale (es. blocchi IF … BEGIN … END in T-SQL) possono avere risultati variabili a seconda del dialetto.
Questo strumento influenzerà altri strumenti sulla piattaforma?
No. Tutto il CSS è limitato all'elemento #sqf-root e tutto il JavaScript viene eseguito all'interno di una funzione auto-invocante (IIFE) senza esposizione di variabili globali. È completamente isolato da qualsiasi altro strumento su questa piattaforma.