SQL Formatteerhulpmiddel
Enter SQL on the left to start formatting
GeekFormat SQL-formatterhulpmiddel, verfraait en organiseert snel rommelige SQL-query's. Ondersteunt 20 database-dialecten zoals MySQL, PostgreSQL, SQLite, SQL Server, Oracle enz., aanpasbare formatteringsopties: hoofdlettergebruik van trefwoorden, inspringstijl, positie van regeleinden voor operatoren, expressiebreedte en biedt 4 vooraf ingestelde stijlen met één klik. Inclusief functies voor SQL-compressie en syntaxisvalidatie, ondersteunt uploaden/downloaden van bestanden, URL-delen, sneltoetsen, en biedt syntaxismarkering en aanpasbaar paneellay-out op basis van de CodeMirror 6-editor. Automatische formattering in realtime na invoer, volledig lokale verwerking in de browser, SQL-instructies worden niet naar de server verzonden.
Gerelateerde aanbevelingen
Over SQL-formattering
SQL-formattering (SQL Formatting / SQL Beautification) verwijst naar het aanpassen van witruimte (regeleinden, inspringing, spaties) en hoofdlettergebruik van trefwoorden in SQL-instructies via geautomatiseerde hulpmiddelen, zodat ze een consistente, goed leesbare opmaakstructuur hebben. Als declaratieve querytaal omvat een complexe query vaak meerdere clausules zoals JOIN van meerdere tabellen, geneste subquery's, meerdere WHERE-voorwaarden, GROUP BY-groepering, HAVING-filtering, ORDER BY-sortering enz., zonder formattering wordt alle inhoud samengeperst op één regel of heeft rommelige inspringing, wat de leesbaarheid en onderhoudsefficiëntie ernstig beïnvloedt. Geformatteerde SQL plaatst elke clausule op een onafhankelijke regel via de juiste regeleinden en inspringing, de geneste hiërarchie wordt uitgedrukt door inspringing, waardoor de lezer snel de querystructuur kan begrijpen.
Waarom is SQL-formattering belangrijk? In team samenwerkingsomgevingen hebben verschillende ontwikkelaars verschillende codeerstijlvoorkeuren — sommigen houden van trefwoorden in hoofdletters, anderen in kleine letters; sommigen gebruiken 2 spaties inspringing, anderen 4 spaties of Tab; sommigen plaatsen AND aan het begin van de regel, anderen aan het eind. Deze stijlverschillen op zichzelf hebben geen invloed op SQL-uitvoering, maar tijdens codebeoordeling (Code Review) genereren ze veel zinloze diffs, de beoordelaar moet onderscheiden welke echte logische wijzigingen zijn en welke alleen opmaakaanpassingen zijn. Uniforme SQL-formatteringsregels en geautomatiseerde formatteringshulpmiddelen kunnen stijlgeschillen elimineren, waardoor het team zich kan richten op de bedrijfslogica zelf.
De kernregels van SQL-formattering omvatten meestal de volgende aspecten: ten eerste, hoofdlettergebruik van trefwoorden — SQL-gereserveerde woorden zoals SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP zijn meestal in hoofdletters om ze te onderscheiden van identifiers (of uniform in kleine letters volgens teamnormen); ten tweede, regeleinde voor clausules — elke hoofdclausule (SELECT/FROM/WHERE/GROUP BY/ORDER BY enz.) staat op een onafhankelijke regel; ten derde, uitlijning van kolomnamen — meerdere kolomnamen in de SELECT-lijst nemen elk een regel in beslag en worden verticaal uitgelijnd; ten vierde, inspringniveaus — subquery's, JOIN-voorwaarden, geneste CASE-uitdrukkingen enz. weerspiegelen hiërarchie door extra inspringing; ten vijfde, operatorpositie — logische operatoren zoals AND/OR worden uniform aan het begin of einde van de regel geplaatst.
SQL-formattering van verschillende database-dialecten heeft zijn bijzonderheden. MySQL gebruikt achterwaartse aanhalingstekens (`) om identifiers te citeren, PostgreSQL gebruikt dubbele aanhalingstekens ("), SQL Server gebruikt vierkante haken ([]); MySQL gebruikt LIMIT voor paginering, PostgreSQL ondersteunt LIMIT/OFFSET, SQL Server gebruikt TOP of OFFSET/FETCH, Oracle gebruikt ROWNUM; PostgreSQL heeft de ::-typeconversieoperator, MySQL heeft achterwaartse aanhalingsteken-escaping, SQL Server heeft identifiers tussen vierkante haken. Deze dialectverschillen vereisen dat de formatter specifieke syntactische elementen van specifieke databases kan herkennen, anders kan hij speciale syntaxis onjuist als fouten beoordelen of trefwoorden onjuist splitsen. Dit hulpmiddel is geïmplementeerd op basis van de sql-formatter-bibliotheek en biedt gespecialiseerde syntaxisondersteuning voor 20 belangrijke SQL-dialecten.
SQL-compressie (SQL Minification) is de omgekeerde bewerking van formattering en is in bepaalde scenario's zeer nuttig. SQL die wordt afgedrukt in toepassingslogboeken, SQL gegenereerd door ORM-frameworks (zoals Hibernate, MyBatis, Django ORM, SQLAlchemy), SQL vastgelegd door databaseprestatiebewakingshulpmiddelen, heeft vaak een gecomprimeerd formaat in één regel zonder regeleinden, wat erg onvriendelijk is voor probleemoplossing — u moet eerst formatteren om te kunnen lezen. Omgekeerd, wanneer het nodig is om SQL in te sluiten in codestrings (zoals tekenreeksconcatenatie in Java/Python/JavaScript), te schrijven naar configuratiebestanden, door te geven via URL-parameters of te delen in chattools die geen meerregelige tekst ondersteunen, kan comprimeren naar één regel opmaakproblemen voorkomen die worden veroorzaakt door regeleinden en inspringing.
Het kiezen van de juiste formatteringsstijl vereist het overwegen van teamnormen en gebruiksscenario's. De stijl met trefwoorden in hoofdletters is de traditionele conventie van SQL, in het druktijdperk konden trefwoorden in hoofdletters met de hand of met typemachine geschreven SQL leesbaarder maken, vandaag de dag wordt het nog steeds door veel teams en organisaties gebruikt. De stijl met trefwoorden in kleine letters wordt steeds populairder op moderne codeplatforms zoals GitHub, omdat kleine letters visueel zachter zijn, en met syntaxismarkering van moderne editors is het niet langer nodig om trefwoorden te onderscheiden door hoofdlettergebruik. Inspringing van 2 spaties komt vaker voor bij frontend-ontwikkelaars, 4 spaties komt vaker voor bij backend Java/C#-ontwikkelaars. Tab-inspringing stelt verschillende ontwikkelaars in staat om de weergavebreedte in de editor aan te passen. Het plaatsen van logische operatoren AND/OR aan het begin van de regel vergemakkelijkt het scannen van elke voorwaarde bij het lezen van lange lijsten met voorwaarden; plaatsen aan het eind van de regel sluit meer aan bij de Engelse leesgewoonte.
Het implementatieprincipe van SQL-formatteringshulpmiddelen is voornamelijk gebaseerd op lexicale analyse (Tokenization) en syntactische analyse. Bibliotheken zoals sql-formatter splitsen de SQL-tekenreeks eerst op in een reeks tokens (trefwoorden, identifiers, letterlijke waarden, operatoren, leestekens, opmerkingen enz.), en herschikken deze tokens vervolgens volgens syntactische regels (verschillende dialecten hebben verschillende regelsets), waarbij regeleinden en inspringing op de juiste posities worden ingevoegd. In tegenstelling tot algemene codeformatters (zoals Prettier), moeten SQL-formatters de specifieke syntactische structuur van SQL begrijpen (zoals JOIN...ON-voorwaarden, CASE WHEN...END-uitdrukkingen, haakjesgenesting van subquery's) om correct in te springen, niet alleen op basis van accolades of haakjesovereenkomst.
Let bij het gebruik van SQL-formatteringshulpmiddelen op de volgende punten: ten eerste, formattering valideert niet de semantische correctheid van SQL — syntactisch correcte maar logisch foutieve SQL (zoals verkeerd geschreven JOIN-voorwaarde, ontbrekende WHERE-voorwaarde) blijft na formattering foutief, formattering verbetert alleen de opmaak, niet de logica; ten tweede, in zeldzame randgevallen kan het formatteringshulpmiddel resultaten genereren die verschillen van de originele SQL in witruimtegevoelige scenario's (zoals spaties in tekenreeksconstanten, specifieke opmerkingposities), het wordt aanbevolen om na formattering een eenvoudige verificatie uit te voeren; ten derde, voer SQL die door het formatteringshulpmiddel is gegenereerd niet direct uit in een productieomgeving zonder te testen, met name SQL met dynamische parameters; ten vierde, voor SQL die gevoelige gegevens bevat (wachtwoorden, sleutels, PII), gebruikt u lokale formatteringshulpmiddelen (zoals dit hulpmiddel) in plaats van online hulpmiddelen om het risico op gegevenslek te voorkomen.
Toepassingsgevallen
- Het organiseren van grote blokken SQL-opgeslagen procedures en complexe query's met tabelverbindingen zonder opmaak bij het overnemen van oude projecten, om snel de bedrijfslogica te begrijpen
- Het uniformeren van de SQL-stijl vóór de codebeoordeling van het team, het elimineren van diff-ruis veroorzaakt door persoonlijke opmaakvoorkeuren, zich richten op logische beoordeling
- Gecomprimeerde SQL in één regel gekopieerd uit logboeken of console, formatteren om het lezen en oplossen van problemen te vergemakkelijken
- Bij het schrijven van technische documenten en blogs, het insluiten van geformatteerde SQL-voorbeelden in het document om professionaliteit en leesbaarheid te vergroten
- Wanneer de uit databaseclients geëxporteerde SQL een rommelige opmaak heeft, opnieuw formatteren naar de uniforme stijl van het team voordat de code wordt ingediend
- Bij het voorbereiden van interviews of technische presentaties, het formatteren van SQL-demonstratie-instructies voor gebruik in dia's en whiteboarduitleg
- Bij het oplossen van SQL-fouten, het formatteren van rommelige geneste subquery's om structurele problemen te vinden zoals niet-overeenkomende haakjes en ontbrekende trefwoorden
- SQL-logboeken gegenereerd door ORM-frameworks hebben meestal een gecomprimeerd formaat zonder regeleinden, formatteren om de daadwerkelijk uitgevoerde query te analyseren
- Bij het ontwikkelen van gegevensmigratiescripts, het formatteren van tabelaanmaakinstructies en INSERT-instructies om de onderhoudbaarheid te verbeteren
- Eerst de opmaak uniformeren voordat verschillen tussen SQL-versies worden vergeleken, om te voorkomen dat puur opmaakverschillen de codebeoordeling verstoren
- Bij het leren van SQL, het formatteren van voorbeeldquery's om de hiërarchie van JOIN, subquery's en GROUP BY te begrijpen door duidelijke inspringing en regeleinden
- Bij het delen van SQL-fragmenten met collega's, eerst formatteren en vervolgens delen via URL-link, de ontvanger opent en ziet hetzelfde geformatteerde resultaat
Hoe te gebruiken
- Selecteer het database-dialect (standaard MySQL, ondersteunt 20 SQL-dialecten) om ervoor te zorgen dat de formatter de syntaxis correct herkent
- Plak de te formatteren SQL-instructies in het bewerkingsgebied aan de linkerkant, of klik op de uploadknop om .sql/.txt-bestanden te importeren, u kunt ook voorbeeld-SQL laden in het voorbeeldmenu
- Klik op de formatterknop (Shift+Cmd/Ctrl+F) of wacht op automatische formattering (wordt automatisch geactiveerd 800 ms na invoer), het geformatteerde resultaat wordt direct aan de rechterkant weergegeven
- Als u de opmaak wilt aanpassen, klikt u op de instellingenknop om het configuratiepaneel uit te vouwen, past u opties aan zoals hoofdlettergebruik van trefwoorden, inspringing, regeleinden, of selecteert u een vooraf ingestelde stijl; als u compressie in één regel nodig hebt, klikt u op de comprimerenknop
- Klik op de kopieerknop om het resultaat te kopiëren, of klik op de downloadknop om op te slaan als .sql-bestand, u kunt ook op de deelknop klikken om een URL-link te genereren die de SQL-inhoud bevat
Functies
- Compatibiliteit met 20 database-dialecten: ondersteunt syntaxisherkenning en formattering voor 20 SQL-dialecten, waaronder standaard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB enz.
- Controle van hoofdlettergebruik van trefwoorden: ondersteunt drie modi voor trefwoorden zoals SELECT/FROM/WHERE/JOIN: hoofdletters (UPPER), kleine letters (lower) of origineel behouden (preserve), met afzonderlijke configuratie voor gegevenstypen en functienamen
- Controle van hoofdlettergebruik van identifiers: identifiers zoals tabelnamen, kolomnamen en aliassen ondersteunen hoofdletters, kleine letters of origineel behouden, aangepast aan verschillende codeernormen van het team
- Optionele inspringstijl: ondersteunt drie inspringstijlen: standaard inspringen, links uitgelijnd tabelvormig (tabularLeft) en rechts uitgelijnd tabelvormig (tabularRight), die voldoen aan verschillende leesvoorkeuren
- Flexibele inspringconfiguratie: inspringbreedte kan 2 spaties, 4 spaties of Tab-teken zijn; aantal lege regels tussen query's kan 0/1/2 regels zijn
- Regeleinde voor logische operatoren: configureer of logische operatoren zoals AND/OR voor (before) of na (after) de operator een regeleinde krijgen, in overeenstemming met de codeerstijl van het team
- Controle van expressiebreedte: drempel voor tekens per regel voor regeleinde van expressies is aanpasbaar (20-200 tekens), gaat automatisch naar een nieuwe regel bij overschrijding van de breedte, regelt de lengte van een enkele regel
- Modus voor dichte operatoren: indien ingeschakeld blijven er geen extra spaties rond operatoren over, genereert een compacter formatteringsresultaat, geschikt voor ingesloten SQL-scenario's
- Regeleinde voor puntkomma: optioneel een regeleinde voor de puntkomma aan het einde van de instructie, waardoor de puntkomma op een aparte regel staat om snel de grenzen van de instructie te vinden
- 4 vooraf ingestelde stijlen: schakel met één klik tussen standaard (UPPER-trefwoorden + 2 spaties inspringen), kleine letters (alle trefwoorden in kleine letters), compact (tabelvormige uitlijning + dichte operatoren) en ruim (4 spaties inspringen + dubbele lege regels), zonder dat u elk item hoeft aan te passen
- Functie voor SQL-compressie: comprimeert SQL met één klik naar één regel, verwijdert automatisch opmerkingen, overbodige witruimte en regeleinden, geschikt voor loguitvoer, codeconcatenatie en scenario's voor het insluiten in documenten
- Functie voor syntaxisvalidatie: basisvalidatie van SQL-syntaxis, toont foutmeldingen wanneer formattering mislukt om te helpen bij het vinden van syntaxisproblemen
- Ingebouwde voorbeeld-SQL: biedt vier groepen voorbeeld-SQL: basisquery, complexe query met tabelverbindingen, batchverwerking van meerdere instructies en CREATE TABLE-instructie voor het maken van tabellen, om snel het formattereffect te ervaren
- Uploaden/downloaden van bestanden: ondersteunt uploaden van .sql/.txt-bestanden om SQL direct te importeren, na formattering kan het worden gedownload als .sql-bestand om op te slaan
- Delen via URL: gebruikt LZ-String-compressie om SQL in de URL-hash te coderen, kopieer de link om de formatterconfiguratie en SQL-inhoud te delen
- Automatische formattering in realtime: formatteert automatisch met een debounce van 800 ms na het invoeren van SQL, zie direct het effect bij wijzigingen, zonder herhaaldelijk op de knop te hoeven klikken
- Sneltoetsen: Shift+Cmd/Ctrl+F formatteren, Shift+Cmd/Ctrl+C comprimeren, Shift+Cmd/Ctrl+V valideren, Shift+Cmd/Ctrl+O uploaden, Shift+Cmd/Ctrl+D downloaden, Shift+Cmd/Ctrl+K wissen
- CodeMirror-editor: editor met SQL-syntaxismarkering op basis van CodeMirror 6, ondersteunt aanpassing van de breedte van het linker-/rechterpaneel door te slepen, aanpassing van de lettergrootte en geschiedenispaneel
- Resultaat met één klik kopiëren: geformatteerde of gecomprimeerde SQL kan met één klik naar het klembord worden gekopieerd om direct in databaseclients of code te plakken
- Volledig lokale verwerking in de browser: alle SQL-formattering wordt voltooid in JavaScript in de browser, op basis van de sql-formatter-bibliotheek, SQL-instructies worden naar geen enkele server verzonden, waardoor gegevensbeveiliging is gegarandeerd
Veelgestelde vragen
Verandert SQL-formattering de querylogica? Kan de geformatteerde SQL direct worden uitgevoerd?
Verandert de querylogica niet. SQL-formattering past alleen witruimte aan (regeleinden, inspringing, spaties) en hoofdlettergebruik van trefwoorden, wijzigt geen identifiers, waarden, operatoren, functieaanroepen en querystructuur in SQL. De geformatteerde SQL is semantisch volledig gelijk aan de originele SQL, kan direct worden gekopieerd naar databaseclients zoals MySQL Workbench, pgAdmin, DBeaver, Navicat om uit te voeren. Het wordt echter aanbevolen om in een testomgeving te verifiëren voordat u in een productieomgeving uitvoert.
Welke database-dialecten worden ondersteund? Wat te doen als er verschillen zijn in SQL-syntaxis tussen verschillende databases?
Ondersteunt 20 SQL-dialecten: standaard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL(Oracle), T-SQL(SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL(Couchbase). Verschillende databases hebben verschillen in pagineringssyntaxis (LIMIT vs LIMIT/OFFSET vs TOP vs ROWNUM), tekenreeksconcatenatie, datumfuncties, identifiercitatie (achterwaartse aanhalingstekens vs dubbele aanhalingstekens vs vierkante haken) enz. Het selecteren van het juiste dialect zorgt ervoor dat de formatter trefwoorden en functienamen correct herkent, waardoor onjuiste formattering van dialectspecifieke functies wordt voorkomen.
Wat is SQL-compressie? Wat is het verschil tussen compressie en formattering?
SQL-compressie (Minify) is de omgekeerde bewerking van formattering: verwijdert alle opmerkingen (inclusief /* */ meerregelige opmerkingen en -- eenregelige opmerkingen), voegt opeenvolgende witruimtetekens samen tot een enkele spatie, verwijdert overbodige spaties rond haakjes/komma's/puntkomma's/operatoren, en genereert compacte SQL in één regel. Compressie is geschikt voor de volgende scenario's: SQL insluiten in codestrings, schrijven naar logbestanden, doorgeven via URL-parameters, delen in chatvensters om regeleindeverstoring te voorkomen. Formattering voegt daarentegen de juiste regeleinden en inspringing toe om de leesbaarheid te verbeteren.
Wanneer wordt automatische formattering geactiveerd? Kan ik deze uitschakelen?
Na het invoeren of wijzigen van SQL in het bewerkingsgebied aan de linkerkant, wordt formattering automatisch geactiveerd na een debounce-vertraging van 800 ms (op voorwaarde dat de vorige formattering geen syntaxisfouten had). Dit is om het geformatteerde effect direct te tonen nadat u stopt met typen. Als u de voorkeur geeft aan handmatige bediening, klikt u gewoon op de formatterknop op de werkbalk, u hoeft niet te wachten op automatische activering. Er is momenteel geen aparte schakelaar om automatische formattering uit te schakelen, maar deze wordt niet herhaaldelijk geactiveerd zolang de invoerinhoud niet wordt gewijzigd.
Wat te doen als formattering mislukt en een syntaxisfout aangeeft?
De formatter meldt een fout wanneer deze SQL-syntaxis tegenkomt die niet kan worden geanalyseerd, veelvoorkomende oorzaken zijn: 1) Niet-overeenkomende haakjes — controleer of het aantal linker- en rechterhaakjes overeenkomt; 2) Niet-gesloten tekenreeks — controleer of enkele/dubbele aanhalingstekens in paren voorkomen; 3) Typefout in trefwoorden — zoals typefouten zoals SELCT, WHRER enz.; 4) Niet-overeenkomend database-dialect — zoals het gebruik van de ::-typeconversiesyntaxis die specifiek is voor PostgreSQL maar het MySQL-dialect is geselecteerd; 5) Onvolledig SQL-fragment — zoals alleen WHERE-voorwaarde zonder SELECT FROM. Het foutbericht toont de positie en reden van het probleem dat door de parser wordt gemeld, u kunt het probleem op basis daarvan vinden. U kunt ook eerst op de validatieknop klikken (Shift+Cmd/Ctrl+V) om de syntaxis te controleren.
Hoe kies ik tussen de drie modi: trefwoorden in hoofdletters, kleine letters of origineel behouden?
Trefwoorden in hoofdletters (UPPER) is de meest traditionele en populaire SQL-codeerstijl, trefwoorden zoals SELECT/FROM/WHERE/JOIN in hoofdletters onderscheiden ze visueel van tabel-/kolomnamen, waardoor u snel de SQL-structuur in grote hoeveelheden code kunt vinden. Trefwoorden in kleine letters zijn meer geschikt voor moderne IDE-omgevingen (moderne editors hebben syntaxismarkering, zijn niet langer afhankelijk van onderscheid door hoofdlettergebruik), visueel uniformer. Origineel behouden (preserve) wijzigt het hoofdlettergebruik dat u hebt getypt niet, geschikt voor het maken van minimale opmaakaanpassingen aan bestaande code. Trefwoorden, identifiers (tabel- en kolomnamen), gegevenstypen (VARCHAR/INT/BIGINT) en functienamen (COUNT/SUM/COALESCE) kunnen onafhankelijk hoofdlettergebruiksstrategieën hebben ingesteld.
Wat is het verschil tussen de tabelvormige uitlijningsmodus en standaard inspringing?
Standaard inspringing (standard) gebruikt de traditionele hiërarchische inspringingsmethode, elke clausule wordt ingesprongen met een vast aantal spaties. De modi voor tabelvormige links/rechts uitlijning lijnen kolomnamen in de SELECT-lijst, uitdrukkingen in WHERE-voorwaarden enz. uit per kolom, waardoor een visueel effect ontstaat dat lijkt op een tabel. Meerdere kolomnamen na SELECT worden bijvoorbeeld verticaal uitgelijnd, AS-aliassen worden ook uitgelijnd op dezelfde kolompositie. Deze modus is zeer intuïtief bij het lezen van query's met meerdere kolommen op breedbeeldmonitors, maar kan op smalle schermen leiden tot te lange regels.
Hoe schakel ik snel tussen de uniforme SQL-stijl van het team en persoonlijke voorkeuren?
Gebruik de vooraf ingestelde knoppen in het instellingenpaneel: standaard (UPPER-trefwoorden + 2 spaties standaard inspringing), kleine letters (alle trefwoorden in kleine letters), compact (tabularLeft-uitlijning + dichte operatoren), ruim (4 spaties inspringing + dubbele lege regels tussen query's). Als uw team specifieke regels heeft, past u de opties handmatig aan en formatteert u. Er is momenteel geen ondersteuning voor het opslaan van aangepaste voorinstellingen, maar het aantal configuratie-opties is beperkt, snelle aanpassing is ook handig.
Verliest geformatteerde SQL opmerkingen?
De formatteringsbewerking (Format) behoudt opmerkingen, -- eenregelige opmerkingen en /* */ meerregelige opmerkingen worden nabij de oorspronkelijke positie behouden (de specifieke positie hangt af van de opmerkingenverwerkingslogica van de sql-formatter-bibliotheek). Maar de compressiebewerking (Compress) verwijdert alle opmerkingen om de meest compacte SQL in één regel te genereren, als u opmerkingen wilt behouden vóór compressie, kopieer dan eerst het geformatteerde resultaat.
Welke sneltoetsen worden ondersteund? Wat is het verschil tussen Mac en Windows/Linux?
Ondersteunt de volgende sneltoetsen (Mac gebruikt de Cmd-toets, Windows/Linux gebruiken de Ctrl-toets, beide vereisen dat u tegelijkertijd Shift ingedrukt houdt): Shift+Cmd/Ctrl+F formatteren; Shift+Cmd/Ctrl+C comprimeren; Shift+Cmd/Ctrl+V syntaxisvalidatie; Shift+Cmd/Ctrl+O bestand uploaden; Shift+Cmd/Ctrl+D bestand downloaden; Shift+Cmd/Ctrl+K inhoud wissen. Klik op het vraagtekenpictogram op de werkbalk om de lijst met sneltoetsen op elk gewenst moment te bekijken.
Is er een groottelimiet voor het uploaden van SQL-bestanden? Welke bestandsformaten worden ondersteund?
Ondersteunt uploaden van tekstbestanden in de formaten .sql en .txt, theoretisch is er geen harde limiet voor bestandsgrootte, maar de browser kan prestatieproblemen hebben bij het verwerken van zeer grote bestanden (zoals SQL-dumpbestanden groter dan 1MB). Het wordt aanbevolen om afzonderlijke query's of kleinschalige scriptbestanden te verwerken. Voor zeer grote SQL-bestanden (zoals volledige databasedumps) wordt aanbevolen om ze eerst in kleinere fragmenten te splitsen voordat u gaat formatteren. De bestandsinhoud wordt gelezen via de browser FileReader API, wordt niet naar de server verzonden.
Is de URL-deelfunctie veilig? Wordt de SQL-inhoud door de server gezien?
De URL-deelfunctie gebruikt LZ-String-compressie om de SQL-inhoud te coderen in het hash-gedeelte van de URL (inhoud na #). Het kenmerk van het URL-hash-gedeelte is: het wordt niet met HTTP-verzoeken naar de server verzonden, wordt alleen lokaal in de browser verwerkt. Wanneer u een deellink naar iemand anders kopieert, parseert de browser van de ontvanger de hash en decomprimeert deze om de SQL-inhoud weer te geven, gedurende het hele proces gaat SQL door geen enkele server. Houd er echter rekening mee dat de deellink de volledige SQL-inhoud bevat, als SQL gevoelige informatie bevat (zoals wachtwoorden, sleutels, persoonsgegevens), deel de link dan niet op openbare kanalen.
Kan ik scripts met meerdere SQL-instructies formatteren?
Ja. Het hulpmiddel ondersteunt batchformattering van meerdere SQL-instructies (zoals meerdere SELECT/INSERT/UPDATE/CREATE TABLE-instructies gescheiden door puntkomma's). U kunt de interval tussen instructies (0/1/2 regels) regelen via de optie "Lege regels tussen query's" in het instellingenpaneel. Laad de voorbeeld-SQL "Meerdere instructies" om het effect van formattering van meerdere instructies te ervaren. Elke instructie wordt onafhankelijk ingesprongen en opgemaakt, instructies worden gescheiden door het geconfigureerde aantal lege regels.
Welke grootte van SQL-instructies veroorzaakt vertraging?
Pure JavaScript-implementatie op basis van de sql-formatter-bibliotheek, het verwerken van SQL tot een paar honderd regels heeft meestal een reactie in milliseconden in moderne browsers, zonder vertragingsgevoel. Zelfs opgeslagen procedures van duizenden regels of complexe query's kunnen in minder dan 1 seconde worden voltooid. Alle berekeningen worden voltooid in de hoofdthread van de browser, zeer grote bestanden (zoals SQL-dumps met meer dan 10.000 regels) kunnen tijdelijke interfacebevriezing veroorzaken, het wordt aanbevolen om in batches te verwerken.
Heeft het hulpmiddel een internetverbinding nodig om te gebruiken? Zijn de SQL-gegevens veilig?
Kan na het laden van de pagina offline worden gebruikt, SQL-formattering, compressie en validatie worden allemaal lokaal in JavaScript in de browser voltooid, verzendt de door u ingevoerde SQL-instructies naar geen externe servers. Gebruikt geen Cookie-tracking, verzamelt geen door de gebruiker ingevoerde SQL-inhoud of gebruiksgedragsgegevens. Geïmplementeerd op basis van de volwassen open-source sql-formatter-bibliotheek, de codelogica is transparant en controleerbaar.
Probleemoplossing
Wat te doen als formattering een foutmelding "Parse error" of "SQL-formattering mislukt" geeft?
De formatter analyseert SQL op basis van de sql-formatter-bibliotheek, meldt een fout bij het tegenkomen van niet-herkende syntaxis. Veelvoorkomende oorzaken en oplossingen: 1) Niet-overeenkomende haakjes — controleer of het aantal linker- en rechterhaakjes overeenkomt, u kunt de functie voor het markeren van haakjesovereenkomst van de editor gebruiken om te helpen bij de controle; 2) Niet-gesloten tekenreeksaanhalingstekens — controleer of enkele en dubbele aanhalingstekens in paren voorkomen, aanhalingstekens in tekenreeksen moeten worden geëscapet (zoals '' of \'); 3) Verkeerde selectie van database-dialect — zoals het gebruik van de ::-operator van PostgreSQL maar het MySQL-dialect is geselecteerd, schakel over naar het juiste dialect; 4) Onvolledige SQL-instructie — zoals alleen WHERE-clausule zonder SELECT FROM; 5) Gebruik van zeer specifieke databasesyntaxis (zoals bepaalde controleflussen van opgeslagen procedures), probeer over te schakelen naar het dichtstbijzijnde dialect of vereenvoudig het SQL-fragment voordat u gaat formatteren.
Chinese of speciale tekens worden weergegeven als onleesbare tekens na formattering?
Dit hulpmiddel ondersteunt volledig UTF-8-codering, Chinese en Unicode-tekens blijven ongewijzigd tijdens formattering. Als er onleesbare tekens verschijnen, is dit meestal omdat de SQL die u hebt geplakken afkomstig is uit een bestand met onjuiste codering (zoals gekopieerd uit een bestand met GBK-codering). Zorg ervoor dat het bronbestand is opgeslagen met UTF-8-codering, of converteer het bestand naar UTF-8-codering voordat u het plakt. De CodeMirror-editor in de browser gebruikt standaard UTF-8, introduceert geen coderingsconversies.
Na het uploaden van een SQL-bestand is er geen reactie of wordt het als leeg weergegeven?
Bestandsupload ondersteunt alleen tekstbestanden met de extensies .sql en .txt. Als het bestand een binair formaat heeft (zoals .sqlite-databasebestand, .doc-document), worden er na het uploaden onleesbare tekens weergegeven of is het leeg. Bovendien hebben sommige browsers beveiligingsbeperkingen voor het lezen van lokale bestanden via JavaScript, zorg ervoor dat u het bestand selecteert door actief op de uploadknop te klikken, niet door slepen en neerzetten (slepen-en-neerzetten-upload wordt momenteel niet ondersteund). Aanbevolen bestandsgrootte niet groter dan 1MB, overschrijding kan leiden tot trage analyse in de browser.
Na formattering zijn sommige trefwoorden klein/hoofdletter geworden, niet overeenkomend met de originele invoer?
Dit is normaal gedrag van formattering. De optie voor hoofdlettergebruik van trefwoorden (keywordCase) is standaard ingesteld op UPPER, zal SQL-trefwoorden uniform naar hoofdletters converteren. Als u het originele hoofdlettergebruik ongewijzigd wilt houden, wijzigt u de opties voor hoofdlettergebruik van trefwoorden, identifiers, gegevenstypen en functies in het instellingenpaneel in "Origineel behouden (preserve)", dan zal de formatter alleen regeleinden en inspringing aanpassen, en het hoofdlettergebruik van geen enkele letter wijzigen.
Woordenlijst
- SQL-dialect (SQL Dialect)
- Extensies en varianten van standaard SQL door verschillende databasebeheersystemen (DBMS). Bijvoorbeeld LIMIT van MySQL, ::-typeconversie van PostgreSQL, TOP van SQL Server, ROWNUM van Oracle enz. zijn dialectspecifieke syntaxis. Tijdens formattering moet het juiste dialect worden geselecteerd om correcte syntactische analyse te garanderen.
- Hoofdlettergebruik van trefwoorden (Keyword Case)
- Hoofdlettergebruiksstrategie voor SQL-gereserveerde woorden (SELECT/FROM/WHERE/JOIN enz.). Hoofdletters (UPPER) is de traditionele stijl, kleine letters (lower) worden steeds populairder in moderne ontwikkeling, origineel behouden (preserve) wordt gebruikt voor minimale wijzigingen.
- Identifier (Identifier)
- Namen van databaseobjecten in SQL, inclusief databasenamen, tabelnamen, kolomnamen, aliassen, indexnamen, weergavenamen, opgeslagen procedurenamen enz. Verschillende databases citeren identifiers op verschillende manieren: MySQL gebruikt achterwaartse aanhalingstekens, PostgreSQL gebruikt dubbele aanhalingstekens, SQL Server gebruikt vierkante haken.
- Inspringstijl (Indent Style)
- Regelt de uitlijningswijze van inspringing tijdens SQL-formattering. Standaard inspringing gebruikt hiërarchische progressie; tabularLeft/tabularRight lijnen kolomnamen en aliassen uit in tabelvorm, betere leesbaarheid op breed scherm maar kunnen langere regels veroorzaken.
- Regeleinde voor logische operatoren (Logical Operator Newline)
- Positie van het regeleinde van logische operatoren zoals AND/OR in meerregelige voorwaarden. before betekent dat de operator aan het begin van de volgende regel staat, after betekent dat de operator aan het eind van de huidige regel staat. Verschillende teams hebben verschillende voorkeuren.
- Expressiebreedte (Expression Width)
- Drempel van tekens per regel die een regeleinde activeert (20-200 tekens). Expressies die deze breedte overschrijden worden afgebroken, vergelijkbaar met de printWidth/ruler-instelling in code-editors.
- Dichte operatoren (Dense Operators)
- Een van de formatteringsopties, indien ingeschakeld blijven er geen extra spaties rond operatoren (=, <, >, +, - enz.), zoals `WHERE id=1 AND status='active'` in plaats van `WHERE id = 1 AND status = 'active'`, genereert compactere uitvoer.
- Lege regels tussen query's (Lines Between Queries)
- Aantal lege regels tussen meerdere SQL-instructies. 0 betekent onmiddellijke plaatsing, 1 betekent scheiding door één lege regel (gebruikelijk), 2 betekent twee lege regels (ruime stijl), beïnvloedt de leesbaarheid van scripts met meerdere instructies.
- SQL comprimeren/minifyen (SQL Minify/Compress)
- Verwijdert alle opmerkingen en overbodige witruimte uit geformatteerde SQL, voegt deze samen tot een compact formaat in één regel. Geschikt voor scenario's zoals loguitvoer, code-insluiting, URL-doorgifte enz., is de omgekeerde bewerking van formattering.
- Mooie afdruk (Pretty Print)
- Genereert code- of gegevensuitvoer in een goed leesbaar formaat via automatische inspringing en regeleinden. SQL Pretty Print is SQL-verfraaiing en -formattering, het tegenovergestelde van Minify (compressie).
- CodeMirror
- De code-editorcomponent in de browser die door dit hulpmiddel wordt gebruikt (versie 6), biedt bewerkingsverbeteringsfuncties zoals SQL-syntaxismarkering, weergave van regelnummers, codevouwing enz., is een veelgebruikte webcode-editoroplossing in de branche.
- sql-formatter
- De open-source SQL-formatteringsbibliotheek die in de kern van dit hulpmiddel wordt gebruikt, ondersteunt lexicale analyse en geformatteerde uitvoer voor verschillende SQL-dialecten, is een van de meest populaire SQL-formatteringsbibliotheken in het frontend-ecosysteem.
Lijst met ondersteunde SQL-dialecten
Het hulpmiddel ondersteunt 20 SQL-database-dialecten, selecteer het dialect dat overeenkomt met de database die u gebruikt voor het beste formattereffect:
| Dialect | Database | Beschrijving van kenmerken |
|---|---|---|
| Standard SQL | Standaard SQL | ANSI SQL-standaardsyntaxis, geschikt voor algemene scenario's en onbekende dialecten |
| MySQL | MySQL / TiDB | Meest populaire open-source relationele database, identifiers met achterwaartse aanhalingstekens, LIMIT-paginering |
| MariaDB | MariaDB | Af splitsing van MySQL, compatibel met MySQL-syntaxis en uitgebreid met meer functies |
| PostgreSQL | PostgreSQL | Functierijke open-source database, identifiers met dubbele aanhalingstekens, ::-typeconversie |
| SQLite | SQLite | Lichtgewicht ingesloten database, veelgebruikt in mobiele apps en browsers |
| T-SQL | SQL Server / Azure | Transact-SQL van Microsoft SQL Server, identifiers met vierkante haken, TOP-paginering |
| PL/SQL | Oracle | Procedurele SQL-extensie van Oracle, ROWNUM-paginering, rijke ingebouwde pakketten |
| BigQuery | Google BigQuery | Google Cloud datawarehouse, ondersteunt geneste typen zoals STRUCT/ARRAY |
| Snowflake | Snowflake | Cloud-native datawarehouse, sterke verwerkingsmogelijkheden voor semi-gestructureerde gegevens |
| Redshift | AWS Redshift | Amazon Cloud datawarehouse, gebaseerd op PostgreSQL maar met specifieke syntaxis |
Vergelijking van vooraf ingestelde formatteringsstijlen
4 vooraf ingestelde stijlen met één klik zijn geschikt voor verschillende gebruiksscenario's:
| Voorinstelling | Trefwoorden | Inspringing | Operatoren | Interval tussen query's |
|---|---|---|---|---|
| Standaard | UPPER | 2 spaties Standaard | Normale spatiëring | 1 lege regel |
| Kleine letters | lower | 2 spaties Standaard | Normale spatiëring | 1 lege regel |
| Compact | UPPER | Tabelvormig links | Compacte modus | 1 lege regel |
| Ruim | UPPER | 4 spaties Standaard | Normale spatiëring | 2 lege regels |
Overzicht van sneltoetsen
Alle sneltoetsen vereisen dat u tegelijkertijd de modificatietoets+Shift+bijbehorende letter ingedrukt houdt:
| Actie | Mac | Windows/Linux | Beschrijving |
|---|---|---|---|
| Formatteren | ⇧⌘F | Shift+Ctrl+F | Verfraait SQL-instructies, voegt regeleinden en inspringing toe |
| Comprimeren | ⇧⌘C | Shift+Ctrl+C | Comprimeert SQL in één regel, verwijdert opmerkingen en witruimte |
| Valideren | ⇧⌘V | Shift+Ctrl+V | Controleert of de SQL-syntaxis correct is |
| Uploaden | ⇧⌘O | Shift+Ctrl+O | Laadt .sql/.txt van lokaal bestand |
| Downloaden | ⇧⌘D | Shift+Ctrl+D | Slaat het resultaat op als .sql-bestand |
| Wissen | ⇧⌘K | Shift+Ctrl+K | Wist invoer- en uitvoerinhoud |
Privacy & Security
Alle bewerkingen van dit SQL-formatteringshulpmiddel worden volledig lokaal in uw browser uitgevoerd: de door u ingevoerde SQL-instructies, het geselecteerde dialect en de formatterconfiguratie worden allemaal in JavaScript van de browser verwerkt door de sql-formatter-bibliotheek, geen SQL-inhoud of configuratie wordt via het netwerk naar externe servers verzonden. Bestandsupload leest de inhoud van lokale bestanden via de HTML5 FileReader API, zonder netwerkverzending. De URL-deelfunctie comprimeert SQL en codeert deze in het hash-gedeelte van de URL (inhoud na # wordt niet met HTTP-verzoeken naar de server verzonden), alleen lokaal decomprimeren en weergeven in de browser. Gebruikt geen Cookie-tracking, verzamelt geen door de gebruiker ingevoerde SQL-inhoud of gebruiksgedragsgegevens. Na het sluiten of vernieuwen van de pagina worden de invoerinhoud en configuratiestatus automatisch gereset (geschiedenis wordt alleen opgeslagen in lokale localStorage).
Authoritative References
- GitHubOfficiële documentatie van sql-formatter
- codemirror.netOfficiële website van CodeMirror 6
- WikipediaWikipedia - SQL-syntaxis
- Kleurenblindheid Simulator
- Kleuromzetter
- .htaccess naar Nginx Converter
- SQL Converter
- Cookie-parser
- Cron Expression Generator
- Cron Validator
- CSS Formatter
- CSS Minifier
- CSV naar Excel
- Valuta Converter
- Diff Checker
- Favicon-generator
- XML Formatter
- Hexadecimale Converter
- HTML Formatter
- HTML Minifier
- HTML naar Markdown
- Markdown naar HTML
- JavaScript Formatteren
- JavaScript Minifier
- JSX Formatteerder
- JSX Minifier
- Zoekwoordclustering
- Lorem Ipsum Generator
- Markdown Tabel Generator
- Meta Tag Generator
- Wachtwoordgenerator
- Wachtwoordsterktecontrole
- QR Code & Streepjescode Generator
- Reguliere Expressie Tester
- Slug Generator
- SQL Generator
- SQL Formatteerhulpmiddel
- Woordenteller
- Tijdgereedschap
- TS Formatter
- TS Minify
- TSX Formatter
- TSX Minify
- Unix Timestamp Omzetter
- UUID Generator
- YAML Formatter
- Case-converter