SQL-conversie (SQL Conversion) is het proces waarbij data uit een SQL-script wordt geëxtraheerd en opnieuw wordt georganiseerd in andere gegevensformaten zoals JSON, CSV, XML, YAML, HTML, Markdown enz. SQL (Structured Query Language) is de standaardquerytaal voor relationele databases, database-exporttools (zoals mysqldump, pg_dump) exporteren data meestal als INSERT-statements in een SQL-script. Dit formaat is wel handig voor database-import, maar onhandig voor programma's, data-analyse of uitwisseling tussen systemen, dus is conversie naar meer universele formaten nodig.
Veelvoorkomende SQL-data-exportscripts bevatten twee soorten statements: CREATE TABLE voor het definiëren van de tabelstructuur (kolomnamen, gegevenstypen, constraints) en INSERT INTO ... VALUES (...) voor het invoegen van specifieke data. Deze tool parseert beide soorten statements, extraheert kolomdefinities en type-informatie uit CREATE TABLE, feitelijke datarijen uit INSERT, en reorganiseert vervolgens de uitvoer in het door de gebruiker gekozen formaat. Het hele parseerproces wordt lokaal in de browser uitgevoerd, zonder afhankelijk te zijn van backendservices.
Waarom SQL converteren naar andere formaten? SQL-scripts zijn wel universeel, maar onhandig in de volgende scenario's: ten eerste is het voor frontend-programma's veel eenvoudiger om JSON te lezen dan om SQL te parsen, zonder een SQL-parser te hoeven introduceren; ten tweede ondersteunen spreadsheetprogramma's zoals Excel, Google Sheets van nature CSV en niet SQL; ten derde zijn in scenario's voor configuratiebestanden en documentatie YAML, Markdown beter leesbaar dan SQL; ten vierde wordt voor gegevensuitwisseling tussen systemen vaak XML of JSON gebruikt als neutraal formaat. Na conversie van SQL naar deze universele formaten kan de data direct worden verbruikt door meer tools en talen.
De SQL-parser van deze tool is handgeschreven en gericht op het parsen van INSERT- en CREATE TABLE-statements. Voor INSERT worden zowel enkelwaardige tuples (INSERT INTO t (a,b) VALUES (1,2)) als multi-value tuples (INSERT INTO t (a,b) VALUES (1,2), (3,4), (5,6)) ondersteund, met automatische mapping van data op kolomnamen. Voor CREATE TABLE worden parsing van kolomdefinities, gegevenstypen (VARCHAR(255), INT, DECIMAL(10,2) enz. met lengte tussen haakjes), constraints en clausules NOT NULL, PRIMARY KEY, IF NOT EXISTS ondersteund, met correcte verwerking van geneste haakjes om foutieve splitsing te voorkomen.
Typeherkenning is een sleutelaspect van SQL-conversie. De tool bepaalt automatisch het type op basis van de letterlijke vorm van de waarde: waarden tussen enkele of dubbele aanhalingstekens zijn strings; NULL (hoofdletterongevoelig) is leeg; TRUE/FALSE zijn booleaanse waarden; 0x..., X'...', B'...' zijn hexadecimale literals; zuivere getallen (met minteken, decimale punt, wetenschappelijke notatie) zijn getallen. Deze automatische typeherkenning zorgt ervoor dat geconverteerde formaten zoals JSON, CSV de semantiek van de oorspronkelijke data behouden (bijv. getal 1 wordt niet string "1"), wat handig is voor correcte verwerking door downstream-programma's.
Verschillen in quote-stijl tussen database-dialecten zijn een veelvoorkomende valkuil bij SQL-parsing. MySQL gebruikt standaard backticks (`) voor het verpakken van identifiers (tabelnamen, kolomnamen), PostgreSQL gebruikt dubbele aanhalingstekens ("), SQL Server/T-SQL gebruikt vierkante haken ([]), standaard SQL gebruikt ook dubbele aanhalingstekens. De unquoteIdentifier-functie van deze tool herkent en verwijdert deze quotes automatisch, en verwerkt tegelijkertijd escaping binnen quotes (zoals `` → `, "" → "). In SQL-herstelmodus worden INSERT-statements opnieuw gegenereerd met de bijbehorende quote-stijl voor het doeldialect.
SQL string-escaping is een andere belangrijke technische detail. De SQL-standaard definieert escapen van een enkel aanhalingsteken binnen een string door verdubbeling ('It''s' staat voor It's), MySQL ondersteunt standaard ook backslash-escaping (\n, \t, \', \", \\\\, \0, \Z enz.). De string-parser van deze tool verwerkt beide escapemechanismen tegelijk, en herstelt correct de oorspronkelijke stringinhoud. Bij conversie naar CSV worden velden met komma's, aanhalingstekens, regeleinden opnieuw geëscaped volgens de RFC 4180-standaard; bij conversie naar XML/HTML worden speciale tekens zoals &, <, >, ", ' geëscaped.
Pure frontend-verwerking is het kernontwerpprincipe van deze tool. Alle SQL-parsing en gegevensconversie worden uitgevoerd in de JavaScript-engine van de browser, zonder data naar een server te sturen. Dit betekent dat zelfs als het SQL-script privacygevoelige gebruikersdata, commercieel gevoelige informatie of interne databasestructuur bevat, dit niet naar buiten lekt. Dit ontwerp is vooral geschikt voor het verwerken van export van productiedatabases, zonder zorgen over data-compliance. Tegelijkertijd heeft frontend-verwerking geen netwerkvertraging, de conversiesnelheid wordt alleen beperkt door CPU en geheugen van het apparaat.
Vergeleken met traditionele command-line SQL-conversietools (zoals sql2csv, sqlparser) heeft deze tool verschillende voordelen: geen installatie en configuratie van omgeving nodig, open de webpagina en gebruik; biedt een visuele interface voor real-time voorbeeld van conversieresultaat; ondersteunt meerdere uitvoerformaten met één klik wisselen; ingebouwde voorbeelddata en help-documentatie; mobiel responsief ontwerp voor gebruik overal. De tool is echter gericht op data-extractie en verwerkt geen complexe SQL-dialectverschillen (zoals JSONB-operatoren van PostgreSQL, ON DUPLICATE KEY UPDATE van MySQL) en geavanceerde features (opgeslagen procedures, functies, triggers); bij dergelijke behoeften wordt aangeraden om native database-tools of gespecialiseerde ETL-platformen te gebruiken.
Bij het gebruik van de SQL-conversietool zijn er enkele best practices om op te merken: ten eerste, controleer voor conversie of het SQL-script complete data bevat (INSERT-statements) en niet alleen query's (SELECT), SELECT wordt niet geparseerd; ten tweede, bij SQL-scripts met meerdere tabellen wordt aangeraden om «Meerdere tabellen apart uitvoeren» in te schakelen om tabelstructuurinformatie te behouden; ten derde, bij verwerking van SQL met Chinese tekens wordt voor CSV-uitvoer aangeraden om «BOM opnemen» in te schakelen om correcte coderingsherkenning door Excel te garanderen; ten vierde, bij verwerking van grote SQL dump wordt aangeraden om «pretty-print uitvoer» uit te schakelen om de uitvoergrootte te verminderen; ten vijfde, bij cross-database migratie kan de modus «SQL-herstel» worden gebruikt om dialect te wisselen, maar complexe types (zoals PostgreSQL arrays, JSONB) kunnen handmatige aanpassing vereisen.