SQL-formatter: rydd opp og innrykk SQL
Formater og rydd opp SQL-spørringer med innrykk og store nøkkelord, for flere dialekter. Alt skjer lokalt.
Slik fungerer det
Lim inn en SQL-spørring og få den ryddig formatert med innrykk, linjeskift og store nøkkelord. Velg dialekt (standard SQL, PostgreSQL, MySQL, SQLite, T-SQL m.fl.) for riktig håndtering av syntaks. Alt formateres lokalt i nettleseren, ingenting sendes noe sted.
Om dette verktøyet
SQL-formatereren tar SQL-koden din, som ofte kommer som én lang linje fra et loggutdrag eller kopiert fra en ORM, og gjør den lesbar med innrykk, linjeskift og nøkkelord i store bokstaver. Nyttig når du skal forstå en query fra produksjonsloggen, dele en spørring i en pull request, eller lage penere migrasjonsfiler. Verktøyet støtter de vanligste dialektene: PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle PL/SQL og SQLite. Alt kjøres i nettleseren, ingen queries sendes til en server, du kan trygt formatere spørringer som inneholder produksjonsdata eller sensitive kolonnenavn.
Slik bruker du det
- Lim inn SQL-koden i tekstfeltet.
- Velg dialekt fra rullegardinmenyen for best resultat på funksjonsnavn og reserverte ord.
- Formatert kode vises umiddelbart i «pretty»-panelet.
- Trykk «Kopier» eller «Last ned» for å bruke resultatet i editoren din.
Eksempler
select u.id, u.name, o.total from users u left join orders o on o.user_id=u.id where u.active=true order by o.total descSELECT
u.id,
u.name,
o.total
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE u.active = TRUE
ORDER BY o.total DESCinsert into orders(user_id,total,created_at) values (1,299.50,now()),(2,150.00,now())INSERT INTO orders (user_id, total, created_at)
VALUES
(1, 299.50, NOW()),
(2, 150.00, NOW())Vanlige bruksområder
- Rydde queries fra Slow-log før du limer dem inn i EXPLAIN ANALYZE.
- Sende lesbare spørringer i kodegjennomgang og pull requests.
- Skrive migrasjonsfiler som er trivielle å diffe over tid.
- Forstå SQL generert av ORM som Sequelize, Prisma, TypeORM eller Django.
- Undervise SQL for nybegynnere ved å vise korrekt innrykk automatisk.
Ofte stilte spørsmål
- Endrer verktøyet oppførselen til queryen?
- Nei. Bare whitespace og bokstavstørrelse på nøkkelord endres, ingen semantikk berøres. Kommentarer bevares.
- Kan jeg minifisere istedenfor?
- Ja. Bytt til «kompakt»-modus i verktøylinjen, alle linjeskift og duplikate mellomrom fjernes. Nyttig når du skal legge queryen i en JSON- eller YAML-fil.
- Kjøres queryen mot en database?
- Aldri. Verktøyet gjør bare tekstformatering. Ingenting sendes til en server, og ingen database berøres. Trygt selv med sensitive spørringer.
- Kan jeg beholde nøkkelord i små bokstaver?
- Ja, sett «Nøkkelord: lowercase» i innstillingene. Noen kodestandarder foretrekker små bokstaver (Postgres-stil) mens andre foretrekker store (Oracle-stil). Verktøyet støtter begge.
Teknisk bakgrunn
SQL-standarden (ISO/IEC 9075) definerer en felles kjerne, men hver database har sine egne utvidelser: PostgreSQL har «::»-typecast, «RETURNING»-klausul og «ILIKE», MySQL har «LIMIT ... OFFSET» og backtick-siterte identifikatorer, T-SQL har «TOP N», «MERGE» og hakeparenteser [dbo].[tabell], Oracle har PL/SQL, hierarkiske queries med CONNECT BY, og «DUAL»-tabellen, SQLite har begrenset ALTER TABLE og fleksible typer. Formatereren bruker en tokenizer som deler koden i nøkkelord, identifikatorer, literaler, kommentarer og whitespace, og deretter en pretty-printer som legger inn linjeskift og innrykk basert på grammatikk-regler for hver klausul (SELECT, FROM, WHERE, GROUP BY osv.). Reserverte ord løftes til store bokstaver (eller små, hvis konfigurert), mens brukerdefinerte identifikatorer (tabell- og kolonnenavn) bevares slik de er. Kommentarer, både -- linjekommentarer og /* blokk */ bevares på samme relative posisjon. For komplekse CTE, vinduer og PIVOT anbefales det å velge riktig dialekt for best mulig formatering.