Vai al contenuto

Strumento per sviluppatori · solo nel browser

Formattatore SQL

Incolla una query, scegli il dialetto del database e trasforma SQL compatto in codice leggibile. Il codice resta in questa scheda del browser.

SQL da formattare

Fino a 100,000 caratteri. SQL viene formattato, mai eseguito.

0 / 100.000

Nulla viene caricato, salvato, collegato a un database o eseguito come query.

SQL formattato

Il codice SQL formattato apparirà qui.

Come formattare SQL con attenzione e leggere il risultato

Questo formattatore è per sviluppatori, analisti, studenti e chiunque riceva una query compatta e desideri una versione più chiara da esaminare. Modifica gli spazi e, se richiesto, maiuscole e minuscole delle parole chiave. Non si collega a database, convalida schemi, ottimizza query o dimostra che siano corrette.

Come usare il formattatore SQL

  1. Incolla una query o un breve script SQL. Scegli il dialetto corrispondente al database che eseguirà il codice. SQL standard è un'alternativa pratica per istruzioni comuni SELECT, INSERT, UPDATE e DELETE, ma non rileva automaticamente il dialetto. Scegli PostgreSQL, MySQL, MariaDB, SQLite, BigQuery, SQL Server o Snowflake quando la query usa funzioni specifiche del sistema.
  2. Scegli due o quattro spazi e decidi se le parole chiave riconosciute debbano diventare maiuscole, minuscole o mantenere la forma originale. Seleziona Formatta SQL o premi Ctrl/Command+Invio. Il risultato appare accanto all'ingresso su schermi larghi e sotto su quelli stretti. Leggi il messaggio, controlla il codice e copia il risultato. Modificare codice o opzioni indica il risultato precedente come non aggiornato finché non formatti di nuovo.

Cosa cambia la formattazione e cosa conserva

Il formattatore divide la query in token, colloca clausole principali come SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY e LIMIT su righe leggibili e rientra le espressioni annidate. La scelta di maiuscole o minuscole riguarda solo parole chiave SQL riconosciute. Identificatori, identificatori tra delimitatori, numeri, operatori, contenuti delle stringhe, commenti di riga e di blocco e segnaposto supportati restano dati, senza riscriverne il significato.

La formattazione non dimostra la correttezza semantica. Gli spazi possono contare nelle stringhe delimitate, nei corpi specifici dei prodotti e nei linguaggi di template. La pagina usa la libreria mantenuta sql-formatter ed espone un insieme limitato e prevedibile di opzioni. Non sostituisce i valori dei parametri. Segnaposto comuni come ?, :name, $1 e @name vengono conservati se supportati dal dialetto. Confronta sempre migrazioni importanti, procedure memorizzate o SQL generato con l'originale prima dell'esecuzione.

Scegli il dialetto prima di attribuire l'errore alla query

I prodotti SQL condividono una base ma differiscono per delimitatori, funzioni, blocchi procedurali, operatori, tipi di dati e sintassi. Stringhe delimitate da dollari in PostgreSQL, percorsi con backtick e QUALIFY in BigQuery, parentesi quadre e TOP in SQL Server, backtick e LIMIT in MySQL e clausole specifiche di Snowflake spiegano perché il dialetto conta. SQL standard supporta un utile sottoinsieme comune; non identifica il database dal testo.

Se la formattazione fallisce, conserva il codice, seleziona il vero dialetto di destinazione e riprova. Se la query contiene template applicativi come {{ column }} o macro personalizzate, sostituiscili temporaneamente con segnaposto accettati dal database oppure formatta il codice circostante in parti più piccole. Non rimuovere alla cieca un marcatore di template: può essere necessario all'applicazione pur non essendo SQL.

Usa il risultato nelle revisioni e negli editor

Copia il risultato formattato in un file provvisorio o in un confronto del controllo versione ed esamina la struttura prima di cambiare la logica. Interruzioni coerenti delle clausole rendono più visibili condizioni di join mancanti, raggruppamenti AND/OR inattesi ed espressioni duplicate, ma il formattatore non cerca questi problemi. Una disposizione chiara aiuta la lettura e non costituisce approvazione alla distribuzione.

Il risultato è testo semplice. Non ci sono account, cronologia, download, link di condivisione, connessioni a database o archiviazione cloud. Conserva l'originale nel controllo versione o in un'altra posizione affidabile. Chiudere o aggiornare la scheda perde il testo. L'elaborazione resta nel browser: la pagina non invia intenzionalmente SQL incollato a un'API di formattazione; l'analisi generale del sito non deve mai includere il codice SQL inserito.

Due esempi concreti di formattazione

Join, stringa, commento e segnaposto nominato

Con PostgreSQL selezionato e parole chiave maiuscole, le clausole diventano visibili mentre stringa, commento e segnaposto :minimum restano invariati.

select u.id,u.name from users u -- active accounts
join orders o on o.user_id=u.id where u.status='active user' and o.total>:minimum order by o.created_at desc;

Segnaposto posizionale e query annidata

Un segnaposto PostgreSQL $1 resta un segnaposto. La SELECT annidata viene rientrata; lo strumento non contatta PostgreSQL e non verifica se la tabella esiste.

select * from events where account_id=$1 and created_at>(select max(created_at) from archive);

Limiti ed errori comuni

  • Il massimo è 100,000 caratteri per evitare che un file generato incollato per errore blocchi indefinitamente la pagina. Suddividi gli script più grandi tra un'istruzione e l'altra.
  • Un campo vuoto viene rifiutato senza cancellarlo. Anche un errore di analisi conserva il testo originale per consentire di cambiare dialetto o sintassi del template.
  • Il formattatore non esegue SQL, ispeziona tabelle, controlla permessi, segnala UPDATE o DELETE rischiosi, ottimizza indici o converte tra dialetti.
  • Commenti e stringhe sono destinati a essere conservati, ma sintassi di prodotto non supportate, codice procedurale o template richiedono comunque un confronto manuale.
  • La copia usa gli appunti del browser. Se il permesso non è disponibile, seleziona il testo visibile del risultato e copialo manualmente.

Domande frequenti

Il mio SQL viene caricato o eseguito?

No. La formattazione avviene in questa scheda del browser. La pagina non si collega a un database e non esegue la query. Non confonderlo con una garanzia su ogni estensione del browser o dispositivo usato.

Quale dialetto devo scegliere?

Scegli il database che eseguirà la query. Usa SQL standard solo per sintassi comune o quando la destinazione è davvero sconosciuta, poi controlla manualmente le parti specifiche del prodotto.

Commenti, stringhe e segnaposto resteranno intatti?

Commenti supportati, stringhe delimitate e segnaposto comuni sono token e vengono conservati. Controlla attentamente template e SQL procedurale perché la sintassi non supportata può fallire.

La formattazione rende una query sicura o più veloce?

No. Cambia la presentazione. Autorizzazioni, parametri, sicurezza delle transazioni, piani di query, indici e revisione per la produzione sono attività separate.

Perché la formattazione non è riuscita?

Le cause più comuni sono un dialetto errato o sintassi di template/prodotto esterna alla grammatica supportata dalla libreria. Conserva il codice, scegli il dialetto corretto e isola la parte non supportata.