0Pricing
SQL Academy · บทเรียน

SQLFluff และการตรวจรูปแบบโค้ด

ตรวจรูปแบบ SQL ด้วย SQLFluff บังคับใช้รูปแบบมาตรฐานของทีม และแก้ไขปัญหาการจัดรูปแบบที่พบบ่อยโดยอัตโนมัติ

SQLFluff และการตรวจรูปแบบโค้ด เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

เหตุใดจึงต้องตรวจรูปแบบ SQL

SQL มักเขียนด้วยมือ จึงจัดรูปแบบไม่สอดคล้องกันได้ง่าย การตรวจรูปแบบจะบังคับใช้รูปแบบมาตรฐานของทีมโดยอัตโนมัติ:

  • คำสำคัญตัวพิมพ์เล็กเทียบกับ UPPER
  • วางจุลภาคท้ายบรรทัดเทียบกับต้นบรรทัด
  • รูปแบบการตั้งชื่อสำหรับตารางและคอลัมน์
  • การเยื้อง
  • รูปแบบที่ควรหลีกเลี่ยง (SELECT *, การ JOIN ที่กำกวม และอื่น ๆ)

SQLFluff: ตัวตรวจรูปแบบโดยพฤตินัย

เป็นโอเพนซอร์ส รองรับรูปแบบ SQL หลายแบบ และทำงานร่วมกับ dbt ได้ดี:

pip install sqlfluff

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

ตั้งค่า SQLFluff

ไฟล์การตั้งค่า .sqlfluff:

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

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

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

กฎมาตรฐาน

SQLFluff มีกฎมากกว่า 50 ข้อ ครอบคลุมการตั้งชื่อ การจัดวาง การใช้ตัวพิมพ์ใหญ่เล็ก โครงสร้าง และความกำกวม คุณสามารถปิดใช้งานเป็นรายกฎได้:

[sqlfluff]
exclude_rules = AM05, ST05

ปิดใช้งานภายในบรรทัด

ข้ามการตรวจสอบสำหรับบรรทัดเดียว:

SELECT *  -- noqa: AM04
FROM users;

ผสานรวมกับ dbt

SQLFluff เข้าใจ Jinja และฟังก์ชันอ้างอิง:

sqlfluff lint --templater dbt models/

ตัวดักก่อนยืนยันการเปลี่ยนแปลง

เรียกใช้ SQLFluff ก่อนยืนยันการเปลี่ยนแปลงทุกครั้ง:

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

ในระบบผสานรวมต่อเนื่อง

บล็อกคำขอรวมโค้ดที่มีข้อผิดพลาดจากการตรวจรูปแบบ:

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

รูปแบบที่ควรหลีกเลี่ยงในการตรวจรูปแบบ

  • L044/AM04 — หลีกเลี่ยง SELECT *
  • AM05 — หลีกเลี่ยง JOIN โดยนัย (จุลภาค)
  • ST05 — หลีกเลี่ยงคิวรีย่อยใน FROM (ใช้ CTE)
  • L010 — การใช้ตัวพิมพ์ใหญ่เล็กไม่สอดคล้องกัน

ตัวจัดรูปแบบเทียบกับตัวตรวจสอบโค้ด

SQLFluff ทำได้ทั้งสองอย่าง ได้แก่ ตรวจสอบ AND จัดรูปแบบอัตโนมัติ:

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

เครื่องมืออื่น ๆ

  • pg_format — จัดรูปแบบ SQL ให้อ่านง่าย (เน้น PostgreSQL)
  • SQLFluff เป็นเครื่องมือที่มีการใช้งานแพร่หลายที่สุด และผสานการทำงานกับ dbt ได้
  • การจัดรูปแบบเมื่อบันทึกในเครื่องมือแก้ไข (VS Code, JetBrains)

สรุป

การตรวจสอบรูปแบบช่วยขจัดข้อถกเถียงเรื่องสไตล์และตรวจจับข้อผิดพลาดจริง

  • SQLFluff สำหรับตรวจสอบและจัดรูปแบบ
  • .sqlfluff ใช้กำหนดกฎ
  • เรียกใช้ในขั้นตอนก่อนคอมมิตและ CI
  • ใช้ร่วมกับ dbt สำหรับกระบวนการทำงาน SQL แบบครบวงจร

ตรวจสอบความเข้าใจ

เครื่องมือใดเป็นมาตรฐานแบบโอเพนซอร์สสำหรับตรวจสอบ SQL และทำงานร่วมกับแม่แบบ dbt ได้

คำถามที่พบบ่อย

บทเรียน “SQLFluff และการตรวจรูปแบบโค้ด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “SQLFluff และการตรวจรูปแบบโค้ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “SQLFluff และการตรวจรูปแบบโค้ด”

ตรวจรูปแบบ SQL ด้วย SQLFluff บังคับใช้รูปแบบมาตรฐานของทีม และแก้ไขปัญหาการจัดรูปแบบที่พบบ่อยโดยอัตโนมัติ คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “SQLFluff และการตรวจรูปแบบโค้ด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม

ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน DBT (เครื่องมือสร้างข้อมูล)
  2. SQLFluff และการตรวจรูปแบบโค้ด
  3. การทดสอบ SQL: การทดสอบ dbt, Great Expectations
  4. CI สำหรับการเปลี่ยนแปลงโครงสร้างข้อมูล (GitHub Actions)
← กลับไปที่ SQL Academy