เครื่องมือนี้ทำอะไร
ตัวจัดรูปแบบ SQL เปลี่ยนคิวรียาว ๆ ที่อยู่ในบรรทัดเดียวให้อ่านง่ายและเยื้องอย่างสม่ำเสมอ แต่ละ clause (SELECT, FROM, WHERE, GROUP BY, ORDER BY) เริ่มบรรทัดใหม่ คอลัมน์ที่เลือกและเงื่อนไขแสดงบรรทัดละรายการ join จัดเรียงอยู่ใต้ตารางที่ join และ subquery ถูกเยื้องภายในวงเล็บ
SQL ที่จัดรูปแบบแล้วรีวิวใน pull request ได้ง่ายกว่า ดีบักได้ง่ายกว่าเมื่อคิวรีคืนแถวผิด และวางลงในเอกสารได้สะดวกกว่า ยังช่วยได้มากเมื่อคุณคัดลอกคิวรีออกมาจาก log ของ ORM หรือข้อความแจ้งข้อผิดพลาดของแอปพลิเคชัน ซึ่งทุกอย่างอยู่ในบรรทัดเดียว
วิธีใช้งาน
- วางคำสั่ง SQL หนึ่งคำสั่งหรือมากกว่าลงในช่อง อินพุต ลากไฟล์
.sqlมาวาง หรือคลิก ตัวอย่าง - เลือก Dialect ของฐานข้อมูลคุณ
- เลือก คีย์เวิร์ด เป็น UPPERCASE, lowercase หรือคงตามที่พิมพ์ ชื่อฟังก์ชันอย่าง
COUNTจะเป็นไปตามการตั้งค่าเดียวกัน - เลือก 2 ช่องว่าง 4 ช่องว่าง หรือ Tab สำหรับ การเยื้อง
- คัดลอกผลลัพธ์หรือดาวน์โหลดเป็นไฟล์
.sqlคีย์ลัด: Ctrl/Cmd+Enter จัดรูปแบบ, Ctrl/Cmd+Shift+C คัดลอก
หลายคำสั่งที่คั่นด้วยเซมิโคลอนจะถูกแยกด้วยบรรทัดว่าง คอมเมนต์คงอยู่ในตำแหน่งเดิม
ตัวอย่าง
select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id group by u.id
จะกลายเป็น
SELECT
u.id,
COUNT(o.id) AS orders
FROM
users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY
u.id
เคล็ดลับ
คีย์เวิร์ดตัวพิมพ์ใหญ่ทำให้ clause โดดเด่นออกมาจากชื่อตารางและคอลัมน์ ซึ่งเป็นแนวปฏิบัติที่ทีมส่วนใหญ่ใช้ หากทีมของคุณเขียน SQL ตัวพิมพ์เล็ก ให้เลือก lowercase แล้วทั้งคิวรีจะเป็นแบบเดียวกัน หากตัวจัดรูปแบบแจ้งว่าพบ token ที่ไม่คาดคิด ให้ตรวจว่าเลือก dialect ถูกต้อง เช่น ชื่อที่ครอบด้วย backtick ใช้ได้ใน MySQL แต่ใช้ไม่ได้ใน SQL มาตรฐาน
คำถามที่พบบ่อย
› SQL ของฉันถูกส่งไปยังเซิร์ฟเวอร์หรือไม่?
ไม่ ตัวจัดรูปแบบทำงานในเบราว์เซอร์ของคุณ คิวรีที่เปิดเผยชื่อตาราง ข้อมูลลูกค้า หรือตรรกะทางธุรกิจจึงอยู่บนอุปกรณ์ของคุณเท่านั้น
› รองรับ SQL dialect ไหนบ้าง?
SQL มาตรฐาน, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle (PL/SQL), BigQuery, Snowflake, Redshift และ Spark SQL การเลือก dialect ให้ถูกช่วยรองรับไวยากรณ์เฉพาะ เช่น identifier ที่ครอบด้วย backtick การ cast ด้วย :: หรือชื่อในวงเล็บเหลี่ยม
› การจัดรูปแบบเปลี่ยนการทำงานของคิวรีไหม?
ไม่ เปลี่ยนเฉพาะช่องว่าง และหากคุณเลือก ก็เปลี่ยนตัวพิมพ์เล็กใหญ่ของคีย์เวิร์ดและชื่อฟังก์ชัน identifier, string literal และคอมเมนต์จะคงไว้ตามที่เขียนทุกตัว
› ทำไมจึงได้ข้อความ "Unexpected end of input"?
ส่วนใหญ่เป็นเพราะวงเล็บหรือเครื่องหมายคำพูดไม่ได้ปิด ข้อผิดพลาดจะชี้ไปที่ท้ายคิวรี ให้มองหา ( หรือ ' ตัวสุดท้ายที่ไม่มีคู่