วิธีใช้งาน
- วางคำสั่ง SQL หนึ่งคำสั่งขึ้นไป หรือกด “ลองตัวอย่าง”
- เลือก dialect ของฐานข้อมูลของคุณ เพื่อให้ระบบรู้จักคีย์เวิร์ด การใส่เครื่องหมายคำพูด และตัวดำเนินการของฐานข้อมูลนั้น
- ตั้งค่าตัวพิมพ์ของคีย์เวิร์ดและการเยื้อง คิวรีที่จัดรูปแบบแล้วจะแสดงทางด้านขวาเมื่อคุณพิมพ์
- กด “ย่อขนาด” เพื่อดูเวอร์ชันบรรทัดเดียว แล้วคัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์ .sql
วิธีการทำงาน
การจัดรูปแบบใช้ไลบรารีโอเพนซอร์ส sql-formatter มันจะแยกคิวรีออกเป็นโทเค็นตามกฎของไดอะเล็กต์ที่คุณเลือก วางแต่ละคำสั่งหลัก (SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY…) ไว้ในบรรทัดของตัวเอง เยื้องรายการคอลัมน์และเงื่อนไข และปรับใช้ตัวพิมพ์ของคำสงวนตามที่คุณเลือก มันเปลี่ยนช่องว่างและ (หากคุณเลือก) เปลี่ยนตัวพิมพ์ของคำสงวน; ตัวระบุ สตริงลิเทอรัล และคอมเมนต์จะถูกเก็บไว้ การเลือกไดอะเล็กต์ที่ถูกต้องเป็นสิ่งสำคัญ เช่น แบ็กติกใช้ครอบชื่อใน MySQL, วงเล็บเหลี่ยมใน SQL Server และ $$ เริ่มต้นตัวฟังก์ชันใน PostgreSQL
ฟอร์แมตเตอร์เป็นเครื่องมือจัดวาง ไม่ใช่ฐานข้อมูล มันไม่ตรวจสอบว่าตารางหรือคอลัมน์มีอยู่จริงหรือไม่ และไม่ตรวจสอบไวยากรณ์ทั้งหมด ดังนั้น SQL ที่ไม่ถูกต้องบางส่วนจะถูกจัดรูปแบบโดยไม่แจ้งเตือน เมื่อไม่สามารถเข้าใจอินพุตได้ เช่น วงเล็บเปิดไม่ปิด มันจะรายงานบรรทัดและคอลัมน์ที่มันหยุด
Minify ทำงานแตกต่างออกไป: มันเก็บทุกโทเค็นและยุบช่องว่างที่ติดกันให้เหลือช่องว่างเดียวและลบคอมเมนต์ (optimizer hints เช่น /*+ INDEX(t) */ และคอมเมนต์ MySQL /*! … */ จะถูกเก็บไว้ เพราะมีผลต่อพฤติกรรม) สตริง ตัวระบุที่อยู่ในเครื่องหมายคำพูด และเนื้อหาในเครื่องหมาย $$ จะถูกคัดลอกโดยไม่เปลี่ยนแปลง ถ้าเครื่องหมายคำพูดหรือคอมเมนต์ไม่ถูกปิด minify จะหยุดพร้อมกับแจ้งข้อผิดพลาดแทนการเดา
ตัวอย่าง
อ่านคิวรีจากบันทึก
บันทึกคิวรีช้าแสดงบรรทัดความยาว 400 อักขระหนึ่งบรรทัด เมื่อเลือกไดอะเล็กต์ MySQL และใช้คำสงวนตัวพิมพ์ใหญ่ มันจะกลายเป็นบล็อกที่อ่านง่าย โดยแต่ละเงื่อนไข JOIN และ WHERE อยู่คนละบรรทัด ทำให้สังเกตเห็นดัชนีที่หายไปได้ง่าย
สไตล์ที่สม่ำเสมอสำหรับการรีวิวโค้ด
ทีมจัดรูปแบบทุก migration ด้วยไดอะเล็กต์ PostgreSQL คำสงวนตัวพิมพ์เล็ก และเยื้อง 4 ช่องว่างก่อน commit ทำให้ diff แสดงเฉพาะการเปลี่ยนแปลงจริง
ฝัง SQL ในโค้ด
Minify เปลี่ยนคิวรีรายงานที่มีคอมเมนต์และหลายบรรทัดให้เป็นบรรทัดเดียว เช่น SELECT id, name FROM users WHERE active = 1 ORDER BY name พร้อมนำไปวางในสตริงในสคริปต์
คำถามที่พบบ่อย
รองรับฐานข้อมูลใดบ้าง
Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino/Presto, DuckDB, IBM Db2, SingleStoreDB, TiDB และ Couchbase N1QL
การจัดรูปแบบจะเปลี่ยนการทำงานของคิวรีหรือไม่
ไม่ควรเปลี่ยนการทำงานของคิวรี: จะเปลี่ยนเฉพาะช่องว่าง และตัวพิมพ์ของคีย์เวิร์ดหากเลือกไว้เท่านั้น ตัวพิมพ์เล็กหรือใหญ่ของคีย์เวิร์ดไม่มีผลใน SQL แต่ควรตรวจสอบผลลัพธ์ก่อนใช้กับข้อมูลจริง โดยเฉพาะฟีเจอร์ที่ไม่ปกติของ dialect
ทำไมฉันจึงเห็นข้อความ “ไม่สามารถจัดรูปแบบได้”
ตัวแยกโทเค็นพบสิ่งที่จัดวางไม่ได้ ซึ่งมักเกิดจากวงเล็บหรือเครื่องหมายคำพูดที่ปิดไม่ครบ หรือไวยากรณ์จาก dialect อื่น ให้ตรวจสอบบรรทัดและคอลัมน์ในข้อความ และตรวจสอบว่า dialect ที่เลือกตรงกับฐานข้อมูลของคุณ
เครื่องมือนี้ตรวจสอบความถูกต้องของ SQL หรือไม่
ไม่ตรวจสอบ เครื่องมือนี้ไม่ได้เชื่อมต่อกับฐานข้อมูลและไม่รู้จัก schema ของคุณ คิวรีที่จัดรูปแบบแล้วอาจยังทำงานไม่สำเร็จเมื่อคุณรัน
ความเป็นส่วนตัว
SQL ของคุณถูกจัดรูปแบบในเบราว์เซอร์ด้วย JavaScript ไม่มีการอัปโหลด จัดเก็บ หรือรวมอยู่ในข้อมูลวิเคราะห์ และเครื่องมือนี้ไม่เชื่อมต่อกับฐานข้อมูลใด ๆ