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.
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
| Opzione | Valori | Effetto |
|---|---|---|
| Dialetto | MySQL, PostgreSQL, T-SQL, SQLite, BigQuery, Spark | Regola le parole riservate e le convenzioni di quoting per il database di destinazione |
| Parole Chiave | MAIUSCOLO / minuscolo / Preserva | Controlla se le parole chiave SQL come SELECT, FROM, WHERE sono in maiuscolo, minuscolo o lasciate come sono |
| Indentazione | 2 spazi / 4 spazi / Tabulazione | Unità utilizzata per indentare clausole annidate e sotto-espressioni |
| Formatta automaticamente | On / Off | Quando 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
| Dialetto | Database | Differenze chiave |
|---|---|---|
| MySQL | MySQL, MariaDB | Identificatori con backtick, LIMIT … OFFSET, ON DUPLICATE KEY |
| PostgreSQL | PostgreSQL, CockroachDB | Identificatori con doppi apici, RETURNING, operatore cast :: |
| T-SQL | SQL Server, Azure SQL | Identificatori con parentesi quadre, TOP, hint NOLOCK |
| SQLite | SQLite | Sistema di tipi minimale, UPSERT, nessuno schema |
| BigQuery | Google BigQuery | Identificatori con backtick, STRUCT, ARRAY, UNNEST |
| Spark SQL | Apache Spark, Databricks | Compatibile con Hive, LATERAL VIEW, estensioni Delta |
Domande Frequenti
`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.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.#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.