tigtools

SQL Formatter

Plak een query, kies het dialect van uw database en krijg overzichtelijke SQL met consistente inspringing. Er wordt niets naar een server verzonden.

Werkt in je browser Geen registratie nodig

Inspringing

Zo gebruik je deze tool

  1. Plak een of meer SQL-instructies of klik op ‘Probeer een voorbeeld’.
  2. Kies het dialect van uw database, zodat de trefwoorden, aanhalingstekens en operatoren ervan worden herkend.
  3. Stel de hoofdletterinstelling voor trefwoorden en de inspringing in. De opgemaakte query verschijnt tijdens het typen rechts.
  4. Klik op Minify voor een versie op één regel. Kopieer het resultaat of download het als .sql-bestand.

Hoe het werkt

De opmaak wordt uitgevoerd met de open-sourcebibliotheek sql-formatter. Deze splitst de query op in tokens volgens de regels van het gekozen dialect, zet elke belangrijke clausule (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY…) op een eigen regel, springt in voor kolomlijsten en voorwaarden en past de hoofdletterinstelling voor trefwoorden toe. De tool wijzigt witruimte en, als u dat aangeeft, de hoofdletters van trefwoorden; identifiers, tekenreeksen en opmerkingen blijven behouden. Het juiste dialect kiezen is belangrijk: in MySQL worden namen bijvoorbeeld tussen backticks gezet, in SQL Server tussen vierkante haken en in PostgreSQL begint $$ een functiebody.

De formatter is een hulpmiddel voor de opmaak, geen database. Hij controleert niet of tabellen of kolommen bestaan en valideert niet de volledige grammatica. Daardoor kan ongeldige SQL zonder melding worden opgemaakt. Als de invoer niet kan worden verwerkt, bijvoorbeeld door een niet-gesloten haakje, meldt de tool de regel en kolom waar hij is gestopt.

Minify werkt anders: het behoudt alle tokens, voegt alleen elke reeks witruimte samen tot één spatie en verwijdert opmerkingen. Optimalisatiehints zoals /*+ INDEX(t) */ en MySQL-opmerkingen zoals /*! … */ blijven behouden, omdat ze het gedrag veranderen. Tekenreeksen, tussen aanhalingstekens geplaatste identifiers en dollar-gequote bodies worden ongewijzigd gekopieerd. Als een aanhalingsteken of opmerking niet wordt afgesloten, stopt Minify met een foutmelding in plaats van te gokken.

Voorbeelden

Een query uit een log lezen

In een log met trage queries staat een regel van 400 tekens. Met het MySQL-dialect en trefwoorden in hoofdletters wordt dit een leesbaar blok waarin elke JOIN en WHERE-voorwaarde op een eigen regel staat. Zo is de ontbrekende index gemakkelijk te vinden.

Een consistente stijl voor codebeoordelingen

Een team maakt elke migratie op met het PostgreSQL-dialect, trefwoorden in kleine letters en een inspringing van 4 spaties voordat de wijzigingen worden vastgelegd. Zo tonen verschillen alleen echte wijzigingen.

SQL in code opnemen

Minify zet een rapportquery met opmerkingen en meerdere regels om naar één regel, zoals SELECT id, name FROM users WHERE active = 1 ORDER BY name, klaar om in een tekenreeks in een script te plakken.

Veelgestelde vragen

Welke databases worden ondersteund?

Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino/Presto, DuckDB, IBM Db2, SingleStoreDB, TiDB en Couchbase N1QL.

Verandert de opmaak wat mijn query doet?

Dat zou niet mogen: alleen witruimte en, als u die optie kiest, de hoofdletterinstelling van trefwoorden veranderen. Hoofdletters maken in SQL voor trefwoorden geen verschil. Controleer de gegenereerde uitvoer wel voordat u die op productiegegevens uitvoert, vooral bij ongebruikelijke dialectfuncties.

Waarom kreeg ik de melding ‘kon niet worden opgemaakt’?

De tokenizer is iets tegengekomen dat hij niet kon plaatsen, vaak een niet-gesloten haakje of aanhalingsteken, of syntaxis uit een ander dialect. Controleer de regel en kolom in de melding en zorg dat het gekozen dialect overeenkomt met uw database.

Valideert de tool mijn SQL?

Nee. De tool is niet verbonden met een database en kent uw schema niet. Een query kan wel worden opgemaakt, maar toch mislukken wanneer u die uitvoert.

Privacy

Uw SQL wordt met JavaScript in uw browser opgemaakt. De SQL wordt niet geüpload of opgeslagen en niet opgenomen in analytics. De tool maakt nooit verbinding met een database.