Introduktion till SQL-formaterare och frågeanalysator
Att arbeta med databaser innebär ofta att man ställs inför komplexa och svårlästa SQL-frågor. Verktyget SQL-formaterare är utformat för att lösa detta problem genom att omedelbart omstrukturera rörig SQL-kod direkt i din webbläsare så att den blir lättare att läsa och förstå. Förutom att formatera koden kan verktyget även generera en förklaring av frågans olika delar på vanlig svenska, där varje enskild sats och villkor bryts ner steg för steg.
Denna process sker direkt i användarens webbläsare, vilket innebär att både formateringen och analysen presenteras utan fördröjning. Verktyget är skapat för att hjälpa utvecklare, dataanalytiker, databasadministratörer (DBA), supportpersonal och alla andra som har ett behov av att göra ostrukturerad SQL mer läsbar eller som vill få en tydlig förklaring av vad en specifik SQL-fråga faktiskt gör.
Flexibla inställningar för formatering
För att anpassa koden efter dina eller ditt teams specifika standarder erbjuder verktyget flera inställningsmöjligheter för indata:
- SQL-indata: Du kan klistra in en SQL-fråga på upp till maximalt 300 000 tecken.
- Dialekt: Du kan välja mellan tio olika SQL-dialekter för att säkerställa att nyckelord och citattecken hanteras korrekt utifrån din databasmotor. De tillgängliga dialekterna är:
- Standard SQL
- PostgreSQL
- MySQL
- MariaDB
- SQL Server (T-SQL)
- Oracle (PL/SQL)
- SQLite
- BigQuery
- Snowflake
- Spark SQL
- Indrag: Välj önskad indragsstil för formateringen, antingen 2 mellanslag, 4 mellanslag eller tabulator (tab).
- Nyckelord: Bestäm hur skiftläget för SQL-nyckelord ska formateras. Alternativen är VERSALER, gemener eller att behålla ursprungligt skiftläge (Behåll).
Detaljerade utdata och statistik
När verktyget har bearbetat din SQL-fråga genereras följande utdata och statistik:
- Formaterad SQL: Den färdiga SQL-frågan, strukturerad enligt den valda dialekten och dina stilinställningar.
- Rader: Det totala antalet rader i den formaterade SQL-koden.
- Tecken: Det totala antalet tecken i den formaterade SQL-koden.
- Storlek: Den totala filstorleken för den formaterade SQL-koden.
- Förklaring: En detaljerad, strukturerad genomgång av frågans uppbyggnad.
Hur frågeanalysatorn förklarar SQL-satser
När du använder funktionen för att förklara SQL-koden analyseras frågans struktur. Verktyget visar texten "{count} instruktion(er) förklarade" för att ange hur många satser som har identifierats. Om din inmatning innehåller flera satser märks varje enskild del upp som "Sats {n}".
Analysatorn identifierar först vilken typ av instruktion det rör sig om (instruktionens typ):
- En sökning som läser och returnerar rader utan att ändra något (för
SELECT). - Lägger till nya rader i en tabell (för
INSERT). - Ändrar värden i rader som redan finns (för
UPDATE). - Tar bort rader från en tabell (för
DELETE). - Definierar ett nytt objekt, till exempel en tabell, vy eller ett index (för
CREATE). - Ändrar definitionen av ett befintligt objekt (för
ALTER). - Tar permanent bort ett objekt från databasen (för
DROP). - Tömmer en tabell och tar bort alla rader (för
TRUNCATE). - Skapar ett namngivet temporärt resultat (CTE) för den efterföljande frågan (för
WITH). - Infogar, uppdaterar eller tar bort rader i en och samma kombinerade åtgärd (för
MERGE). - En SQL-instruktion (för övriga instruktionstyper).
Därefter bryts instruktionen ner i mindre delar där varje SQL-sats tilldelas en specifik roll:
- Kolumnerna och uttrycken som returneras (för
SELECT). - Kolumnerna som returneras, med dubbletter borttagna (för
SELECT DISTINCT). - Tabellen (eller underfrågan) som data läses från (för
FROM). - Kombinerar varje rad med matchande rader från en annan tabell (för
JOIN). - Behåller endast de rader som uppfyller detta villkor (för
WHERE). - Slår ihop rader till grupper så att aggregeringar som COUNT eller SUM kan beräknas per grupp (för
GROUP BY). - Filtrerar dessa grupper efter att aggregeringarna har beräknats (för
HAVING). - Sorterar de resulterande raderna (för
ORDER BY). - Begränsar hur många rader som returneras (för
LIMIT). - Hoppar över ett antal rader innan resultat börjar returneras (för
OFFSET). - Kombinerar dessa resultat med resultaten från en annan fråga (för
UNION). - Radvärdena som infogas (för
VALUES). - Tabellen som tar emot de nya raderna (för
INTO). - De nya kolumnvärdena som ska tilldelas (för
SET). - Tabellen vars rader ändras (för
UPDATE). - Tabellen som rader tas bort från (för
DELETE FROM). - Definierar en namngiven temporär resultatmängd som används nedan (för
WITH). - Instruktionen, visas som den är (för allmänna satser).
Hantering av fel, begränsningar och lokala inställningar
Verktyget har inbyggda regler för att hantera olika typer av indata och felaktig syntax:
- Storleksbegränsning: Om du klistrar in en SQL-fråga som överskrider gränsen på 300 000 tecken, avbryts processen och meddelandet "Denna fråga är för stor för att bearbetas. Prova med en mindre." visas.
- Syntaxfel: Om koden innehåller syntaxfel som gör att den inte kan tolkas, visas felmeddelandet "Kunde inte formatera denna SQL – kontrollera syntaxen.". När ett sådant fel uppstår skrivs inte ditt tidigare lyckade utdata över av felmeddelandet.
- Rensa-funktionen: Om du klickar på knappen "Rensa" töms både fältet för SQL-indata och utdataområdet. Eventuella felmeddelanden döljs och texten "Rensad." visas.
- Ofullständig SQL: Förklaringsfunktionen analyserar frågans logiska struktur och inte en faktisk exekveringsplan från en databas. Detta gör att du kan få en förklaring även på ofullständig, partiell eller leverantörsspecifik SQL-kod.
- Begränsning av förklaringar: Om din SQL-fråga innehåller ett stort antal satser och förklaringen omfattar mer än 25 satser, kommer verktyget endast att visa de första 25 satserna. Detta indikeras med texten "Endast de första 25 visas.".
- Lokala inställningar: Verktyget sparar automatiskt dina utkast och dina inställningar för färgtema (såsom mörkt tema) lokalt i din webbläsare.
Integritet och lokal databehandling
När du använder detta verktyg behandlas din data med högsta möjliga integritet. Din SQL formateras och analyseras direkt i webbläsaren. Ingenting laddas upp till BroBroGo, vilket innebär att din SQL-kod aldrig lämnar sidan. Detta gör det säkert att arbeta med frågor utan att riskera att känslig information skickas till externa servrar.
Vanliga frågor (FAQ)
Vilka SQL-dialekter kan formateras?
Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake och Spark SQL. Välj den som matchar din databas så att nyckelord och citattecken hanteras på det sätt som databasmotorn förväntar sig.
Hur fungerar förklaringen på vanlig svenska?
Verktyget läser frågans struktur – typen av instruktion och varje enskild del som SELECT, FROM, JOIN, WHERE, GROUP BY och ORDER BY – och beskriver på vanlig svenska vad varje del gör. Det beskriver frågans logiska struktur, inte en faktisk exekveringsplan från databasen, vilket gör att det även fungerar på ofullständig eller leverantörsspecifik SQL.
Är det säkert att klistra in frågor från produktionsmiljöer?
Ja. Formatering och analys körs helt och hållet i din webbläsare – din SQL lämnar aldrig sidan.