Het belang van leesbare SQL-code
Slecht geformatteerde SQL-code belemmert de leesbaarheid en bemoeilijkt het opsporen van fouten. Wanneer database-ontwikkelaars, data-analisten, databasebeheerders (DBA's) en ondersteunend personeel samenwerken aan complexe databases, is een consistente codestijl essentieel. Ongeorganiseerde queries met inconsistente regeleinden, willekeurig hoofdlettergebruik en onduidelijke inspringing verhogen de kans op fouten tijdens codereviews en debugging.
Door SQL-code systematisch te structureren, worden de logische stappen van een query direct zichtbaar. Dit versnelt niet alleen de foutopsporing, maar vereenvoudigt ook de overdracht van code binnen teams.
Ondersteunde SQL-dialecten en instellingen
Verschillende databasesystemen hanteren eigen standaarden en nuances voor SQL-syntaxis. De SQL-formatter ondersteunt tien specifieke SQL-dialecten om ervoor te zorgen dat trefwoorden en aanhalingstekens correct worden verwerkt volgens de verwachting van de doelendine:
- Standard SQL
- PostgreSQL
- MySQL
- MariaDB
- SQL Server (T-SQL)
- Oracle (PL/SQL)
- SQLite
- BigQuery
- Snowflake
- Spark SQL
Aanpassingsopties voor invoer en opmaak
De tool verwerkt SQL-invoer met een maximale lengte van 300.000 tekens. Bij het formatteren kunnen gebruikers de gewenste stijl nauwkeurig afstemmen via de volgende parameters:
- Inspringen: Keuze uit een inspringstijl van 2 spaties, 4 spaties of een tab.
- Trefwoorden: Regelt het hoofdlettergebruik voor SQL-sleutelwoorden met de opties HOOFDLETTERS, kleine letters of Behouden.
Analyse van query-uitvoer en statistieken
Na de verwerking toont de tool direct de resultaten in de browser. De uitvoer is verdeeld in statistische metrische gegevens en de geformatteerde code zelf:
- Regels: Het totale aantal regels in de geformatteerde SQL-query.
- Tekens: Het exacte aantal karakters in de opgemaakte query.
- Grootte: De totale bestandsgrootte van de geformatteerde SQL-code.
Wanneer de ingevoerde SQL-code syntactische fouten bevat, weigert de tool de opmaak uit te voeren en toont de foutmelding: "Kan deze SQL niet formatteren — controleer de syntaxis.". Als deze fout optreedt, blijft de voorgaande succesvolle uitvoer behouden en wordt deze niet overschreven door de foutmelding. Indien de invoer de limiet van 300.000 tekens overschrijdt, verschijnt de melding: "Deze query is te groot om te verwerken. Probeer een kleinere query.".
Met de knop "Wissen" worden zowel het invoer- als het uitvoerveld direct leeggemaakt, eventuele foutdetails verborgen en verschijnt de status "Gewist.".
Structuuranalyse versus database-uitvoeringsplannen
Een belangrijk kenmerk van deze tool is de mogelijkheid om een query clausule voor clausule te ontleden in begrijpelijk Nederlands. Deze uitlegfunctie verschilt wezenlijk van een database-uitvoeringsplan (zoals EXPLAIN in SQL-engines). Waar een uitvoeringsplan de fysieke en logische stappen beschrijft die een specifieke database-engine uitvoert om gegevens op te halen (inclusief indexscans en join-algoritmen), analyseert deze tool puur de syntactische structuur van de query.
Omdat de tool de query-opbouw ontleedt en niet de database-executie simuleert, werkt de uitlegfunctie ook op gedeeltelijke queries of leverancierspecifieke SQL-fragmenten. De tool kan maximaal 25 instructies tegelijk analyseren. Indien een query meer dan 25 instructies bevat, worden alleen de eerste 25 geanalyseerd, vergezeld van de opmerking: "Alleen de eerste 25 worden weergegeven.".
Verklaring van instructietypen en clausulerollen
De tool identificeert het type SQL-instructie en wijst hier een specifieke beschrijving aan toe onder de noemer "Kind". Daarnaast wordt de functionele rol van elke afzonderlijke clausule binnen die instructie verklaard onder "Role".
Instructietypen (Kind)
De tool herkent en classificeert de volgende SQL-instructies:
| Instructietype | Beschrijving in de interface |
|---|---|
SELECT |
Een query die rijen leest en retourneert zonder iets te wijzigen. |
INSERT |
Voegt nieuwe rijen toe aan een tabel. |
UPDATE |
Wijzigt waarden in rijen die al bestaan. |
DELETE |
Verwijdert rijen uit een tabel. |
CREATE |
Definieert een nieuw object zoals een tabel, view of index. |
ALTER |
Wijzigt de definitie van een bestaand object. |
DROP |
Verwijdert een object definitief uit de database. |
TRUNCATE |
Maakt een tabel leeg en verwijdert alle rijen. |
WITH |
Bouwt een benoemd tijdelijk resultaat (CTE) voor de query die volgt. |
MERGE |
Voegt rijen toe, werkt ze bij of verwijdert ze in één gecombineerde bewerking. |
OTHER |
Een SQL-instructie. |
Clausulerollen (Role)
Voor de verschillende onderdelen binnen een instructie definieert de tool de volgende rollen:
- SELECT: De kolommen en expressies die worden geretourneerd.
- SELECT DISTINCT: De geretourneerde kolommen, waarbij dubbele rijen zijn verwijderd.
- FROM: De tabel (of subquery) waaruit de gegevens worden gelezen.
- JOIN: Combineert elke rij met overeenkomstige rijen uit een andere tabel.
- WHERE: Behoudt alleen de rijen die aan deze voorwaarde voldoen.
- GROUP BY: Groepeert rijen zodat aggregaten zoals COUNT of SUM per groep kunnen worden berekend.
- HAVING: Filtert die groepen nadat de aggregaten zijn berekend.
- ORDER BY: Sorteert de resulterende rijen.
- LIMIT: Beperkt het aantal rijen dat wordt geretourneerd.
- OFFSET: Slaat een aantal rijen over voordat er resultaten worden geretourneerd.
- UNION: Combineert deze resultaten met die van een andere query.
- VALUES: De rijwaarden die worden ingevoegd.
- INTO: De tabel die de nieuwe rijen ontvangt.
- SET: De nieuwe toe te wijzen kolomwaarden.
- UPDATE: De tabel waarvan de rijen worden gewijzigd.
- DELETE FROM: De tabel waaruit rijen worden verwijderd.
- WITH: Definieert een benoemde tijdelijke resultaatset die hieronder wordt gebruikt.
- STATEMENT: De instructie, ongewijzigd weergegeven.
Lokale verwerking en privacy
Bij het werken met databasequeries is de bescherming van gevoelige gegevens en database-ontwerpen een belangrijke prioriteit. Deze tool voert alle formatteringstaken en structuuranalyses lokaal uit binnen de webbrowser van de gebruiker. Er vindt geen gegevensoverdracht plaats naar externe servers en er wordt niets geüpload naar BroBroGo. De ingevoerde SQL-code verlaat de pagina nooit. Daarnaast slaat de tool concepten en gebruikersvoorkeuren voor het thema lokaal op in de browser van de gebruiker.
Veelgestelde vragen
Welke SQL-dialecten kunnen worden geformatteerd?
Standaard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake en Spark SQL. Kies het dialect dat bij je database past, zodat trefwoorden en aanhalingstekens worden verwerkt zoals die engine verwacht.
Hoe werkt de uitleg in begrijpelijk Nederlands?
Het leest de structuur van de query — het type instructie en elke clausule zoals SELECT, FROM, JOIN, WHERE, GROUP BY en ORDER BY — en legt uit wat elke clausule doet. Het beschrijft de opbouw van de query, niet een database-uitvoeringsplan, dus het werkt ook op gedeeltelijke of leverancierspecifieke SQL.
Is het veilig om productie-queries te plakken?
Ja. Het formatteren en analyseren gebeurt volledig in je browser — je SQL verlaat de pagina nooit.