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
- 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.
- 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.