ข้ามไปยังเนื้อหา

จัดรูปแบบคำสั่ง SQL

จัดรูปแบบหรือย่อ SQL สำหรับ MySQL, PostgreSQL, SQL Server, SQLite, BigQuery, Oracle และอีก 14 ภาษาถิ่น พร้อมเลือกสไตล์ได้ ทำงานในเบราว์เซอร์ของคุณ

จัดรูปแบบแล้ว
กด จัดรูปแบบ SQL เพื่อจัดคำสั่งให้อ่านง่าย
ทำงานในเบราว์เซอร์ของคุณ · ไม่ต้องอัปโหลดวิธีการทำงาน

วิธีใช้งาน จัดรูปแบบ SQL

  1. 1

    วาง SQL ของคุณ

    วางคิวรีหรือสคริปต์ทั้งไฟล์ หรือเปิดไฟล์ .sql ปุ่มตัวอย่างจะแสดงคิวรีที่ยุ่งเหยิงให้ลองใช้

  2. 2

    เลือกภาษาถิ่น

    เลือกฐานข้อมูลที่ใช้ เพื่อให้รู้จักเครื่องหมายคำพูด ตัวดำเนินการ และคีย์เวิร์ดได้ถูกต้อง

  3. 3

    ตั้งค่าสไตล์

    เลือกตัวพิมพ์ของคีย์เวิร์ด การเยื้อง ตำแหน่งเครื่องหมายจุลภาค และเลย์เอาต์ให้ตรงกับแนวปฏิบัติของทีม

  4. 4

    จัดรูปแบบและคัดลอก

    กด จัดรูปแบบ SQL หรือ Minify แล้วคัดลอกผลลัพธ์ที่ไฮไลต์ไว้ หรือดาวน์โหลดเป็น .sql

ข้อจำกัดและ Pro

ใช้ฟรีโดยไม่ต้องสมัครสมาชิก: ภาษาถิ่น 20 แบบ ไฟล์ .sql ขนาดไม่เกิน 10 MB และสคริปต์ที่จัดรูปแบบเสร็จภายใน 20 วินาที ผลลัพธ์ที่เกิน 600,000 ตัวอักษรจะแสดงตัวอย่างบางส่วน แต่คัดลอกหรือดาวน์โหลดได้ครบทั้งหมด

Pro ช่วยลบโฆษณา ส่วนตัวจัดรูปแบบทำงานเหมือนกันในทุกแพ็กเกจ ดู Pro

เกี่ยวกับ จัดรูปแบบ SQL

วางคิวรีบรรทัดเดียวจากล็อก ผลลัพธ์ดีบักของ ORM หรือข้อความแชตของเพื่อนร่วมงาน แล้วตัวจัดรูปแบบนี้จะจัดวางให้เหมือนที่คนละเอียดรอบคอบเขียนเอง คือหนึ่งส่วนคำสั่งต่อหนึ่งบรรทัด คอลัมน์ที่เลือกและ join เยื้องอยู่ใต้คีย์เวิร์ดของตัวเอง และซับคิวรีซ้อนกันเห็นโครงสร้างได้ในพริบตา รองรับภาษาถิ่นของ SQL 20 แบบ ได้แก่ SQL มาตรฐาน, MySQL, MariaDB, PostgreSQL, SQL Server T-SQL, SQLite, Oracle PL/SQL, BigQuery, Snowflake, Redshift, Spark, Trino, DuckDB, ClickHouse, Hive, Db2, Db2 for i, SingleStore, TiDB และ Couchbase N1QL จึงคงไวยากรณ์เฉพาะแบบ เช่น ชื่อในเครื่องหมายแบ็กทิก วงเล็บเหลี่ยม การแคสต์ด้วย :: หรือสตริงแบบ dollar-quoted ไว้ครบ

คุณกำหนดสไตล์ของทีมได้เอง ทั้งคีย์เวิร์ดตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือตามที่เขียนไว้ ชื่อฟังก์ชันและชนิดข้อมูลก็เลือกได้เช่นกัน การเยื้องแบบเว้นวรรค 2 ช่อง 4 ช่อง หรือแท็บ เครื่องหมายจุลภาคท้ายบรรทัดหรือต้นบรรทัด AND และ OR ก่อนหรือหลังการขึ้นบรรทัดใหม่ และเลย์เอาต์แบบมาตรฐานหรือแบบตารางที่จัดคีย์เวิร์ดให้ตรงเป็นคอลัมน์ สคริปต์ที่มีหลายคำสั่งจะคั่นด้วยบรรทัดว่าง ส่วน Minify ทำตรงกันข้าม คือลบคอมเมนต์และช่องว่างส่วนเกิน โดยไม่แตะต้องสตริง ชื่อที่อยู่ในเครื่องหมายคำพูด และ optimizer hint

ผลลัพธ์มีการไฮไลต์ไวยากรณ์ คัดลอกได้ หรือดาวน์โหลดเป็นไฟล์ .sql การจัดรูปแบบใช้ไลบรารีโอเพนซอร์ส sql-formatter ซึ่งโหลดเมื่อกดจัดรูปแบบครั้งแรก และทำงานใน worker เบื้องหลัง สคริปต์ยาว ๆ จึงไม่ทำให้หน้าเว็บค้าง

ตัวจัดรูปแบบเปลี่ยนเฉพาะช่องว่างและตัวพิมพ์เท่านั้น ไม่ตรวจสอบชื่อตารางหรือคอลัมน์ ไม่รันคิวรี และไม่เขียนใหม่เพื่อประสิทธิภาพ สำหรับ stored procedure ที่ใช้ไวยากรณ์เฉพาะของผู้ผลิตแปลก ๆ อาจต้องเลือกภาษาถิ่นที่ใกล้เคียงที่สุด

ความเป็นส่วนตัว

SQL ถูกจัดรูปแบบภายในเบราว์เซอร์ของคุณด้วย Web Worker คิวรีที่มีชื่อตาราง ข้อมูลลูกค้า หรือข้อมูลรับรองจึงไม่ถูกส่งไปยังเซิร์ฟเวอร์ ตัวเลือกภาษาถิ่นและสไตล์ของคุณถูกบันทึกไว้ใน local storage ส่วนตัว SQL เองจะไม่ถูกเก็บไว้

คุณสมบัติ

ภาษาถิ่นของ SQL 20 แบบ

MySQL, PostgreSQL, SQL Server, Oracle, BigQuery, Snowflake และอีก 14 แบบ

สไตล์ของทีมคุณ

ตัวพิมพ์ของคีย์เวิร์ด การเยื้อง เครื่องหมายจุลภาคต้นหรือท้ายบรรทัด ตำแหน่ง AND/OR และเลย์เอาต์แบบตาราง

ย่อขนาดได้ด้วย

ลบคอมเมนต์และช่องว่างเพื่อฝัง SQL ในโค้ด โดยคงสตริงและ hint ไว้ครบ

จัดรูปแบบ SQL: คำถามที่พบบ่อย

การจัดรูปแบบจะเปลี่ยนสิ่งที่คิวรีทำหรือไม่?
ไม่เปลี่ยน สิ่งที่เปลี่ยนมีเพียงช่องว่าง การขึ้นบรรทัดใหม่ และตัวพิมพ์ของคีย์เวิร์ด ฟังก์ชัน และชนิดข้อมูล ส่วนชื่อ ตัวอักษรสตริง และคอมเมนต์จะคงไว้ตามเดิมทุกประการ การเปลี่ยนตัวพิมพ์ของคีย์เวิร์ดปลอดภัยเพราะคีย์เวิร์ด SQL ไม่แยกตัวพิมพ์ แต่หากใช้เครื่องมืออื่นเปลี่ยนตัวพิมพ์ของชื่อ ควรระวัง เพราะ PostgreSQL ถือว่าชื่อในเครื่องหมายคำพูดแยกตัวพิมพ์ ตัวจัดรูปแบบนี้จึงไม่แตะต้องชื่อเหล่านั้น
ทำไมจึงเกิดข้อผิดพลาดในการแยกวิเคราะห์?
ตัวจัดรูปแบบต้องรู้จักโครงสร้างของคำสั่ง หากวงเล็บไม่ครบคู่ ขาดคีย์เวิร์ด หรือใช้ไวยากรณ์ของฐานข้อมูลอื่น ก็จะหยุดทำงาน ข้อความแจ้งจะบอกบรรทัด คอลัมน์ และสิ่งที่คาดว่าจะพบตรงนั้น ให้เลือกภาษาถิ่นที่ฐานข้อมูลของคุณใช้ โดยชื่อในวงเล็บเหลี่ยมต้องใช้ SQL Server ส่วนแบ็กทิกต้องใช้ MySQL, MariaDB หรือ BigQuery และตรวจดูด้วยว่ามีคำสั่งที่เขียนไม่จบอยู่ท้ายสคริปต์หรือไม่
ควรวางเครื่องหมายจุลภาคไว้ต้นหรือท้ายบรรทัด?
จุลภาคท้ายบรรทัดเป็นสไตล์ที่พบบ่อยที่สุดและเครื่องมือส่วนใหญ่สร้างออกมาแบบนี้ ส่วนจุลภาคต้นบรรทัดช่วยให้คอมเมนต์คอลัมน์สุดท้ายออกได้ง่าย และเมื่อเพิ่มคอลัมน์ ผลต่างของโค้ดจะอยู่แค่บรรทัดเดียว ทีมข้อมูลบางทีมจึงชอบแบบนี้ เลือกตามที่ทีมของคุณใช้ได้เลย โดยตัวเลือกนี้ใช้กับเลย์เอาต์มาตรฐานเท่านั้น
จัดรูปแบบ stored procedure และสคริปต์หลายคำสั่งได้หรือไม่?
ได้ วางสคริปต์ทั้งไฟล์ แล้วแต่ละคำสั่งจะถูกจัดรูปแบบและคั่นด้วยบรรทัดว่าง รวมถึง CREATE TABLE, INSERT, UPDATE, MERGE และบล็อกเชิงกระบวนคำสั่งที่พบบ่อย แต่โค้ดเชิงกระบวนคำสั่งเฉพาะผู้ผลิต เช่น แบตช์ T-SQL ซับซ้อนที่มีตัวคั่น GO หรือแพ็กเกจ PL/SQL อาจเข้าใจได้ไม่ครบ ให้เลือกภาษาถิ่นที่ตรงกัน และจัดรูปแบบทีละบล็อกเล็ก ๆ หากส่วนใดล้มเหลว
Minify ลบอะไรออกบ้าง?
Minify ลบคอมเมนต์แบบ -- และ /* */ (รวมถึงคอมเมนต์ # ใน MySQL และ MariaDB) ยุบช่องว่างและการขึ้นบรรทัดใหม่ที่ติดกันให้เหลือช่องว่างเดียว และลบช่องว่างที่อยู่ข้างเครื่องหมายจุลภาคและวงเล็บ ส่วนตัวอักษรสตริง ชื่อที่อยู่ในเครื่องหมายคำพูด และ optimizer hint ที่เขียนเป็น /*+ … */ หรือ /*! … */ ของ MySQL จะคงไว้ คิวรีที่ย่อแล้วจึงทำงานเหมือนต้นฉบับทุกประการ
เครื่องมือสำหรับนักพัฒนา ทั้งหมด