Naar de inhoud

Ontwikkeltool · alleen in de browser

SQL-formatter

Plak een query, kies het databasedialect en maak compacte SQL leesbaar. Je SQL blijft in dit browsertabblad.

Op te maken SQL

Maximaal 100.000 tekens. SQL wordt opgemaakt en nooit uitgevoerd.

0 / 100.000

Niets wordt geüpload, opgeslagen, met een database verbonden of als query uitgevoerd.

Opgemaakte SQL

Je opgemaakte SQL verschijnt hier.

SQL veilig opmaken en het resultaat lezen

Deze formatter is bedoeld voor ontwikkelaars, analisten, studenten en iedereen die een compacte query leesbaarder wil maken voor beoordeling. Hij verandert witruimte en, indien gevraagd, hoofdlettergebruik van sleutelwoorden. Hij verbindt niet met een database, valideert geen schema, optimaliseert geen query en bewijst niet dat de query correct is.

Zo gebruik je de SQL-formatter

  1. Plak één query of een kort SQL-script in de invoer. Kies het dialect van de database die de code uiteindelijk uitvoert. Standaard-SQL is een praktische terugvaloptie voor gebruikelijke SELECT-, INSERT-, UPDATE- en DELETE-instructies, maar herkent het dialect niet automatisch. Kies PostgreSQL, MySQL, MariaDB, SQLite, BigQuery, SQL Server of Snowflake wanneer de query specifieke functies van dat systeem gebruikt.
  2. Kies twee of vier spaties en bepaal of herkende sleutelwoorden hoofdletters, kleine letters of hun oorspronkelijke schrijfwijze moeten krijgen. Selecteer SQL opmaken of druk op Ctrl/Command+Enter. De uitvoer verschijnt naast de invoer op een breed scherm en eronder op een smal scherm. Lees de melding, controleer de code en kopieer het resultaat. De invoer of een optie bewerken markeert de vorige uitvoer als verouderd totdat je opnieuw opmaakt.

Wat opmaken verandert en behoudt

De formatter verdeelt de query in tokens, plaatst belangrijke clausules zoals SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING, ORDER BY en LIMIT op leesbare regels en laat geneste uitdrukkingen inspringen. Hoofdlettergebruik geldt alleen voor herkende SQL-sleutelwoorden. Identifiers, identifiers tussen aanhalingstekens, getallen, operatoren, tekenreeksinhoud, regelopmerkingen, blokopmerkingen en ondersteunde placeholders blijven gegevens en worden niet inhoudelijk herschreven.

Opmaak bewijst geen semantische juistheid. Witruimte kan betekenis hebben binnen aangehaalde tekenreeksen, leverancierspecifieke blokken en templatetalen. Deze pagina gebruikt de onderhouden bibliotheek sql-formatter met een beperkte, voorspelbare reeks opties. Parameterwaarden worden niet ingevuld. Gebruikelijke placeholders zoals ?, :name, $1 en @name blijven behouden wanneer het gekozen dialect ze ondersteunt. Vergelijk belangrijke migraties, opgeslagen procedures of gegenereerde SQL altijd met het origineel voordat je ze uitvoert.

Kies het dialect voordat je de query beoordeelt

SQL-producten delen een kerntaal, maar verschillen in aanhalingstekens, functies, procedureblokken, operatoren, gegevenstypen en instructiesyntaxis. PostgreSQL-tekenreeksen met dollartekens, BigQuery-paden met backticks en QUALIFY, SQL Server-haakjes en TOP, MySQL-backticks en LIMIT en Snowflake-clausules laten zien waarom het dialect belangrijk is. Standaard-SQL ondersteunt een bruikbare gemeenschappelijke subset; het leidt de database niet af uit de tekst.

Als opmaken mislukt, behoud dan de invoer, kies het werkelijke doeldialect en probeer opnieuw. Bevat de query toepassingstemplates zoals {{ column }} of aangepaste macro's, vervang deze dan tijdelijk door placeholders die je database accepteert of maak kleinere delen van de omringende SQL op. Verwijder een templatemarkering niet blindelings: de toepassing kan deze nodig hebben, ook als het geen SQL is.

De uitvoer gebruiken bij reviews en in editors

Kopieer het opgemaakte resultaat naar een tijdelijk bestand of versiebeheerdiff en controleer de structuur voordat je logica wijzigt. Consistente regelafbrekingen bij clausules maken ontbrekende joinvoorwaarden, onverwachte AND/OR-groepering en dubbele uitdrukkingen beter zichtbaar, maar de formatter controleert daar niet op. Een nette indeling helpt bij lezen en is geen goedkeuring om te publiceren.

De uitvoer is platte tekst. Er is geen account, geschiedenis, download, deellink, databaseverbinding of cloudopslag. Bewaar het origineel in versiebeheer of op een andere vertrouwde plek. Sluiten of vernieuwen van het tabblad wist de tekst. Omdat de verwerking in de browser blijft, stuurt deze pagina geplakte SQL niet bewust via een opmaak-API; algemene siteanalyses mogen de SQL-invoer nooit bevatten.

Twee concrete opmaakvoorbeelden

Join, tekenreeks, opmerking en benoemde placeholder

Met PostgreSQL en hoofdletters voor sleutelwoorden worden de clausules zichtbaar, terwijl de tekenreeks, opmerking en placeholder :minimum ongewijzigd blijven.

select u.id,u.name from users u -- active accounts
join orders o on o.user_id=u.id where u.status='active user' and o.total>:minimum order by o.created_at desc;

Positionele placeholder en geneste query

Een PostgreSQL-placeholder $1 blijft een placeholder. De geneste SELECT springt in; de tool benadert PostgreSQL niet en controleert niet of de tabel bestaat.

select * from events where account_id=$1 and created_at>(select max(created_at) from archive);

Beperkingen en veelvoorkomende fouten

  • De invoer is beperkt tot 100.000 tekens, zodat één onbedoeld gegenereerd bestand de pagina niet onbeperkt kan blokkeren. Splits grotere scripts tussen instructies.
  • Lege invoer wordt geweigerd zonder te wissen. Een ontleedfout behoudt ook de oorspronkelijke tekst, zodat je het dialect of de templatesyntaxis kunt wijzigen.
  • De formatter voert geen SQL uit, inspecteert geen tabellen, controleert geen rechten of onveilige UPDATE- en DELETE-instructies, optimaliseert geen indexen en converteert niet tussen dialecten.
  • Opmerkingen en tekenreeksen blijven in principe behouden, maar niet-ondersteunde leverancierssyntaxis, procedurecode en templates moet je handmatig vergelijken.
  • Kopiëren gebruikt het browserklembord. Als toestemming ontbreekt, selecteer je de zichtbare platte tekst en kopieer je deze handmatig.

Veelgestelde vragen

Wordt mijn SQL geüpload of uitgevoerd?

Nee. Opmaken gebeurt in dit browsertabblad. De pagina verbindt niet met een database en voert de query niet uit. Dit is geen garantie over elke browserextensie of elk apparaat dat je gebruikt.

Welk dialect moet ik kiezen?

Kies de database die de query uitvoert. Gebruik Standaard-SQL alleen voor gemeenschappelijke syntaxis of als het doel onbekend is en controleer leverancierspecifieke delen handmatig.

Blijven opmerkingen, tekenreeksen en placeholders behouden?

Ondersteunde opmerkingen, aangehaalde tekenreeksen en gebruikelijke placeholders zijn tokens en blijven behouden. Controleer templates en procedurele SQL zorgvuldig, omdat niet-ondersteunde syntaxis kan mislukken.

Maakt opmaak een query veiliger of sneller?

Nee. Het verandert de weergave. Autorisatie, parameters, transactieveiligheid, queryplannen, indexen en productiebeoordeling zijn afzonderlijke taken.

Waarom is opmaken mislukt?

De meest voorkomende oorzaken zijn een verkeerd dialect of template-/leverancierssyntaxis buiten de ondersteunde grammatica van de bibliotheek. Bewaar de invoer, kies het juiste dialect en isoleer het niet-ondersteunde deel.