tigtools

ตัวจัดรูปแบบ SQL

วางคิวรี เลือก dialect ของฐานข้อมูล แล้วรับ SQL ที่สะอาดและเยื้องสม่ำเสมอ ไม่มีการส่งข้อมูลไปยังเซิร์ฟเวอร์

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

การเยื้อง

วิธีใช้งาน

  1. วางคำสั่ง SQL หนึ่งคำสั่งขึ้นไป หรือกด “ลองตัวอย่าง”
  2. เลือก dialect ของฐานข้อมูลของคุณ เพื่อให้ระบบรู้จักคีย์เวิร์ด การใส่เครื่องหมายคำพูด และตัวดำเนินการของฐานข้อมูลนั้น
  3. ตั้งค่าตัวพิมพ์ของคีย์เวิร์ดและการเยื้อง คิวรีที่จัดรูปแบบแล้วจะแสดงทางด้านขวาเมื่อคุณพิมพ์
  4. กด “ย่อขนาด” เพื่อดูเวอร์ชันบรรทัดเดียว แล้วคัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์ .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 ไม่มีการอัปโหลด จัดเก็บ หรือรวมอยู่ในข้อมูลวิเคราะห์ และเครื่องมือนี้ไม่เชื่อมต่อกับฐานข้อมูลใด ๆ