# SQL-formatter en minifier

Maak SQL leesbaar met elke clausule op een eigen regel, of minifieer het tot één regel, voor MySQL, PostgreSQL, SQLite, SQL Server en BigQuery.

https://codeknife.dev/nl/sql-formatter/

## Wat het doet

Maakt SQL leesbaar met elke clausule op een eigen regel, of perst het samen tot één regel. Het leest MySQL, PostgreSQL, SQLite, T-SQL (SQL Server) en BigQuery, naast standaard-SQL, en een syntaxfout komt met regel en kolom.

## Zo gebruik je het

1. Plak SQL, of sleep een `.sql`-bestand erin.
2. Kies **Formatteren** of **Minifiëren**, daarna het dialect, de hoofdletters van sleutelwoorden en de inspringing.
3. Kopieer of download het resultaat, of gebruik **Uitvoer als invoer gebruiken** om het de volgende invoer te maken.

## Voorbeelden

Formatteren van `select id,name from users where active=1` zet `SELECT`, `FROM` en `WHERE` op eigen regels, met de kolommen en voorwaarden eronder ingesprongen. Het geformatteerde resultaat minifiëren geeft `SELECT id,name FROM users WHERE active = 1`.

## Goed om te weten

- Alleen witruimte en, als je dat kiest, de hoofdletters van sleutelwoorden veranderen. Namen, strings en getallen blijven zoals getypt.
- Minifiëren haalt `--`- en `/* */`-commentaar weg, maar laat MySQL-commentaar `/*! */` en optimizer-hints `/*+ */` staan, want een database doet er iets mee.
- Kies het dialect van je database: backticks zijn MySQL, vierkante haken zijn T-SQL en `::`-casts zijn PostgreSQL.
- De formatter laadt de eerste keer dat je formatteert, dus dat eerste resultaat kan even duren. Minifiëren heeft geen download nodig.

## Waarom maakt het dialect uit?

Databases schrijven namen en operators verschillend: MySQL zet namen tussen backticks, T-SQL tussen vierkante haken en PostgreSQL kent :: casts en $$-strings. Met het verkeerde dialect kan geldige SQL niet worden gelezen of vreemd worden opgemaakt.

## Veelgestelde vragen

### Verandert formatteren wat mijn query doet?

Nee. Alleen witruimte en, als je dat kiest, de hoofdletters van sleutelwoorden veranderen. Namen, strings en getallen blijven zoals je ze typte. Minifiëren haalt commentaar weg, behalve de MySQL-varianten /*! */ en /*+ */, waar de database iets mee doet.

### Waarom meldt het een syntaxfout?

De formatter moet de query lezen om hem op te maken, dus hij stopt bij het eerste token dat hij niet kan lezen en geeft regel en kolom. Controleer eerst het dialect en dan de plek die hij aanwijst: een ontbrekende komma, aanhalingsteken of sluitende haak.

### Stuurt deze tool mijn SQL ergens naartoe?

Nee. Alles gebeurt in je browser. Wat je typt wordt nooit naar onze servers gestuurd.