Om dette verktøyet
SQL-spørringer blir raskt lange og komplekse – sammenføyninger på tvers av mange tabeller, nestede underspørringer, store WHERE-klausuler med mange betingelser, komplekse CASE-uttrykk. Kompakt SQL stappet på få linjer er uleselig; riktig innrykket SQL med konsistent bruk av store bokstaver gjør spørringsstrukturen synlig med et øyeblikk. Formatering er forskjellen mellom en spørring du kan feilsøke og en du ikke kan.
Dette formateringsverktøyet analyserer SQL og sender ut innrykket, korrekt formet utdata. SQL-nøkkelord (SELECT, FROM, WHERE, JOIN, GROUP BY) er vanligvis store bokstaver, tabell- og kolonnenavn samsvarer med kilden, og innrykk gjenspeiler nesting (underspørringer rykket inn i foreldrene, CASE-grener innrykket). Støtte for flere dialekter håndterer MySQL, PostgreSQL, SQL Server, Oracle og SQLite-forskjeller.
Formatering er ikke-destruktiv – den formaterte spørringen er funksjonelt identisk med inndataene. Bare mellomrom og store og små bokstaver endres.
Hvorfor formatere SQL
Å lese tett uformatert SQL er mentalt belastende. Å identifisere hvilke forhold som hører til hvilke JOINs, hvor underspørringer starter og slutter, og hvordan CASE-grener forholder seg, blir vanskeligere når alt er på få linjer. Formatert SQL er raskere å lese og reduserer feil fra feillesende struktur.
Kodegjennomgang fordeler spesielt. Anmeldere kan raskt forstå hva en spørring gjør når den er formatert; lesing av uformatert SQL under gjennomgang oppmuntrer til å hoppe over eller gummistempling. Formatert SQL produserer også meningsfulle diff når spørringer endres.
Tekniske detaljer
SQL-parsing krever forståelse av dialekten fordi forskjellige databaser utvider grammatikken på forskjellige måter. Formatereren bruker vanligvis en tokenizer for å identifisere nøkkelord, identifikatorer, bokstaver og tegnsetting, og produserer deretter utdata med regler for mellomrom og innrykk mellom tokens.
Innrykksregler: SELECT, FROM, WHERE, GROUP BY, ORDER BY hver på sin egen linje. Sammenføyde tabeller på påfølgende linjer rykket inn under FRA. Betingelser i WHERE på egne linjer for lesbarhet. Underspørringer i sine egne innrykkede blokker.
Kasuskonvensjoner: nøkkelord med store bokstaver (SELECT, FROM, WHERE) er mest vanlig. Noen lag foretrekker små bokstaver. Identifikatorer (tabell- og kolonnenavn) bevarer store og små bokstaver i kilden.
Ofte stilte spørsmål
- Endrer formatering søkeatferden?
- Nei. SQL-formatering justerer bare mellomrom, linjeskift og store og små nøkkelord. Spørringslogikken, utførelsesplanen og resultatene forblir identiske. Det er bare en forbedring av lesbarheten.
- Hvilke SQL-dialekter støttes?
- Verktøyet støtter standard SQL og spesifikke dialekter: MySQL, PostgreSQL, SQLite, SQL Server (T-SQL) og Oracle PL/SQL. Dialektspesifikke nøkkelord og funksjoner gjenkjennes riktig.
- Håndterer den underspørringer og CTE-er?
- Ja. Vanlige tabelluttrykk (WITH-ledd), nestede underspørringer, vindusfunksjoner og komplekse JOIN-kjeder er formatert med passende innrykksnivåer.
- Kan jeg bruke dette til lagrede prosedyrer?
- Formateringsverktøyet håndterer enkelt SQL-setninger best. Multi-setningsprosedyrer, triggere og funksjoner kan fungere, men kompleks prosedyrelogikk (IF/ELSE, loops) formatering avhenger av dialekten.
- Skal søkeord være store eller små?
- Konvensjonen varierer. Store bokstaver er tradisjonelle og vanlige. Små bokstaver blir tatt i bruk i moderne stilguider. Velg en og hold deg konsekvent i kodebasen.
- Formaterer den lagrede prosedyrer?
- De fleste formattere håndterer lagret prosedyresyntaks (OPPRETT PROSEDYRE, BEGIN/END-blokker, kontrollflyt). Dialektspesifikke utvidelser kan støttes delvis.
- Er SQL-en min lastet opp?
- Nei. Formatering skjer i nettleseren din.
- Kan jeg formatere fra kommandolinjen?
- Flere SQL-formatere tilbyr CLI-verktøy (sqlfluff, sql-formatter). Bruk dem til batchformatering eller CI-integrasjon. Nettleserformatere er for ad-hoc engangsbruk.