Formattatore SQL
Enter SQL on the left to start formatting
Strumento di formattazione SQL GeekFormat, abbellisci e organizza rapidamente query SQL disordinate. Supporta 20 dialetti di database come MySQL, PostgreSQL, SQLite, SQL Server, Oracle ecc., personalizza opzioni di formattazione come maiuscole/minuscole delle parole chiave, stile di indentazione, posizione del ritorno a capo degli operatori, larghezza delle espressioni e offre 4 stili predefiniti con un clic. Include funzioni di compressione SQL e validazione della sintassi, supporta caricamento/download di file, condivisione tramite URL, scorciatoie da tastiera, e fornisce evidenziazione della sintassi e layout del pannello regolabile basato sull'editor CodeMirror 6. Formatta automaticamente in tempo reale dopo l'inserimento, elaborazione completamente locale nel browser, le istruzioni SQL non vengono inviate al server.
Raccomandazioni correlate
Informazioni sulla Formattazione SQL
La formattazione SQL (SQL Formatting / SQL Beautification) si riferisce alla regolazione dei caratteri vuoti (ritorni a capo, indentazione, spazi) e delle maiuscole/minuscole delle parole chiave nelle istruzioni SQL tramite strumenti automatizzati, in modo che abbiano una struttura di impaginazione coerente e ad alta leggibilità. Come linguaggio di query dichiarativo, una query complessa di solito coinvolge più clausole come JOIN di più tabelle, subquery annidate, più condizioni WHERE, raggruppamento GROUP BY, filtraggio HAVING, ordinamento ORDER BY ecc., se non formattata, tutto il contenuto è compresso in una riga o con indentazione confusa, il che influisce seriamente sulla leggibilità e sull'efficienza di manutenzione. L'SQL formattato lascia ogni clausola su una riga indipendente tramite ritorni a capo e indentazione appropriati, la gerarchia di annidamento è espressa dall'indentazione, permettendo al lettore di comprendere rapidamente la struttura della query.
Perché la formattazione SQL è importante? In ambienti di collaborazione in team, diversi sviluppatori hanno diverse preferenze di stile di codifica — alcuni preferiscono le parole chiave maiuscole, altre minuscole; alcuni usano l'indentazione di 2 spazi, altri 4 spazi o Tab; alcuni mettono AND all'inizio della riga, altri alla fine. Queste differenze di stile di per sé non influenzano l'esecuzione SQL, ma generano molti diff senza senso durante la revisione del codice (Code Review), il revisore deve distinguere quali sono modifiche logiche reali e quali sono solo regolazioni di formattazione. Regole unificate di formattazione SQL e strumenti di formattazione automatizzati possono eliminare le discussioni sullo stile, permettendo al team di concentrarsi sulla logica di business in sé.
Le regole centrali della formattazione SQL di solito includono i seguenti aspetti: primo, maiuscole/minuscole delle parole chiave — le parole riservate SQL come SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP di solito sono maiuscole per differenziarle dagli identificatori (o minuscole unificate secondo le regole del team); secondo, ritorno a capo delle clausole — ogni clausola principale (SELECT/FROM/WHERE/GROUP BY/ORDER BY ecc.) è su una riga indipendente; terzo, allineamento dei nomi di colonna — più nomi di colonna nella lista SELECT occupano una riga ciascuno e sono allineati verticalmente; quarto, livelli di indentazione — subquery, condizioni JOIN, espressioni CASE annidate ecc. riflettono la gerarchia tramite indentazione aggiuntiva; quinto, posizione degli operatori — operatori logici come AND/OR sono posizionati uniformemente all'inizio o alla fine della riga.
La formattazione SQL di diversi dialetti di database ha le sue particolarità. MySQL usa l'apice inverso (`) per citare gli identificatori, PostgreSQL usa le virgolette doppie ("), SQL Server usa le parentesi quadre ([]); MySQL usa LIMIT per l'impaginazione, PostgreSQL supporta LIMIT/OFFSET, SQL Server usa TOP o OFFSET/FETCH, Oracle usa ROWNUM; PostgreSQL ha l'operatore di conversione di tipo ::, MySQL ha l'escape con apice inverso, SQL Server ha identificatori tra parentesi quadre. Queste differenze di dialetto richiedono che il formattatore sia in grado di riconoscere elementi sintattici specifici di database specifici, altrimenti potrebbe giudicare erroneamente sintassi speciali come errori o dividere erroneamente le parole chiave. Questo strumento è implementato basandosi sulla libreria sql-formatter e fornisce supporto sintattico specializzato per 20 dialetti SQL principali.
La compressione SQL (SQL Minification) è l'operazione inversa della formattazione ed è molto utile in determinati scenari. L'SQL stampato nei log delle applicazioni, l'SQL generato da framework ORM (come Hibernate, MyBatis, Django ORM, SQLAlchemy), l'SQL catturato da strumenti di monitoraggio delle prestazioni del database, sono spesso in formato compresso in riga singola senza ritorni a capo, il che è molto ostile per la risoluzione dei problemi — è necessario formattare prima per leggere. D'altra parte, quando è necessario incorporare SQL in stringhe di codice (come concatenazione di stringhe in Java/Python/JavaScript), scrivere in file di configurazione, passare tramite parametri URL o condividere in strumenti di chat che non supportano testo multilinea, la compressione in riga singola può evitare problemi di formattazione causati da ritorni a capo e indentazione.
Scegliere lo stile di formattazione appropriato richiede di considerare le regole del team e gli scenari di utilizzo. Lo stile con parole chiave maiuscole è la convenzione tradizionale dell'SQL, nell'era della stampa le parole chiave maiuscole potevano rendere l'SQL scritto a mano o con la macchina da scrivere più leggibile, oggi è ancora usato da molti team e organizzazioni. Lo stile con parole chiave minuscole è sempre più popolare su piattaforme di codice moderne come GitHub, perché le minuscole sono visivamente più morbide, e con l'evidenziazione della sintassi degli editor moderni non è più necessario differenziare le parole chiave per maiuscole/minuscole. L'indentazione di 2 spazi è più comune tra gli sviluppatori frontend, 4 spazi è più comune tra gli sviluppatori backend Java/C#. L'indentazione Tab permette a diversi sviluppatori di personalizzare la larghezza di visualizzazione nell'editor. Mettere gli operatori logici AND/OR all'inizio della riga facilita la scansione di ogni condizione quando si leggono lunghe liste di condizioni; metterli alla fine della riga è più in linea con l'abitudine di lettura in inglese.
Il principio di implementazione degli strumenti di formattazione SQL si basa principalmente sull'analisi lessicale (Tokenization) e sull'analisi sintattica. Librerie come sql-formatter prima decompongono la stringa SQL in una serie di token (parole chiave, identificatori, letterali, operatori, punteggiatura, commenti ecc.), poi riorganizzano questi token secondo regole sintattiche (diversi dialetti hanno diversi insiemi di regole), inserendo ritorni a capo e indentazione nelle posizioni appropriate. A differenza dei formattatori di codice generici (come Prettier), i formattatori SQL devono comprendere la struttura sintattica specifica dell'SQL (come condizioni JOIN...ON, espressioni CASE WHEN...END, annidamento di parentesi di subquery) per indentare correttamente, non solo basandosi su parentesi graffe o corrispondenza di parentesi.
Quando si utilizzano strumenti di formattazione SQL, prestare attenzione ai seguenti punti: primo, la formattazione non valida la correttezza semantica dell'SQL — l'SQL sintatticamente corretto ma logicamente errato (come condizione JOIN scritta male, condizione WHERE omessa) sarà ancora errato dopo la formattazione, la formattazione migliora solo l'impaginazione, non la logica; secondo, in rari casi limite, lo strumento di formattazione potrebbe generare risultati diversi dall'SQL originale in scenari sensibili agli spazi vuoti (come spazi in costanti di stringa, posizioni specifiche di commenti), si consiglia di fare una semplice verifica dopo la formattazione; terzo, non eseguire direttamente in ambiente di produzione l'SQL generato dallo strumento di formattazione senza test, specialmente SQL con parametri dinamici; quarto, per SQL contenente dati sensibili (password, chiavi, PII), utilizzare strumenti di formattazione locali (come questo strumento) invece di strumenti online, per evitare il rischio di fuga di dati.
Casi d'uso
- Organizzare grandi blocchi di stored procedure SQL e query complesse con join di tabelle senza formattazione quando si subentrano in progetti vecchi, per comprendere rapidamente la logica di business
- Uniformare lo stile SQL prima della revisione del codice del team, eliminare il rumore nei diff causato da preferenze personali di formattazione, concentrarsi sulla revisione logica
- SQL compresso in riga singola copiato da log o console, formattarlo per facilitare la lettura e la risoluzione dei problemi
- Quando si scrivono documenti tecnici e blog, incorporare esempi SQL formattati nel documento per aumentare la professionalità e la leggibilità
- Quando l'SQL esportato da client di database ha una formattazione confusa, riformattarlo secondo lo stile unificato del team prima di inviare il codice
- Quando si preparano interviste o presentazioni tecniche, formattare le istruzioni SQL di dimostrazione per usarle in slide e spiegazioni su lavagna
- Durante la risoluzione di errori SQL, formattare subquery annidate disordinate per individuare problemi strutturali come parentesi non corrispondenti e parole chiave mancanti
- I log SQL generati da framework ORM sono solitamente in formato compresso senza ritorni a capo, formattarli per facilitare l'analisi della query effettivamente eseguita
- Durante lo sviluppo di script di migrazione dati, formattare le istruzioni di creazione tabella e INSERT per migliorare la manutenibilità
- Uniformare la formattazione prima di confrontare le differenze tra versioni SQL, evitare che differenze puramente di formattazione interferiscano con la revisione del codice
- Quando si impara SQL, formattare le query di esempio per comprendere la gerarchia di JOIN, subquery e GROUP BY tramite indentazione e ritorni a capo chiari
- Quando si condividono frammenti SQL con i colleghi, formattare prima e poi condividere tramite link URL, il destinatario aprirà e vedrà lo stesso risultato formattato
Come utilizzare
- Seleziona il dialetto del database (predefinito MySQL, supporta 20 dialetti SQL) per garantire che il formattatore riconosca correttamente la sintassi
- Incolla le istruzioni SQL da formattare nell'area di editing a sinistra, o clicca sul pulsante di caricamento per importare file .sql/.txt, oppure carica SQL di esempio dal menu degli esempi
- Clicca sul pulsante formatta (Shift+Cmd/Ctrl+F) o attendi la formattazione automatica (attivata automaticamente 800ms dopo l'inserimento), il risultato formattato viene mostrato immediatamente a destra
- Se devi regolare la formattazione, clicca sul pulsante delle impostazioni per espandere il pannello di configurazione, regola opzioni come maiuscole/minuscole delle parole chiave, indentazione, ritorni a capo, o seleziona uno stile predefinito; se hai bisogno della compressione in riga singola, clicca sul pulsante comprimi
- Clicca sul pulsante copia per copiare il risultato, o clicca sul pulsante scarica per salvare come file .sql, oppure clicca sul pulsante condividi per generare un link URL contenente il contenuto SQL
Funzionalità
- Compatibilità con 20 dialetti di database: supporta riconoscimento della sintassi e formattazione per 20 dialetti SQL tra cui SQL standard, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB ecc.
- Controllo maiuscole/minuscole parole chiave: supporta tre modalità per parole chiave come SELECT/FROM/WHERE/JOIN: maiuscole (UPPER), minuscole (lower) o mantieni originale (preserve), con configurazione separata per tipi di dati e nomi di funzioni
- Controllo maiuscole/minuscole identificatori: identificatori come nomi di tabelle, colonne e alias supportano maiuscole, minuscole o mantieni originale, adattandosi a diverse convenzioni di codifica del team
- Stile di indentazione opzionale: supporta tre stili di indentazione: indentazione standard, allineamento tabulare a sinistra (tabularLeft) e allineamento tabulare a destra (tabularRight), soddisfacendo diverse preferenze di lettura
- Configurazione flessibile dell'indentazione: larghezza dell'indentazione può essere 2 spazi, 4 spazi o carattere Tab; numero di righe vuote tra le query può essere 0/1/2 righe
- Ritorno a capo degli operatori logici: configura se operatori logici come AND/OR vanno a capo prima (before) o dopo (after) l'operatore, in linea con lo stile di codice del team
- Controllo larghezza espressione: la soglia di caratteri per il ritorno a capo dell'espressione è regolabile (20-200 caratteri), va a capo automaticamente quando supera la larghezza, controllando la lunghezza della riga singola
- Modalità operatori densi: se attivata, non lascia spazi extra intorno agli operatori, generando un risultato di formattazione più compatto, adatto per scenari SQL incorporati
- Ritorno a capo prima del punto e virgola: opzionalmente va a capo prima del punto e virgola di fine istruzione, lasciando il punto e virgola su una riga separata per individuare rapidamente i confini dell'istruzione
- 4 stili predefiniti: passaggio con un clic tra predefinito (parole chiave UPPER + indentazione 2 spazi), minuscolo (parole chiave tutte minuscole), compatto (allineamento tabulare + operatori densi) e ampio (indentazione 4 spazi + doppie righe vuote), senza necessità di regolare ogni elemento
- Funzione di compressione SQL: comprime SQL in riga singola con un clic, rimuove automaticamente commenti, spazi vuoti superflui e ritorni a capo, adatto per output di log, concatenazione di codice e scenari di incorporamento in documenti
- Funzione di validazione della sintassi: validazione base della sintassi SQL, mostra messaggi di errore quando la formattazione fallisce per aiutare a individuare problemi di sintassi
- SQL di esempio integrato: fornisce quattro gruppi di SQL di esempio: query base, query complessa con join di tabelle, elaborazione batch di più istruzioni e istruzione di creazione tabella CREATE TABLE, per provare rapidamente l'effetto della formattazione
- Caricamento/download di file: supporta caricamento di file .sql/.txt per importare SQL direttamente, dopo la formattazione è possibile scaricare come file .sql per salvare
- Condivisione tramite URL: utilizza la compressione LZ-String per codificare SQL nell'hash dell'URL, copia il link per condividere la configurazione di formattazione e il contenuto SQL
- Formattazione automatica in tempo reale: formatta automaticamente con debounce di 800ms dopo aver inserito SQL, vedi l'effetto immediatamente durante la modifica, senza dover cliccare ripetutamente sul pulsante
- Scorciatoie da tastiera: Shift+Cmd/Ctrl+F formatta, Shift+Cmd/Ctrl+C comprimi, Shift+Cmd/Ctrl+V valida, Shift+Cmd/Ctrl+O carica, Shift+Cmd/Ctrl+D scarica, Shift+Cmd/Ctrl+K cancella
- Editor CodeMirror: editor con evidenziazione della sintassi SQL basato su CodeMirror 6, supporta regolazione della larghezza del pannello sinistro/destro tramite trascinamento, regolazione della dimensione del carattere e pannello della cronologia
- Copia risultato con un clic: SQL formattato o compresso può essere copiato negli appunti con un clic, per incollare direttamente in client di database o nel codice
- Elaborazione completamente locale nel browser: tutta la formattazione SQL viene completata in JavaScript nel browser, basata sulla libreria sql-formatter, le istruzioni SQL non vengono inviate a nessun server, garantendo la sicurezza dei dati
Domande frequenti
La formattazione SQL modifica la logica della query? L'SQL formattato può essere eseguito direttamente?
Non modifica la logica della query. La formattazione SQL regola solo i caratteri vuoti (ritorni a capo, indentazione, spazi) e le maiuscole/minuscole delle parole chiave, non modifica identificatori, valori, operatori, chiamate di funzione e struttura della query nell'SQL. L'SQL formattato è semanticamente completamente equivalente all'SQL originale, può essere copiato direttamente in client di database come MySQL Workbench, pgAdmin, DBeaver, Navicat per l'esecuzione. Tuttavia, si consiglia di verificare in ambiente di test prima di eseguire in ambiente di produzione.
Quali dialetti di database sono supportati? Cosa fare quando ci sono differenze nella sintassi SQL tra database diversi?
Supporta 20 dialetti SQL: SQL standard, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL(Couchbase). Database diversi hanno differenze nella sintassi di paginazione (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), concatenazione di stringhe, funzioni di data, citazione degli identificatori (apice inverso vs virgolette doppie vs parentesi quadre) ecc. Selezionare il dialetto corretto garantisce che il formattatore riconosca correttamente parole chiave e nomi di funzione, evitando la formattazione errata di funzioni specifiche del dialetto.
Cos'è la compressione SQL? Qual è la differenza tra compressione e formattazione?
La compressione SQL (Minify) è l'operazione inversa della formattazione: rimuove tutti i commenti (inclusi i commenti multilinea /* */ e i commenti a riga singola --), unisce i caratteri vuoti consecutivi in un singolo spazio, rimuove gli spazi superflui intorno a parentesi/virgole/punto e virgola/operatori, e genera SQL compatto in riga singola. La compressione è adatta per i seguenti scenari: incorporare SQL in stringhe di codice, scrivere in file di log, passare tramite parametri URL, condividere in finestre di chat per evitare disallineamenti dei ritorni a capo. La formattazione, invece, aggiunge ritorni a capo e indentazione appropriati per migliorare la leggibilità.
Quando viene attivata la formattazione automatica? Posso disattivarla?
Dopo aver inserito o modificato SQL nell'area di editing a sinistra, la formattazione viene attivata automaticamente dopo un ritardo di debounce di 800ms (a condizione che la formattazione precedente non abbia errori di sintassi). Questo per mostrare l'effetto formattato immediatamente dopo aver smesso di digitare. Se preferisci il controllo manuale, basta cliccare sul pulsante formatta nella barra degli strumenti, senza dover attendere l'attivazione automatica. Attualmente non c'è un interruttore separato per disattivare la formattazione automatica, ma non viene attivata ripetutamente finché il contenuto di input non viene modificato.
Cosa fare quando la formattazione fallisce e indica un errore di sintassi?
Il formattatore segnala un errore quando incontra sintassi SQL che non riesce ad analizzare, le cause comuni includono: 1) Parentesi non corrispondenti — verifica se il numero di parentesi sinistre e destre è coerente; 2) Stringa non chiusa — verifica se apici singoli/doppi appaiono in coppia; 3) Errore di battitura nelle parole chiave — come errori di battitura come SELCT, WHRER ecc.; 4) Dialetto di database non corrispondente — come usare la sintassi di conversione di tipo :: specifica di PostgreSQL ma selezionare il dialetto MySQL; 5) Frammento SQL incompleto — come solo condizione WHERE senza SELECT FROM. Il messaggio di errore mostra la posizione e il motivo del problema segnalato dall'analizzatore, puoi individuare il problema in base a questo. Puoi anche cliccare prima sul pulsante valida (Shift+Cmd/Ctrl+V) per verificare la sintassi.
Come scegliere tra le tre modalità: parole chiave maiuscole, minuscole o mantieni originale?
Parole chiave maiuscole (UPPER) è lo stile di codifica SQL più tradizionale e popolare, parole chiave come SELECT/FROM/WHERE/JOIN in maiuscolo le differenziano visivamente da nomi di tabella/colonna, permettendo di individuare rapidamente la struttura SQL in grandi quantità di codice. Parole chiave minuscole sono più adatte per ambienti IDE moderni (gli editor moderni hanno l'evidenziazione della sintassi, non dipendono più dalla differenziazione per maiuscole/minuscole), visivamente più uniformi. Mantieni originale (preserve) non altera le maiuscole/minuscole che hai digitato, adatto per apportare modifiche di formattazione minime al codice esistente. Parole chiave, identificatori (nomi di tabella e colonna), tipi di dati (VARCHAR/INT/BIGINT) e nomi di funzione (COUNT/SUM/COALESCE) possono avere strategie di maiuscole/minuscole impostate indipendentemente.
Qual è la differenza tra la modalità di allineamento Tabular e l'indentazione standard?
L'indentazione standard (standard) utilizza il metodo tradizionale di indentazione gerarchica, ogni clausola è indentata con un numero fisso di spazi. Le modalità di allineamento tabulare a sinistra/destra allineano i nomi di colonna nella lista SELECT, le espressioni nelle condizioni WHERE ecc. per colonne, formando un effetto visivo simile a una tabella. Ad esempio, più nomi di colonna dopo SELECT sono allineati verticalmente, anche gli alias AS sono allineati nella stessa posizione di colonna. Questa modalità è molto intuitiva quando si leggono query con più colonne su monitor a schermo largo, ma su schermi stretti potrebbe causare righe troppo lunghe.
Come passare rapidamente tra lo stile SQL unificato del team e le preferenze personali?
Usa i pulsanti predefiniti nel pannello delle impostazioni: predefinito (parole chiave UPPER + indentazione standard 2 spazi), minuscolo (parole chiave tutte minuscole), compatto (allineamento tabularLeft + operatori densi), ampio (indentazione 4 spazi + doppie righe vuote tra le query). Se il tuo team ha regole specifiche, regola manualmente le opzioni e formatta. Attualmente non è supportato salvare predefiniti personalizzati, ma il numero di opzioni di configurazione è limitato, anche la regolazione rapida è conveniente.
L'SQL formattato perde i commenti?
L'operazione di formattazione (Format) conserva i commenti, i commenti a riga singola -- e i commenti multilinea /* */ sono conservati vicino alla posizione originale (la posizione specifica dipende dalla logica di elaborazione dei commenti della libreria sql-formatter). Ma l'operazione di compressione (Compress) rimuove tutti i commenti per generare l'SQL in riga singola più compatto, se hai bisogno di conservare i commenti prima della compressione, copia prima il risultato formattato.
Quali scorciatoie da tastiera sono supportate? Qual è la differenza tra Mac e Windows/Linux?
Supporta le seguenti scorciatoie (Mac usa il tasto Cmd, Windows/Linux usa il tasto Ctrl, entrambi richiedono di tenere premuto Shift contemporaneamente): Shift+Cmd/Ctrl+F formatta; Shift+Cmd/Ctrl+C comprimi; Shift+Cmd/Ctrl+V validazione sintassi; Shift+Cmd/Ctrl+O carica file; Shift+Cmd/Ctrl+D scarica file; Shift+Cmd/Ctrl+K cancella contenuto. Clicca sull'icona del punto interrogativo nella barra degli strumenti per visualizzare l'elenco delle scorciatoie in qualsiasi momento.
C'è un limite di dimensione per il caricamento di file SQL? Quali formati di file sono supportati?
Supporta il caricamento di file di testo nei formati .sql e .txt, teoricamente non c'è un limite rigido di dimensione del file, ma il browser potrebbe avere problemi di prestazioni durante l'elaborazione di file molto grandi (come file di dump SQL superiori a 1MB). Si consiglia di elaborare query singole o file di script di piccole dimensioni. Per file SQL molto grandi (come dump completo di database), si consiglia di dividere in frammenti più piccoli prima di formattare. Il contenuto del file viene letto tramite l'API FileReader del browser, non viene inviato al server.
La funzione di condivisione tramite URL è sicura? Il contenuto SQL viene visto dal server?
La funzione di condivisione tramite URL utilizza la compressione LZ-String per codificare il contenuto SQL nella parte hash dell'URL (contenuto dopo #). La caratteristica della parte hash dell'URL è: non viene inviata al server con le richieste HTTP, viene elaborata solo localmente nel browser. Quando copi un link di condivisione a un'altra persona, il browser del destinatario analizza l'hash e decomprime per visualizzare il contenuto SQL, durante tutto il processo l'SQL non passa per nessun server. Tuttavia, tieni presente che il link di condivisione contiene il contenuto SQL completo, se l'SQL contiene informazioni sensibili (come password, chiavi, dati personali), non condividere il link su canali pubblici.
Posso formattare script contenenti più istruzioni SQL?
Sì. Lo strumento supporta la formattazione batch di più istruzioni SQL (come più istruzioni SELECT/INSERT/UPDATE/CREATE TABLE separate da punto e virgola). Puoi controllare l'intervallo tra le istruzioni (0/1/2 righe) tramite l'opzione "Righe tra le query" nel pannello delle impostazioni. Carica l'SQL di esempio "Istruzioni multiple" per provare l'effetto della formattazione di più istruzioni. Ogni istruzione è indentata e impaginata indipendentemente, le istruzioni sono separate dal numero di righe vuote configurato.
Qual è la dimensione dell'istruzione SQL che causa rallentamenti?
Implementazione puramente in JavaScript basata sulla libreria sql-formatter, l'elaborazione di SQL con fino a poche centinaia di righe di solito ha una risposta in millisecondi nei browser moderni, senza sensazione di rallentamento. Anche stored procedure di migliaia di righe o query complesse possono essere completate in meno di 1 secondo. Tutti i calcoli vengono completati nel thread principale del browser, file molto grandi (come dump SQL con più di 10.000 righe) potrebbero causare un congelamento temporaneo dell'interfaccia, si consiglia di elaborare in batch.
Lo strumento richiede una connessione internet per essere utilizzato? I dati SQL sono sicuri?
Può essere utilizzato offline dopo il caricamento della pagina, formattazione, compressione e validazione SQL sono tutte completate in JavaScript locale nel browser, non invia le istruzioni SQL che hai digitato a nessun server esterno. Non utilizza il tracciamento tramite Cookie, non raccoglie il contenuto SQL digitato dall'utente o dati sul comportamento di utilizzo. Implementato basandosi sulla matura libreria open-source sql-formatter, la logica del codice è trasparente e verificabile.
Risoluzione dei problemi
Cosa fare quando la formattazione segnala errore "Parse error" o "Formattazione SQL fallita"?
Il formattatore analizza l'SQL basandosi sulla libreria sql-formatter, segnala errore quando incontra sintassi non riconosciuta. Cause comuni e soluzioni: 1) Parentesi non corrispondenti — verifica se il numero di parentesi sinistre e destre è coerente, puoi usare la funzione di evidenziazione della corrispondenza delle parentesi dell'editor per aiutare nella verifica; 2) Apici di stringa non chiusi — verifica se apici singoli e doppi appaiono in coppia, gli apici all'interno delle stringhe devono essere escapati (come '' o \'); 3) Selezione errata del dialetto di database — come usare l'operatore :: di PostgreSQL ma selezionare il dialetto MySQL, passa al dialetto corretto; 4) Istruzione SQL incompleta — come solo clausola WHERE senza SELECT FROM; 5) Uso di sintassi molto specifica del database (come determinati flussi di controllo delle stored procedure), prova a passare al dialetto più vicino o semplifica il frammento SQL prima di formattare.
Caratteri cinesi o speciali appaiono come caratteri illeggibili dopo la formattazione?
Questo strumento supporta completamente la codifica UTF-8, i caratteri cinesi e Unicode rimangono inalterati durante la formattazione. Se appaiono caratteri illeggibili, di solito è perché l'SQL che hai incollato proviene da un file con codifica errata (come copiato da un file con codifica GBK). Assicurati che il file di origine sia salvato con codifica UTF-8, o converti il file in codifica UTF-8 prima di incollare. L'editor CodeMirror nel browser usa UTF-8 per impostazione predefinita, non introduce conversioni di codifica.
Dopo aver caricato il file SQL non c'è reazione o appare vuoto?
Il caricamento di file supporta solo file di testo con estensione .sql e .txt. Se il file è in formato binario (come file di database .sqlite, documento .doc), appariranno caratteri illeggibili o vuoto dopo il caricamento. Inoltre, alcuni browser hanno restrizioni di sicurezza per la lettura di file locali tramite JavaScript, assicurati di selezionare il file cliccando attivamente sul pulsante di caricamento, non tramite trascinamento e rilascio (il caricamento tramite trascinamento non è attualmente supportato). La dimensione del file consigliata non supera 1MB, il superamento potrebbe causare rallentamenti nell'analisi del browser.
Dopo la formattazione alcune parole chiave sono diventate minuscole/maiuscole, incoerenti con l'input originale?
Questo è il comportamento normale della formattazione. L'opzione di maiuscole/minuscole delle parole chiave (keywordCase) è impostata su UPPER per impostazione predefinita, convertirà le parole chiave SQL in maiuscolo uniformemente. Se desideri mantenere inalterate le maiuscole/minuscole originali, modifica le opzioni di maiuscole/minuscole di parole chiave, identificatori, tipi di dati e funzioni nel pannello delle impostazioni in "Mantieni originale (preserve)", così il formattatore regolerà solo ritorni a capo e indentazione, non altererà le maiuscole/minuscole di nessuna lettera.
Glossario
- Dialetto SQL (SQL Dialect)
- Estensioni e varianti dell'SQL standard da parte di diversi sistemi di gestione di database (DBMS). Ad esempio, LIMIT di MySQL, conversione di tipo :: di PostgreSQL, TOP di SQL Server, ROWNUM di Oracle ecc. sono sintassi specifiche del dialetto. È necessario selezionare il dialetto corretto durante la formattazione per garantire l'analisi sintattica corretta.
- Maiuscole/Minuscole Parole Chiave (Keyword Case)
- Strategia di maiuscole/minuscole per le parole riservate SQL (SELECT/FROM/WHERE/JOIN ecc.). Maiuscole (UPPER) è lo stile tradizionale, minuscole (lower) è sempre più popolare nello sviluppo moderno, mantieni originale (preserve) è usato per modifiche minime.
- Identificatore (Identifier)
- Nomi di oggetti di database nell'SQL, inclusi nomi di database, tabelle, colonne, alias, indici, viste, stored procedure ecc. Database diversi citano gli identificatori in modi diversi: MySQL usa l'apice inverso, PostgreSQL usa le virgolette doppie, SQL Server usa le parentesi quadre.
- Stile di Indentazione (Indent Style)
- Controlla la modalità di allineamento dell'indentazione durante la formattazione SQL. L'indentazione standard usa la progressione gerarchica; tabularLeft/tabularRight allineano nomi di colonna e alias in formato tabellare, migliore leggibilità su schermo largo ma potrebbe generare righe più lunghe.
- Ritorno a Capo Operatori Logici (Logical Operator Newline)
- Posizione del ritorno a capo di operatori logici come AND/OR in condizioni multilinea. before significa che l'operatore è all'inizio della riga successiva, after significa che l'operatore è alla fine della riga corrente. Team diversi hanno preferenze diverse.
- Larghezza Espressione (Expression Width)
- Soglia di caratteri per riga che attiva il ritorno a capo (20-200 caratteri). Le espressioni che superano questa larghezza andranno a capo, simile all'impostazione printWidth/ruler negli editor di codice.
- Operatori Densi (Dense Operators)
- Una delle opzioni di formattazione, se attivata, non lascia spazi extra intorno agli operatori (=, <, >, +, - ecc.), come `WHERE id=1 AND status='active'` invece di `WHERE id = 1 AND status = 'active'`, generando un output più compatto.
- Righe tra le Query (Lines Between Queries)
- Numero di righe vuote tra più istruzioni SQL. 0 significa disposizione immediata, 1 significa separazione con una riga vuota (comune), 2 significa due righe vuote (stile ampio), influisce sulla leggibilità degli script con più istruzioni.
- Comprimi/Minifica SQL (SQL Minify/Compress)
- Rimuove tutti i commenti e gli spazi vuoti superflui dall'SQL formattato, unendolo in un formato compatto in riga singola. Adatto per scenari come output di log, incorporamento di codice, passaggio tramite URL ecc., è l'operazione inversa della formattazione.
- Stampa Elegante (Pretty Print)
- Genera output di codice o dati in formato ad alta leggibilità tramite indentazione e ritorni a capo automatici. SQL Pretty Print è l'abbellimento e la formattazione SQL, opposto al Minify (compressione).
- CodeMirror
- Componente di editor di codice nel browser utilizzato da questo strumento (versione 6), fornisce funzioni di miglioramento dell'editing come evidenziazione della sintassi SQL, visualizzazione dei numeri di riga, piegatura del codice ecc., è una soluzione di editor di codice Web ampiamente utilizzata nel settore.
- sql-formatter
- Libreria open-source di formattazione SQL utilizzata nel nucleo di questo strumento, supporta l'analisi lessicale e l'output formattato per vari dialetti SQL, è una delle librerie di formattazione SQL più popolari nell'ecosistema frontend.
Elenco dei dialetti SQL supportati
Lo strumento supporta 20 dialetti di database SQL, seleziona il dialetto corrispondente al database che usi per ottenere il miglior effetto di formattazione:
| Dialetto | Database | Descrizione Caratteristiche |
|---|---|---|
| Standard SQL | SQL standard | Sintassi standard ANSI SQL, adatta per scenari generali e dialetti sconosciuti |
| MySQL | MySQL / TiDB | Database relazionale open-source più popolare, identificatori con apice inverso, paginazione LIMIT |
| MariaDB | MariaDB | Ramo di MySQL, compatibile con la sintassi MySQL ed esteso con più funzioni |
| PostgreSQL | PostgreSQL | Database open-source ricco di funzionalità, identificatori con virgolette doppie, conversione di tipo :: |
| SQLite | SQLite | Database leggero incorporato, comune in applicazioni mobili e browser |
| T-SQL | SQL Server / Azure | Transact-SQL di Microsoft SQL Server, identificatori con parentesi quadre, paginazione TOP |
| PL/SQL | Oracle | Estensione SQL procedurale di Oracle, paginazione ROWNUM, pacchetti interni ricchi |
| BigQuery | Google BigQuery | Data warehouse su cloud di Google, supporta tipi annidati come STRUCT/ARRAY |
| Snowflake | Snowflake | Data warehouse nativo su cloud, forte capacità di elaborazione di dati semistrutturati |
| Redshift | AWS Redshift | Data warehouse su cloud di Amazon, basato su PostgreSQL ma con sintassi specifica |
Confronto degli stili di formattazione predefiniti
4 stili predefiniti con un clic sono adatti per diversi scenari di utilizzo:
| Predefinito | Parole Chiave | Indentazione | Operatori | Intervallo tra Query |
|---|---|---|---|---|
| Predefinito | UPPER | 2 spazi Standard | Spaziatura normale | 1 riga vuota |
| Minuscolo | lower | 2 spazi Standard | Spaziatura normale | 1 riga vuota |
| Compatto | UPPER | Tabulare sinistra | Modalità compatta | 1 riga vuota |
| Ampio | UPPER | 4 spazi Standard | Spaziatura normale | 2 righe vuote |
Panoramica scorciatoie
Tutte le scorciatoie richiedono di tenere premuto contemporaneamente tasto modificatore+Shift+lettera corrispondente:
| Azione | Mac | Windows/Linux | Descrizione |
|---|---|---|---|
| Formatta | ⇧⌘F | Shift+Ctrl+F | Abbellisci le istruzioni SQL, aggiungi ritorni a capo e indentazione |
| Comprimi | ⇧⌘C | Shift+Ctrl+C | Comprimi SQL in riga singola, rimuovi commenti e spazi vuoti |
| Valida | ⇧⌘V | Shift+Ctrl+V | Verifica se la sintassi SQL è corretta |
| Carica | ⇧⌘O | Shift+Ctrl+O | Carica .sql/.txt da file locale |
| Scarica | ⇧⌘D | Shift+Ctrl+D | Salva il risultato come file .sql |
| Cancella | ⇧⌘K | Shift+Ctrl+K | Cancella contenuto di input e output |
Privacy & Security
Tutte le operazioni di questo strumento di formattazione SQL sono completate completamente localmente nel tuo browser: le istruzioni SQL che digiti, il dialetto selezionato e la configurazione di formattazione sono tutti elaborati nel JavaScript del browser dalla libreria sql-formatter, nessun contenuto SQL o configurazione viene inviato tramite rete a server esterni. Il caricamento di file legge il contenuto dei file locali tramite l'API HTML5 FileReader, senza trasmissione tramite rete. La funzione di condivisione tramite URL comprime l'SQL e lo codifica nella parte hash dell'URL (il contenuto dopo # non viene inviato al server con le richieste HTTP), decomprime e visualizza solo localmente nel browser. Non utilizza il tracciamento tramite Cookie, non raccoglie il contenuto SQL digitato dall'utente o dati sul comportamento di utilizzo. Dopo aver chiuso o aggiornato la pagina, il contenuto di input e lo stato della configurazione vengono reimpostati automaticamente (la cronologia è salvata solo nel localStorage locale).
Authoritative References
- GitHubDocumentazione ufficiale di sql-formatter
- codemirror.netSito ufficiale di CodeMirror 6
- WikipediaWikipedia - Sintassi SQL
- Simulatore Daltonismo
- Convertitore di colori
- Convertitore da .htaccess a Nginx
- Convertitore SQL
- Parser Cookie
- Generatore di Espressioni Cron
- Validatore di Espressioni Cron
- Formattazione CSS
- Compressione CSS
- Da CSV a Excel
- Convertitore di Valuta
- Confronto Testo
- Generatore Favicon
- Formattazione XML
- Convertitore Esadecimale
- Formattazione HTML
- Compressione HTML
- Da HTML a Markdown
- Da Markdown a HTML
- Formattazione JavaScript
- Compressione JS
- Formattatore JSX
- Compressione JSX
- Raggruppamento di parole chiave
- Generatore Lorem Ipsum
- Generatore Tabelle Markdown
- Generatore di Meta Tag
- Generatore di Password
- Verificatore di Sicurezza Password
- Generatore di QR Code/Codici a Barre
- Tester di Espressioni Regolari
- Generatore di Slug
- Costruttore Query SQL
- Formattatore SQL
- Contatore di Parole
- Strumento Orario
- Formattazione TypeScript
- Compressione TypeScript
- Formattazione TSX
- Compressione TSX
- Convertitore Unix Timestamp
- Generatore UUID
- Formattazione YAML
- Conversione dei casi