Formattatore/abbellitore SQL

Formatta e abbellisci il tuo codice SQL senza sforzo con il nostro strumento di formattazione SQL per una migliore leggibilità e manutenzione.

5 di 2 valutazioni
Formattatore/abbellitore SQL

Il Formattatore/abbellitore SQL è uno strumento gratuito che riorganizza il codice SQL per renderlo più leggibile e uniforme.

Che cosa cambia con la formattazione SQL?

La formattazione SQL modifica la disposizione di una query per rendere più facili da seguire clausole, espressioni e strutture annidate. In genere aggiunge interruzioni di riga e rientri a elementi come elenchi SELECT, clausole JOIN, condizioni WHERE, sottoquery ed espressioni CASE.

La formattazione non dovrebbe modificare il risultato previsto della query. Tuttavia, i dialetti SQL sono diversi e la sola formattazione non può garantire che un'istruzione abbia mantenuto il proprio significato. Controlla il codice SQL generato prima di eseguirlo sui dati di produzione, soprattutto se utilizza operatori specifici di un fornitore, estensioni procedurali o regole di delimitazione insolite.

Un formattatore è utile per leggere query scritte da altri, esaminare codice SQL generato, eseguire il debug di un'istruzione lunga o preparare il codice per una pull request. Una disposizione uniforme facilita anche il confronto tra le modifiche, perché riduce le differenze irrilevanti nella spaziatura.

Come si usa il formattatore SQL?

Incolla o inserisci l'istruzione nel campo SQL, quindi inviala per ottenere la versione formattata in SQL abbellito. L'input viene trasmesso al server tramite HTTPS per essere elaborato e non viene memorizzato.

  1. Copia l'istruzione completa, comprese le eventuali espressioni di tabella comuni da conservare, quindi verifica nel risultato i commenti e l'eventuale punto e virgola finale.
  2. Inseriscila nel campo SQL. Quando possibile, evita di formattare frammenti isolati.
  3. Esamina il risultato in SQL abbellito, prestando particolare attenzione alle espressioni annidate e alla sintassi specifica del dialetto.
  4. Esegui l'istruzione formattata in un ambiente di sviluppo o staging adeguato prima di distribuirla.
Lo strumento Formattatore/abbellitore SQL su digily.link, con il suo modulo di inserimento

Se lavori con database contenenti informazioni sensibili, consulta le regole della tua organizzazione prima di inviare il testo di una query a qualsiasi strumento basato su server. Rimuovi password, token di accesso, dati personali e valori letterali riservati quando non servono a comprendere la query.

Come si legge il codice SQL formattato?

Leggi il risultato seguendo i rientri e i confini tra le clausole, senza considerare la nuova disposizione una prova della validità dell'istruzione. Le clausole SELECT, FROM, WHERE, GROUP BY e ORDER BY di primo livello sono in genere più facili da distinguere quando ogni parte logica occupa una propria riga o un diverso livello di rientro.

  • Sottoquery rientrate: mostrano dove un'istruzione esterna utilizza un risultato interno.
  • Condizioni allineate: facilitano il controllo della precedenza tra AND e OR. Per impostazione predefinita, AND ha comunque la precedenza su OR e le parentesi continuano a determinare il raggruppamento logico.
  • Clausole JOIN separate: aiutano a capire quale condizione ON appartiene a ciascuna tabella.
  • Elenchi SELECT disposti su più righe: rendono più evidenti le virgole mancanti, le colonne duplicate e gli alias ambigui.
  • Rami CASE ben visibili: aiutano a verificare la corrispondenza tra le parole chiave WHEN, THEN, ELSE ed END.

Stringhe tra virgolette, numeri, segni di punteggiatura e commenti hanno un significato in SQL. Controllali, invece di considerarli semplici elementi di presentazione. I caratteri accentati o non latini possono essere validi nei valori stringa e negli identificatori delimitati, a seconda del database e della relativa codifica dei caratteri.

Esempio di risultato prodotto dallo strumento Formattatore/abbellitore SQL

Brevi esempi di formattazione

Considera questo input compatto.

Input: SELECT id,name FROM customers WHERE active=1 ORDER BY name;

Una versione formattata e leggibile potrebbe apparire così.

Output: SELECT id, name

FROM customers

WHERE active = 1

ORDER BY name;

In una query con una JOIN, i rientri risultano ancora più utili.

Input: SELECT o.id,c.name FROM orders o JOIN customers c ON c.id=o.customer_id WHERE o.total>100;

Un output leggibile potrebbe disporre SELECT, FROM, JOIN, ON e WHERE su righe separate, mantenendo il confronto o.total > 100. L'uso delle maiuscole, la spaziatura e la posizione delle interruzioni di riga variano in base alle convenzioni di formattazione. Considera quindi questi esempi come possibili disposizioni, non come uno stile predefinito garantito.

La formattazione può trovare gli errori SQL?

No. Rendere più leggibile il codice SQL non equivale a convalidarlo con il parser di un database. Il risultato dichiarato di questo strumento è codice SQL formattato, quindi non va utilizzato come controllo della sintassi o dello schema, né come strumento per analizzare il piano di esecuzione.

Una disposizione più chiara può comunque mettere in evidenza probabili errori durante la revisione. Alcuni esempi comuni sono una virgola mancante in un elenco SELECT, parentesi non abbinate, una stringa tra virgolette non terminata, una JOIN priva della condizione prevista oppure un'espressione AND o OR raggruppata in modo errato. Può anche rendere più facile individuare una parola riservata usata come identificatore senza delimitatori.

Alcuni problemi non possono essere accertati senza conoscere il database di destinazione. Un'istruzione accettata da PostgreSQL potrebbe richiedere modifiche per Microsoft SQL Server, MySQL, Oracle Database o SQLite. Per diagnosticare tabelle mancanti, colonne sconosciute, tipi di dati incompatibili ed errori di autorizzazione serve in genere il motore del database o uno strumento di sviluppo che riconosca il dialetto utilizzato.

Quando non conviene formattare il codice SQL?

La formattazione di solito non serve quando il codice SQL è già disposto in modo uniforme o verrà elaborato esclusivamente da una macchina. Riformattare query generate automaticamente può produrre molte modifiche superflue nel controllo di versione, senza migliorare il generatore che le ha create.

Potrebbe inoltre non essere la scelta giusta nelle situazioni seguenti:

  • Un file di migrazione è stato firmato, associato a un checksum o comunque confrontato byte per byte.
  • Una query minimizzata o compatta è incorporata in un artefatto con rigidi limiti di dimensione e nessuno deve esaminarla.
  • L'attività immediata riguarda la convalida, l'analisi del piano di esecuzione o l'ottimizzazione delle prestazioni, non la leggibilità.
  • La query contiene valori riservati che, secondo le regole dell'organizzazione, non possono essere inviati a un servizio basato su server.

Per applicare una formattazione ripetibile a un intero repository, può essere più adatto un formattatore da riga di comando che riconosca il dialetto, perché la sua configurazione può essere registrata insieme al codice. Per i payload API strutturati che contengono SQL, il Validatore e abbellitore JSON può aiutarti a esaminare il JSON circostante, mentre il codice SQL richiede comunque un'elaborazione specifica.

Domande frequenti

Formattare il codice SQL cambia il comportamento di NULL?

No. Spazi e rientri non modificano la logica a tre valori di SQL né il comportamento di NULL. Controlla comunque espressioni come column = NULL, che in genere richiedono IS NULL, perché un formattatore non corregge questo errore semantico.

Posso formattare più istruzioni SQL insieme?

Il supporto per più istruzioni SQL contemporaneamente non è documentato. Formatta ogni istruzione separatamente.

Posso lasciare i commenti nell'input?

I commenti possono contenere riferimenti a ticket, nomi host interni, dati dei clienti o note operative, anche se il codice SQL eseguibile non include valori letterali sensibili. Controlla sia i commenti di riga sia quelli a blocchi prima di inviare il testo al server.

Le parole chiave SQL vanno scritte in maiuscolo o in minuscolo?

In genere sono accettabili entrambi gli stili, perché molti motori di database non distinguono tra maiuscole e minuscole nelle parole chiave non delimitate. Segui la convenzione adottata nel repository e presta attenzione agli identificatori delimitati, perché alcuni database ne conservano o distinguono le maiuscole e le minuscole.

Che cosa devo controllare prima di eseguire la query formattata?

Verifica il dialetto del database di destinazione, esamina le condizioni WHERE e JOIN e controlla i limiti delle transazioni per le istruzioni UPDATE, DELETE e quelle che modificano lo schema. Esegui prima le query rischiose in un database di sviluppo o staging, preferibilmente con dati rappresentativi e backup adeguati.

Strumenti popolari