DevToys Web Pro iconDevToys Web Proบล็อก
ให้คะแนนเรา:
ลองใช้ส่วนขยายเบราว์เซอร์:

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

การกำหนดค่า

  • สำเนียง SQL

  • การเยื้อง

  • รูปแบบการเยื้อง

  • รูปแบบตัวพิมพ์ของคีย์เวิร์ด

อินพุต

  • เอาต์พุต

  • Loading editor...
    Loading editor...
    รายละเอียดทางเทคนิค

    ตัวจัดรูปแบบ SQL ทำงานอย่างไร

    เครื่องมือนี้ทำอะไร

    ตัวจัดรูปแบบ SQL เป็นยูทิลิตีสำหรับนักพัฒนาที่นำคิวรี SQL ที่ยังไม่จัดรูปแบบมาแปลงให้เป็นโค้ดที่อ่านได้และเยื้องอย่างสม่ำเสมอ โดยจะพาร์สคำสั่ง SQL ระบุคีย์เวิร์ด คลอส และนิพจน์ จากนั้นจัดรูปแบบใหม่ด้วยการเยื้องและการขึ้นบรรทัดใหม่ที่เหมาะสม เครื่องมือนี้ทำหน้าที่ได้ทั้งเป็น SQL beautifier และ SQL prettifier ทำให้คิวรีบรรทัดเดียวที่กระชับอ่านได้ เมื่อคุณต้องการ format sql online เครื่องมือบนเบราว์เซอร์นี้ให้ผลลัพธ์ทันที มีพรีเซ็ตไดอะเล็กต์สำหรับ MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Snowflake และระบบฐานข้อมูลอื่น ๆ อีกมากมาย โดยรองรับไวยากรณ์เฉพาะผู้ขายแบบ best-effort ตัวจัดรูปแบบคิวรี SQL สามารถจัดการคำสั่ง SELECT, คิวรี INSERT, คำสั่ง UPDATE, นิยาม CREATE TABLE และคิวรีที่ซับซ้อนที่มี join, subquery และ CTE ตัวจัดรูปแบบยังทำให้รูปแบบตัวพิมพ์ของคีย์เวิร์ดเป็นมาตรฐาน (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) และใช้ระยะห่างที่สม่ำเสมอรอบตัวดำเนินการและคลอส

    กรณีการใช้งานทั่วไปของนักพัฒนา

    นักพัฒนาใช้ตัวจัดรูปแบบ SQL เพื่อทำให้คิวรีฐานข้อมูลอ่านได้ระหว่างการรีวิวโค้ด เมื่อดีบักประสิทธิภาพของคิวรี หรือเมื่อจัดทำเอกสารสคีมาฐานข้อมูล ตัวจัดรูปแบบ SQL ช่วยระบุข้อผิดพลาดเชิงตรรกะ join ที่ขาดหาย หรือโครงสร้างคิวรีที่ไม่มีประสิทธิภาพ นักพัฒนาจำนวนมากใช้ตัวจัดรูปแบบ SQL เพื่อ pretty print sql ทำให้สไตล์คิวรีเป็นมาตรฐานทั้งทีม และทำให้การเยื้องและรูปแบบตัวพิมพ์ของคีย์เวิร์ดสม่ำเสมอ เครื่องมือนี้มีประโยชน์เมื่อทำงานกับโค้ดเบสเก่าที่มี SQL จัดรูปแบบไม่ดี หรือเมื่อดึงคิวรีจากล็อกของแอปพลิเคชันที่มาเป็นสตริงบรรทัดเดียว ตัวจัดรูปแบบ SQL ยังช่วยเมื่อเตรียมคิวรีสำหรับเอกสาร การนำเสนอ หรือการแชร์กับสมาชิกทีม

    รูปแบบข้อมูล ชนิด หรือรูปแบบย่อย

    ตัวจัดรูปแบบ SQL รองรับไดอะเล็กต์ SQL หลายแบบ ซึ่งแต่ละแบบมีฟีเจอร์ไวยากรณ์เฉพาะ ตัวจัดรูปแบบมีพรีเซ็ตไดอะเล็กต์สำหรับ MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Snowflake และระบบฐานข้อมูลอื่น ๆ อีกมากมาย โดยรองรับไวยากรณ์เฉพาะผู้ขายแบบ best-effort MySQL รองรับตัวระบุด้วย backtick และฟังก์ชันเฉพาะอย่าง CONCAT PostgreSQL ใช้สตริงแบบ dollar-quoted และไวยากรณ์อาร์เรย์ SQL Server มีส่วนขยาย T-SQL อย่าง TOP และชนิดข้อมูลเฉพาะ ตัวจัดรูปแบบรองรับสไตล์การเยื้องต่าง ๆ: แบบมาตรฐาน (จัดแนวคลอส), แบบตารางชิดซ้าย (คีย์เวิร์ดชิดขวา), และแบบตารางชิดขวา (คีย์เวิร์ดชิดซ้าย) สามารถจัดรูปแบบคำสั่ง DDL (CREATE, ALTER, DROP), คำสั่ง DML (SELECT, INSERT, UPDATE, DELETE) และคำสั่ง DCL (GRANT, REVOKE) คิวรีที่ซับซ้อนที่มี CTE, window function และ subquery ซ้อนกันจะถูกจัดการด้วยระดับการเยื้องที่เหมาะสม

    ตัวอย่างเช่น คิวรีแบบกระชับอย่างนี้:

    SELECT u.id,u.name,o.total FROM users u JOIN orders o ON u.id=o.user_id WHERE u.created_at>'2024-01-01' ORDER BY o.total DESC LIMIT 10

    จะถูกจัดรูปแบบด้วยการเยื้องที่เหมาะสม:

    SELECT
            u.id,
            u.name,
            o.total
          FROM
            users u
            JOIN orders o ON u.id = o.user_id
          WHERE
            u.created_at > '2024-01-01'
          ORDER BY
            o.total DESC
          LIMIT
            10

    ข้อผิดพลาดที่พบบ่อยและกรณีขอบ

    ตัวจัดรูปแบบ SQL อาจมีปัญหากับส่วนขยายเฉพาะผู้ขายหรือไวยากรณ์ SQL ที่ไม่เป็นมาตรฐานซึ่งไม่เข้ากับกฎการพาร์สมาตรฐาน ตัวระบุที่ใส่เครื่องหมายคำพูดแตกต่างกันไปตามฐานข้อมูล: PostgreSQL ใช้ "User", SQL Server ใช้ [User], และ MySQL ใช้ backtick `user` ตัวแทนพารามิเตอร์ก็แตกต่างกัน: PostgreSQL ใช้ $1, MySQL ใช้ ?, และ SQL Server ใช้ @id ตัวจัดรูปแบบอาจจัดการสิ่งเหล่านี้ได้ไม่ถูกต้องเสมอไป ขึ้นอยู่กับไดอะเล็กต์ที่เลือก คอมเมนต์ใน SQL (ทั้งแบบบรรทัดเดียวและแบบบล็อก) ต้องถูกคงไว้ให้ถูกต้อง เพราะตัวจัดรูปแบบบางตัวอาจจัดการผิดพลาดได้ Stored procedure, ฟังก์ชัน และทริกเกอร์ที่มีโฟลว์การควบคุมซับซ้อนอาจจัดรูปแบบให้สม่ำเสมอได้ยาก SQL แบบไดนามิกที่ประกอบเป็นสตริงอาจจัดรูปแบบได้ไม่ถูกต้อง เพราะตัวจัดรูปแบบมองว่าเป็นสตริงลิเทอรัล ตัวจัดรูปแบบบางตัวอาจจัดการ CASE statement, window function หรือเงื่อนไข JOIN ที่ซับซ้อนได้ไม่ถูกต้อง นักพัฒนาควรตรวจสอบว่าการจัดรูปแบบไม่เปลี่ยนความหมายของคิวรี โดยเฉพาะกรณีขอบที่เกี่ยวข้องกับลำดับความสำคัญของตัวดำเนินการหรือการเรียกใช้ฟังก์ชัน

    เมื่อใดควรใช้เครื่องมือนี้แทนการเขียนโค้ด

    ใช้ตัวจัดรูปแบบ SQL บนเบราว์เซอร์สำหรับการจัดรูปแบบคิวรีอย่างรวดเร็ว งานแบบครั้งเดียว หรือเมื่อทำงานนอกสภาพแวดล้อมการพัฒนาของคุณ เหมาะสำหรับจัดรูปแบบคิวรี SQL ที่พบในล็อก เอกสาร หรือโค้ดสไนปเป็ตที่แชร์กัน สำหรับโค้ดโปรดักชัน ให้ใช้ตัวจัดรูปแบบที่ผสานใน IDE หรือเครื่องมือบรรทัดคำสั่งที่สามารถผสานเข้ากับ pre-commit hook และไปป์ไลน์ CI/CD ได้ เครื่องมือจัดการฐานข้อมูลมักมีตัวจัดรูปแบบในตัวที่เข้าใจสคีมาฐานข้อมูลของคุณโดยเฉพาะ เครื่องมือบนเบราว์เซอร์เด่นเรื่องการจัดรูปแบบเฉพาะหน้า ขณะที่โซลูชันที่อยู่ในโค้ดให้ความสม่ำเสมอ การทำงานอัตโนมัติ และการผสานกับระบบควบคุมเวอร์ชัน สำหรับโค้ดเบสขนาดใหญ่ การจัดรูปแบบ SQL แบบอัตโนมัติช่วยให้สไตล์สม่ำเสมอในคิวรีฐานข้อมูลทั้งหมด