SQL Academy · Lektion

SQLFluff och lintning

Linta SQL med SQLFluff, upprätthåll en gemensam kodstil och rätta vanliga formateringsproblem automatiskt.

Lektion 2 av 413 steg

SQLFluff och lintning är en gratis lektion i SQL Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för SQL Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i SQL Academy innehåller totalt 4 lektioner.

Varför lintar man SQL?

SQL skrivs för hand och är lätt att formatera inkonsekvent. Lintning tillämpar automatiskt en gemensam kodstil:

  • Nyckelord med gemener eller versaler
  • Komma i slutet eller början av raden
  • Namngivningskonventioner för tabeller och kolumner
  • Indrag
  • Antimönster (SELECT *, tvetydiga joinvillkor med mera)

SQLFluff: linter de facto-standard

Öppen källkod, med stöd för SQL-dialekter, många SQL-varianter och utmärkt integration med dbt:

pip install sqlfluff

sqlfluff lint models/
sqlfluff fix models/   # auto-fix where safe

Konfigurera SQLFluff

En .sqlfluff-konfiguration:

[sqlfluff]
dialect = postgres
templater = dbt
max_line_length = 120

[sqlfluff:rules:capitalisation.keywords]
capitalisation_policy = upper

[sqlfluff:rules:capitalisation.identifiers]
extended_capitalisation_policy = lower

Standardregler

SQLFluff har över 50 regler för bland annat namngivning, layout, versalisering, struktur och tvetydighet. Inaktivera regler per regel:

[sqlfluff]
exclude_rules = AM05, ST05

Inaktivering på radnivå

Hoppa över en kontroll för en enskild rad:

SELECT *  -- noqa: AM04
FROM users;

Integration med dbt

SQLFluff förstår Jinja och ref():

sqlfluff lint --templater dbt models/

Pre-commit-hook

Kör SQLFluff före varje incheckning:

# .pre-commit-config.yaml
repos:
  - repo: https://github.com/sqlfluff/sqlfluff
    rev: 3.0.0
    hooks:
      - id: sqlfluff-lint
      - id: sqlfluff-fix

I CI

Blockera pull requests med lintfel:

# GitHub Actions
- name: SQLFluff
  run: |
    pip install sqlfluff
    sqlfluff lint models/

Antimönster att linta

  • L044/AM04 — Undvik SELECT *
  • AM05 — Undvik implicita JOIN (komma)
  • ST05 — Undvik underfrågor i FROM (använd CTE:er)
  • L010 — Inkonsekvent versalisering

Formateringsverktyg jämfört med linter

SQLFluff gör båda delarna – kontrollerar OCH formaterar automatiskt:

sqlfluff format models/    # newer: dedicated format command
sqlfluff fix models/       # alias for format + safe rule fixes

Andra verktyg

  • pg_format — formaterar SQL snyggt (med fokus på PostgreSQL)
  • SQLFluff är det mest använda och integreras med dbt
  • format-on-save i kodredigerare (VS Code, JetBrains)

Sammanfattning

Lintning eliminerar stildebatter och hittar riktiga buggar.

  • SQLFluff för lintning och formatering
  • .sqlfluff konfigurerar reglerna
  • Kör i pre-commit och CI
  • Kombinera med dbt för SQL-arbetsflöden från början till slut

Snabbkontroll

Vilket verktyg är open source-standarden för lintning av SQL och fungerar med dbt-mallar?

Gratis att börja

Lär dig SQL med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
46
Lektioner
183

Vanliga frågor

Är lektionen ”SQLFluff och lintning” gratis?

Ja – hela texten till ”SQLFluff och lintning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i SQL Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i SQL Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”SQLFluff och lintning”?

Linta SQL med SQLFluff, upprätthåll en gemensam kodstil och rätta vanliga formateringsproblem automatiskt. Ni övar på SQL Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig SQL Academy?

Du behöver inga förkunskaper. Utbildningen i SQL Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”SQLFluff och lintning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här SQL Academy-lektionen?

Ja. Varje SQL Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Grunderna i DBT (Data Build Tool)
  2. SQLFluff och lintning
  3. Testning av SQL: dbt-tester och Great Expectations
  4. CI för schemaändringar (GitHub Actions)
← Tillbaka till SQL Academy