Formatatore SQL e Minificatore – Documentazione completa, migliori pratiche e integrazioni
Il formatatore e minificatore Zerlo SQL rende SQL immediatamente leggibile (Beautify) o compatto (Minify). Controlli Indentazione (2/4/8 spazi), Caso parole chiave (UPPER/lower/Preserve) e nell'area Avanzate Rimozione commenti nonché forzare il punto e virgola. Attraverso Accesso rapido sono disponibili snippet di esempio, e con Auto-test controllerai il comportamento in pochi secondi. La pagina è raggiungibile qui: zerlo.net/formattersql.
Contenuto
- Avvio rapido
- Panoramica delle funzioni
- Esempi di accesso rapido (Use-Cases)
- Opzioni avanzate (Dettagli e insidie)
- Categorie di applicazione tipiche (12 scenari)
- Integrazione: sito web, iFrame, Teams
- API JSON opzionale (con esempi)
- Auto-test (passo dopo passo)
- Consigli da professionisti, prestazioni e sicurezza
- Indicazioni sui dialetti e sui limiti
- Risoluzione dei problemi e FAQ
- Provalo ora
1) Avvio rapido
- Apri zerlo.net/formattersql.
- Incolla qui il tuo SQL a sinistra o digitalo.
- Seleziona il Modalità: Formattare (leggibile) o Minificare (compatto).
- Imposta Indentazione (2/4/8) e Caso parole chiave (UPPER/lower/Preserve) attiva..
- Opzionale: Rimuovere commenti, Forzare il punto e virgola.
- Fai clic Formattare – – il risultato appare sul lato destro, inclusi. Copia e Salva come .sql.
- Sotto Auto-test puoi testare automaticamente le regole principali..
2) Funzioni in sintesi
- Formattazione:: Interruzioni di riga e rientri per
SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT,UNION,WITH,CASE… - Minificazione:: Rimuove spazi bianchi non necessari; ideale per trasporto/embedding. Opzionale con rimozione dei commenti.
- Caso parole chiave:: UPPER, lower oppure Preserve (Stringhe/Identificatori rimangono invariati).
- Profilo di indentazione:: 2, 4 oppure 8 Spaces – coerente a livello di team..
- Avanzate:: Rimuovere commenti (mono-/multilinea) & Forzare il punto e virgola.
- Accesso rapido:: Esempi predefiniti: semplici
SELECT, JOIN con aggregato, CASE e subquery, CTE e Window, INSERT … RETURNING, UPDATE con CASE, DELETE + EXISTS. - Auto-test:: 1-Klick-Verifikation: Regole Beautify, comportamento di Minify, cambio di indentazione, caso delle parole chiave, punto e virgola.
- Pulsanti pratici:: Formattare, JSON-API (POST) testare qui, Copia, Salva come .sql.
- Uscite:: Pannello dei risultati, Auto-test, -Pannello,.
3) Esempi di accesso rapido (Use-Cases)
Questi esempi coprono i modelli più comuni e sono ideali come punto di partenza.
SELECT id, name FROM products WHERE status = 'active';
SELECT c.id, c.title, COUNT(p.id) AS products
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id, c.title
ORDER BY products DESC;
SELECT u.id, u.email,
CASE
WHEN o.total >= 1000 THEN 'gold'
WHEN o.total >= 200 THEN 'silver'
ELSE 'bronze'
END AS tier
FROM users u
LEFT JOIN LATERAL (
SELECT SUM(total) AS total
FROM orders
WHERE user_id = u.id
) o ON TRUE;
WITH ranked AS (
SELECT id, customer_id, total,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY total DESC) AS rn
FROM orders
)
SELECT * FROM ranked WHERE rn = 1;
INSERT INTO users(email, role)
VALUES ('[email protected]', 'editor')
RETURNING id, email;
UPDATE accounts
SET status = CASE
WHEN balance < 0 THEN 'overdue'
WHEN balance = 0 THEN 'zero'
ELSE 'ok'
END
WHERE active = 1;
DELETE FROM sessions s
WHERE EXISTS (
SELECT 1 FROM users u
WHERE u.id = s.user_id AND u.deleted_at IS NOT NULL
);
4) Opzioni avanzate (Dettagli e insidie)
- Rimuovere commenti:: Rimuove
-- ...e/* ... */. Utile per un trasporto 'pulito' (CI, embedding). Attenzione: i commenti di documentazione andranno persi – estrarli/archivarli in anticipo. - Forzare il punto e virgola:: Aggiunge
;se non presente alla fine – previene errori del parser negli script. Se già esiste;, non viene duplicato.
5) Categorie di applicazione tipiche (12 scenari)
- Code-Review:: Un layout uniforme accelera le revisioni e previene discussioni sullo stile.
- Debugging:: JOIN complesse e CASE diventano immediatamente visibili.
- Condivisione delle conoscenze:: SQL leggibile per Wiki/Confluence/README.
- Migrazioni e script:: Sicurezza del punto e virgola, blocchi univoci.
- Integrazione API:: Minify + rimozione dei commenti, per incorporare SQL in app/servizi.
- BI/Reporting:: Pulire le query da strumenti BI prima di condividerle.
- Apprendimento e formazione:: CTE e funzioni Window in modo strutturato.
- Refactoring:: Prima la formattazione (Beautify), poi isolare/ottimizzare le sottosezioni..
- Riproduzione di errori:: Query strutturate chiaramente per ticket di supporto.
- Applicazione della guida di stile:: Applicare coerentemente lo standard del team (Indent/Case)..
- Modelli:: „Accesso rapido“ come base per nuove query.
- Preparazione al rilascio:: Minify per artefatti stabili e trasportabili..
6) Integrazione in sito web/Teams
A) Utilizzo diretto
Qui va lo strumento: zerlo.net/formattersql
B) Incorporazione iFrame (Intranet/Backoffice)
<iframe src="https://zerlo.net/formattersql" title="SQL Formatter" width="100%" height="900" style="border:0; border-radius:12px;"></iframe>
C) Guida allo stile del team (base)
- Indentazione: 2 o 4 spazi (coerente).
- Caso parole chiave: UPPER (stringhe/identificatori restano invariati).
- JOIN: condizioni direttamente su
JOIN ... ON; nessun filtro nascosto inWHERE. - CASE: CASE: Ogni
WHEN/THENin propria riga; logico; significativoELSE. - Punto e virgola: inserirlo sempre negli script.
7) API JSON opzionale
Puoi automatizzare la formattazione in strumenti/CI/CD. Un esempio essenziale:
POST https://zerlo.net/formattersql?api=1
Content-Type: application/json
{
"sql": "select id,name from users where id=1",
"mode": "beautify",
"options": { "indent": 4, "keywordCase": "upper", "stripComments": false, "ensureSemicolon": true }
}
{
"ok": true,
"result": "SELECT id, name\nFROM users\nWHERE id = 1;",
"stats": { "ms": 4, "inLen": 43, "outLen": 47 }
}
// Node.js (fetch)
const res = await fetch("https://zerlo.net/formattersql?api=1", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sql: "SELECT * FROM orders WHERE created_at >= NOW() - INTERVAL '7 days';",
mode: "beautify",
options: { indent: 2, keywordCase: "upper", stripComments: true, ensureSemicolon: true }
})
});
const data = await res.json();
console.log(data.result);
<?php
// PHP
$payload = [
"sql" => "SELECT COUNT(*) FROM products;",
"mode" => "minify",
"options" => [ "indent" => 2, "keywordCase" => "preserve", "stripComments" => true, "ensureSemicolon" => true ]
];
$ch = curl_init("https://zerlo.net/formattersql?api=1");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true
]);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
8) Auto-test (passo-passo)
- Clicca nello strumento qui sotto su Auto-test – – vengono controllati automaticamente tre casi principali..
- Caso Beautify:: Keywords UPPER, Parole chiave UPPER, interruzioni chiare, indent pulito.
- Caso Minify:: Commenti rimossi (se l'opzione è attiva), output compatto.
- Caso Indent:: Cambio visibile tra 2/4/8 spazi..
- Il risultato appare nel pannello Auto-test; in caso di deviazioni: controllare le opzioni e, se necessario, cambiare modalità.
9) Consigli da professionisti, prestazioni e sicurezza
- Script di grandi dimensioni:: Dopo il Beautify suddividere in blocchi tematici (CTEs, DDL vs DML), quindi versionarli singolarmente..
- Ritmo delle revisioni:: Usa 'Accesso rapido' come modello standard; evita l'espansione incontrollata delle nuove query..
- Ridurre le fonti di errore:: „Forzare il punto e virgola“ attivarlo nelle pipeline di migrazione..
- Le stringhe rimangono invariate:: Il formatore non modifica contenuti tra virgolette; la logica di business rimane sicura..
- Privacy:: Nessuna esecuzione di SQL – solo testo. Non conservare contenuti sensibili in strumenti di terze parti in modo permanente..
- Facilitano i confronti:: Beautify, poi confronta con Git-Diff – le differenze saltano all'occhio..
10) Indicazioni sui dialetti e limiti
- MySQL/MariaDB: Parole chiave e funzioni standard vengono riconosciute bene..
- PostgreSQL/SQLite: CTEs/Window-Funktionen CTE/ Funzioni Window vengono rientrate in modo pulito;
RETURNINGsi presta.. - Esotici:: Sintassi dialettale molto specifica (ad es. hint proprietari) resta sostanzialmente invariata; la formattazione è generica..
- Nessuna analisi semantica:: Il formatore non «comprende» la logica – struttura solo il testo. Gli errori di syntax restano errori di syntax..
11) Risoluzione dei problemi e FAQ
„Non cambia nulla?“ – Verifica le modalità e le opzioni; l'input non deve essere vuoto.
„Doppio punto e virgola?“ – Opzione 'forzare' + presenza di ;: disattivare l'opzione.
„Commenti non rimossi“ – Attiva la rimozione dei commenti o imposta la modalità su 'Minify'.
„Query molto lunghe causano lag nel browser“ – Formattare blocchi di grandi dimensioni una volta alla volta o utilizzare l'API.
„Parole chiave modificate nelle stringhe?“ – Non dovrebbe accadere; verifica se erano effettive stringhe (stringhe tra virgolette, niente backticks).
12) Ora prova
Inizia qui: zerlo.net/formattersql