SQL-formatter
Plak een SQL-statement van één regel dat is gekopieerd uit een logbestand of een ORM; de formatter splitst het op in ingesprongen clausules met een consistente schrijfwijze van sleutelwoorden, regeleinden vóór SELECT, FROM, WHERE en GROUP BY, en uitgelijnde kolommen in de projectie. Ondersteunt de dialecten MySQL, PostgreSQL, SQL Server, Oracle, SQLite en BigQuery; elk heeft licht verschillende sleutelwoorden en gereserveerde woorden.
Hoe het opmaken werkt
-
1
Plak uw SQL
Een blok op één regel, geminificeerde uitvoer van Hibernate, wat dan ook. Meerdere statements gescheiden door `;` worden allemaal opgemaakt.
-
2
Kies dialect en stijl
Het dialect bepaalt de lijst met sleutelwoorden; de stijl bepaalt de plaatsing van komma's (vooraan of achteraan), de inspringbreedte en of sleutelwoorden in hoofd- of kleine letters worden geschreven.
-
3
Tokens worden geparseerd, niet met regex vervangen
Een tokenizer verwerkt strings, commentaar, haakjes en subquery's correct. Stringliterals blijven letterlijk behouden.
-
4
Kopieer de opgemaakte uitvoer
Gevalideerde SQL: dezelfde semantiek, een nettere lay-out.
Vóór en na
Vóór:
SELECT u.id,u.name,COUNT(o.id) AS orders FROM users u LEFT JOIN orders o ON o.user_id=u.id WHERE u.created_at>='2024-01-01' GROUP BY u.id,u.name HAVING COUNT(o.id)>5 ORDER BY orders DESC LIMIT 50;
Na (komma vooraan, sleutelwoorden in hoofdletters, inspringing van 2 spaties):
SELECT
u.id
, u.name
, COUNT(o.id) AS orders
FROM users u
LEFT JOIN orders o
ON o.user_id = u.id
WHERE u.created_at >= '2024-01-01'
GROUP BY u.id, u.name
HAVING COUNT(o.id) > 5
ORDER BY orders DESC
LIMIT 50;
Belangrijke stijlkeuzes
- Hoofdletters versus kleine letters voor sleutelwoorden. Hoofdletters zijn traditioneel en gemakkelijk te scannen; kleine letters ogen netter in moderne code-editors met syntaxiskleuring.
- Komma vooraan versus achteraan. Een komma vooraan (
, col) maakt het eenvoudiger om één kolom uit te commentariëren; een komma achteraan (col,) leest natuurlijker in tekst. - Plaatsing van komma’s in
GROUP BY. Vaak één per regel voor lange clausules, op één regel voor korte. - Inspringing van JOIN.
ONop de volgende regel (hangende inspringing) versus op dezelfde regel. Lange voorwaarden hebben baat bij hangende inspringing. - Subquery’s. Spring de hele subquery in, niet alleen het openingshaakje.
Dialectspecifieke valkuilen
- MySQL-backticks versus dubbele aanhalingstekens in PostgreSQL voor identifiers.
WITH-CTE’s. MS SQL vereist een;vóórWITH; de formatter handelt dit af.- Vensterfuncties. Lange
OVER (...)-clausules hebben baat bijPARTITION BYenORDER BYdie over meerdere regels worden afgebroken. - BigQuery heeft
ARRAY_AGG,STRUCTen tabelsuffixen (*_yyyymmdd) die de tokenizer niet mag breken. - Oracle heeft de
(+)-syntaxis voor outer joins; de formatter behoudt deze, maar markeert haar als verouderd.
Wat de formatter niet doet
- Bugs verhelpen. Een ongeldige JOIN blijft ongeldig.
SELECT *uitbreiden. Kolomlijsten worden niet uit het schema afgeleid.- Query’s optimaliseren. Alleen lay-out, geen uitvoeringsplannen.
- Subquery’s herschrijven als CTE’s. Dat is een andere kwestie.
Veelgestelde vragen
Nee, het is puur cosmetisch. Spaties, regeleinden en de plaatsing van komma’s verschuiven, maar sleutelwoorden, operatoren, literals en identifiers blijven exact behouden.
Ondersteund: CREATE TABLE, ALTER, CREATE PROCEDURE en triggers. De formatter verwerkt blokconstructies (BEGIN ... END) en regelvoortzettingen binnen procedures.
Dat zou niet mogen; als het toch gebeurt, gaat het waarschijnlijk om een verkeerd dialect. Probeer een ander dialect. Meld aanhoudende fouten; wij behandelen ze als bugs.
Flink SQL en Cassandra CQL lijken op elkaar, maar hebben dialectspecifieke sleutelwoorden die de meeste formatters verminken. Gebruik ze met voorzichtigheid en controleer of de uitvoer werkt.
Gerelateerde tools
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
HTML-tekenreferentie
Een doorzoekbare lijst met HTML-entiteiten, hun benoemde en numerieke codes, plus kopiëren met één klik voor speciale tekens en symbolen.
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
Tool beschikbaar in andere talen
- SQL-formaterare [SV]
- SQLフォーマッター [JA]
- Formateador SQL [ES]
- SQL 포매터 [KO]
- تنسيق SQL [AR]
- Formatador SQL [PT]
- SQL-Formatter [DE]
- Formateur SQL [FR]
- Format SQL [ID]
- รูปแบบ SQL [TH]
- Định dạng SQL [VI]
- Formater SQL [PL]
- SQL 格式化器 [ZH]
- SQL Formatter [EN]
- Formatter SQL [IT]
- Форматтер SQL [RU]
- SQL Biçimlendirici [TR]