SQL Formatter & Beautifier

วาง query ที่ยุ่งเหยิงแล้วรับ SQL ที่สะอาดและเยื้องอย่างสม่ำเสมอ รองรับ 17 dialect การปรับตัวพิมพ์คีย์เวิร์ด และการย่อในคลิกเดียว ทั้งหมดในเบราว์เซอร์ของคุณ

ทำงานในเบราว์เซอร์ไม่ต้องสมัครไม่มีการอัปโหลด

SQL ที่จัดรูปแบบแล้ว

วิธีใช้ SQL Formatter

  1. วางคำสั่ง SQL หนึ่งคำสั่งหรือมากกว่าลงในช่องข้อมูลขาเข้า หรือเปิดไฟล์ .sql
  2. เลือก dialect ของฐานข้อมูล เพื่อให้พาร์สไวยากรณ์เฉพาะ เช่น การแคสต์ด้วย ::, [brackets], backtick หรือสตริง $$ ได้ถูกต้อง
  3. ตั้งค่าตัวพิมพ์คีย์เวิร์ด (UPPER, lower หรือคงเดิม) การเยื้อง และจำนวนบรรทัดว่างระหว่างคำสั่ง
  4. สลับไปที่ ย่อ เพื่อตัดคอมเมนต์และช่องว่างสำหรับ log, ORM หรือพารามิเตอร์ใน URL
  5. คัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์ .sql

ทำไมต้องจัดรูปแบบ SQL?

query ที่คัดลอกจาก log ของ ORM, query plan หรือโค้ดแอปพลิเคชันมักมาเป็นบรรทัดยาวบรรทัดเดียว การวางแต่ละ clause (SELECT, FROM, JOIN, WHERE, GROUP BY) ไว้คนละบรรทัดและเยื้องคอลัมน์และเงื่อนไขทำให้อ่าน logic ได้ง่าย ยังทำให้ diff ในการรีวิวโค้ดเล็กลง และช่วยให้คุณเห็นเงื่อนไข join ที่หายไปหรือ OR ที่วางผิดตำแหน่ง

แนวทางสไตล์ SQL

  • คีย์เวิร์ดตัวพิมพ์ใหญ่ (SELECT, WHERE) แยกไวยากรณ์ SQL ออกจากชื่อตารางและคอลัมน์ style guide ส่วนใหญ่แนะนำแบบนี้ แม้ตัวพิมพ์เล็กจะนิยมในทีม dbt และ analytics
  • หนึ่งคอลัมน์ต่อบรรทัด ทำให้การเพิ่มหรือลบคอลัมน์เป็น diff เพียงบรรทัดเดียว
  • การเยื้องที่สม่ำเสมอ (2 หรือ 4 ช่องว่าง) ภายใน clause และ subquery แสดงการซ้อนให้เห็นในพริบตา
  • ตัวปิดคำสั่ง: ปิดทุกคำสั่งด้วย ; เพื่อให้สคริปต์ที่มีหลายคำสั่งไม่กำกวม

SQL dialect ที่รองรับ

Standard SQL, PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL, Trino/Presto, Hive, IBM Db2, Couchbase N1QL, SingleStore และ TiDB หาก query พาร์สไม่ผ่าน ให้ลอง dialect ที่เจาะจงกว่า: @variables, พารามิเตอร์ $1 และ operator เฉพาะของผู้ผลิตจะรู้จักเฉพาะใน dialect ของตัวเอง

ตัวย่อทำอะไร

โหมดย่อจะลบคอมเมนต์ --, # และ /* */ ยุบช่องว่างและการขึ้นบรรทัดให้เหลือช่องว่างเดียว และตัดช่องว่างรอบจุลภาคและวงเล็บ string literal และ identifier ที่อยู่ในเครื่องหมายคำพูด ('…', "…", `…`, […], $$…$$) ถูกคัดลอกทุกไบต์ ความหมายของ query จึงไม่เปลี่ยน

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

SQL ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ การจัดรูปแบบใช้ไลบรารีโอเพนซอร์ส sql-formatter ที่ทำงานในเบราว์เซอร์ของคุณ query ที่มีชื่อตาราง ข้อมูลลูกค้า หรือข้อมูลรับรองจะอยู่บนเครื่องของคุณเท่านั้น
การจัดรูปแบบเปลี่ยนการทำงานของ query หรือไม่?
ไม่ เปลี่ยนเฉพาะช่องว่าง การขึ้นบรรทัด และ (หากคุณเลือก) ตัวพิมพ์ของคีย์เวิร์ด identifier, string literal และคอมเมนต์ถูกคงไว้ตามที่เขียน
ทำไม SQL ที่ถูกต้องจึงเกิด parse error?
query น่าจะใช้ไวยากรณ์เฉพาะของฐานข้อมูลอื่น ให้เลือก dialect ที่ตรงกัน เช่น PostgreSQL สำหรับการแคสต์ ::type หรือ SQL Server สำหรับชื่อใน [bracketed] และ @params
จัดรูปแบบหลายคำสั่งพร้อมกันได้ไหม?
ได้ คั่นคำสั่งด้วยเครื่องหมายอัฒภาค และคุณเลือกได้ว่าจะให้มีบรรทัดว่างระหว่างคำสั่งในผลลัพธ์กี่บรรทัด
การเปลี่ยนตัวพิมพ์คีย์เวิร์ดจะเปลี่ยนชื่อคอลัมน์หรือไม่?
ไม่ เปลี่ยนตัวพิมพ์เฉพาะคีย์เวิร์ดสงวน ชนิดข้อมูล และฟังก์ชันในตัว ชื่อตารางและคอลัมน์คงการสะกดเดิมไว้

เครื่องมือที่เกี่ยวข้อง