🌐 DA

🗄️ SQL-formater

Sæt linjeskift og indryk SQL-forespørgsler efter klausul for bedre læsbarhed, eller minificer dem til én linje til logning/lager. Store bogstaver i nøgleord er valgfrit.

GUIDE

Laes mere

01

1. Hvorfor formatere SQL

SQL på én linje eller SQL genereret af ORM'er bliver svær at læse, når joins hober sig op. Når den opdeles i klausuler (SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY osv.) med ensartet indrykning, bliver det straks tydeligt, hvilke tabeller der joines på hvilke betingelser, og hvilke filtre WHERE anvender, så code review og fejlfinding går hurtigere.

02

2. Sådan formaterer værktøjet

Der indsættes linjeskift før de vigtigste klausuler (SELECT/FROM/WHERE/JOIN-varianter/GROUP BY/ORDER BY/HAVING/LIMIT osv.), og AND/OR indrykkes et niveau for at adskille betingelserne. Kommaseparerede kolonnelister får hver deres linje, og indhold i parenteser (subqueries osv.) får et ekstra indrykningsniveau. Det er en token-baseret formatter, ikke en fuld SQL-parser, så dybt indlejrede subqueries eller leverandørspecifik syntaks kan kræve en hurtig manuel justering efter formatering.

03

3. Minificering og hvornår den skal bruges

Minificering fjerner kommentarer og samler unødvendige mellemrum/linjeskift til én linje. Praktisk til logning af en forespørgsel, til at gøre lagrede procedurer/migrationsscripts mindre eller til at indsætte en énlinjesforespørgsel i et andet værktøj. Indhold i strengliteraler (anførte værdier) bevares præcist, så dine dataværdier aldrig ændres.

Ofte stillede sporgsmal

Understøtter det alle SQL-dialekter (MySQL, PostgreSQL, Oracle osv.)?
Det er en token-baseret formatter, der genkender almindelige nøgleord, ikke en fuld parser. Den håndterer SELECT/INSERT/UPDATE/DELETE/CREATE TABLE og almindelig join-syntaks godt, men leverandørspecifikke udvidelser følger måske ikke de præcise formateringsregler.
Gør det SQL-nøgleord i strenge med store bogstaver?
Nej. Strengliteraler i citationstegn ('...', "...", `...`) genkendes separat under tokenisering og udelades fra ændring af store/små bogstaver og logik for linjeskift.
Sendes min forespørgsel til en server?
Nej. Både formatering og minificering sker helt i din browser og sendes aldrig til en server.
Kan jeg ændre indrykningsbredden?
Ja - vælg 2 eller 4 mellemrum i indrykningsmenuen.