เครื่องมือจัดรูปแบบ SQL
Enter SQL on the left to start formatting
เครื่องมือจัดรูปแบบ SQL GeekFormat ช่วยทำให้สวยงามและจัดระเบียบคำสั่งคิวรี SQL ที่ยุ่งเหยิงอย่างรวดเร็ว รองรับภาษาถิ่นฐานข้อมูล 20 ชนิด ได้แก่ MySQL, PostgreSQL, SQLite, SQL Server, Oracle ฯลฯ พร้อมตัวเลือกการจัดรูปแบบที่ปรับแต่งได้ เช่น ตัวพิมพ์ใหญ่-เล็กของคำสำคัญ สไตล์การเยื้อง ตำแหน่งขึ้นบรรทัดใหม่ของตัวดำเนินการ ความกว้างของนิพจน์ มีสไตล์สำเร็จรูป 4 แบบด้วยการคลิกครั้งเดียว พร้อมฟังก์ชันการบีบอัด SQL และการตรวจสอบไวยากรณ์ในตัว รองรับการอัปโหลด/ดาวน์โหลดไฟล์ แชร์ URL ปุ่มลัด ให้การเน้นไวยากรณ์และเค้าโครงแผงที่ปรับได้ตามตัวแก้ไข CodeMirror 6 พร้อมจัดรูปแบบอัตโนมัติแบบเรียลไทม์หลังจากป้อน การประมวลผลทั้งหมดเกิดขึ้นในเครื่องในเบราว์เซอร์ของคุณ—คำสั่ง SQL จะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์
คำแนะนำที่เกี่ยวข้อง
เกี่ยวกับการจัดรูปแบบ SQL
การจัดรูปแบบ SQL (SQL Formatting / SQL Beautification) หมายถึงการปรับอักขระช่องว่าง (บรรทัดใหม่ การเยื้อง ช่องว่าง) และตัวพิมพ์ใหญ่-เล็กของคำสำคัญของคำสั่ง SQL ผ่านเครื่องมืออัตโนมัติเพื่อให้มีโครงสร้างเค้าโครงที่สอดคล้องกันและอ่านง่าย ในฐานะภาษาคิวรีแบบประกาศ คิวรี SQL ที่ซับซ้อนมักเกี่ยวข้องกับประโยคหลายประโยค เช่น JOIN หลายตาราง คิวรีย่อยที่ซ้อนกัน เงื่อนไข WHERE หลายประการ การจัดกลุ่ม GROUP BY การกรอง HAVING การเรียงลำดับ ORDER BY ฯลฯ หากไม่มีการจัดรูปแบบ เนื้อหาทั้งหมดจะอัดแน่นในบรรทัดเดียวหรือมีการเยื้องที่ยุ่งเหยิงจะส่งผลกระทบร้ายแรงต่อความสามารถในการอ่านและประสิทธิภาพการบำรุงรักษา SQL ที่จัดรูปแบบแล้วจะวางแต่ละประโยคไว้บนบรรทัดของตัวเองผ่านบรรทัดใหม่และการเยื้องที่เหมาะสม แสดงระดับการซ้อนผ่านการเยื้อง ช่วยให้ผู้อ่านเข้าใจโครงสร้างคิวรีได้อย่างรวดเร็ว
เหตุใดการจัดรูปแบบ SQL จึงมีความสำคัญ? ในสภาพแวดล้อมการทำงานร่วมกันเป็นทีม นักพัฒนาที่แตกต่างกันมีความชอบสไตล์การเขียนโค้ดที่แตกต่างกัน—บางคนชอบคำสำคัญตัวพิมพ์ใหญ่ บางคนชอบตัวพิมพ์เล็ก; บางคนใช้การเยื้อง 2 ช่องว่าง บางคนใช้ 4 ช่องว่างหรือ Tab; บางคนวาง AND ไว้ที่ต้นบรรทัด บางคนวางไว้ที่ท้ายบรรทัด ความแตกต่างของสไตล์เหล่านี้เองไม่ได้ส่งผลต่อการดำเนินการ SQL แต่สร้างจำนวน diff ที่ไม่มีความหมายจำนวนมากในระหว่าง การตรวจทานโค้ด (Code Review) ทำให้ผู้ตรวจทานต้องแยกแยะระหว่างการเปลี่ยนแปลงตรรกะที่แท้จริงและเพียงการปรับการจัดรูปแบบ มาตรฐานการจัดรูปแบบ SQL ที่สอดคล้องกันและเครื่องมือจัดรูปแบบอัตโนมัติช่วยขจัดการถกเถียงเรื่องสไตล์ ช่วยให้ทีมมุ่งเน้นไปที่ตรรกะทางธุรกิจเอง
กฎหลักของการจัดรูปแบบ SQL มักรวมถึงด้านต่อไปนี้: ประการแรก ตัวพิมพ์ใหญ่-เล็กของคำสำคัญ—คำสงวน SQL เช่น SELECT, FROM, WHERE, JOIN, ON, GROUP BY, ORDER BY, HAVING, LIMIT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP มักเป็นตัวพิมพ์ใหญ่เพื่อแยกความแตกต่างจากตัวระบุ (หรือเป็นตัวพิมพ์เล็กอย่างสม่ำเสมอตามมาตรฐานของทีม); ประการที่สอง การขึ้นบรรทัดใหม่ของประโยค—แต่ละประโยคหลัก (SELECT/FROM/WHERE/GROUP BY/ORDER BY ฯลฯ) อยู่บนบรรทัดของตัวเอง; ประการที่สาม การจัดตำแหน่งชื่อคอลัมน์—ชื่อคอลัมน์หลายชื่อในรายการ SELECT แต่ละชื่อครอบครองหนึ่งบรรทัดและจัดตำแหน่งแนวตั้ง; ประการที่สี่ ระดับการเยื้อง—คิวรีย่อย เงื่อนไข JOIN นิพจน์ CASE ที่ซ้อนกัน ฯลฯ สะท้อนลำดับชั้นผ่านการเพิ่มการเยื้อง; ประการที่ห้า ตำแหน่งตัวดำเนินการ—ตัวดำเนินการตรรกะ เช่น AND/OR ถูกวางไว้อย่างสม่ำเสมอที่ต้นหรือท้ายบรรทัด
การจัดรูปแบบ SQL สำหรับภาษาถิ่นฐานข้อมูลต่างๆ มีลักษณะเฉพาะของมัน MySQL ใช้ backtick (`) เพื่ออ้างอิงตัวระบุ PostgreSQL ใช้อัญประกาศคู่ ("), SQL Server ใช้วงเล็บเหลี่ยม ([]); MySQL ใช้ LIMIT สำหรับการแบ่งหน้า PostgreSQL รองรับ LIMIT/OFFSET, SQL Server ใช้ TOP หรือ OFFSET/FETCH, Oracle ใช้ ROWNUM; PostgreSQL มีตัวดำเนินการแปลงประเภท ::, MySQL มีการเอสเคป backtick, SQL Server มีตัวระบุวงเล็บเหลี่ยม ความแตกต่างของภาษาถิ่นเหล่านี้ทำให้ตัวจัดรูปแบบต้องจดจำองค์ประกอบไวยากรณ์เฉพาะสำหรับฐานข้อมูลเฉพาะ มิฉะนั้นไวยากรณ์พิเศษอาจถูกตัดสินผิดว่าเป็นข้อผิดพลาดหรือคำสำคัญถูกแยกอย่างไม่ถูกต้อง เครื่องมือนี้นำไปใช้ตามไลบรารี sql-formatter ให้การสนับสนุนไวยากรณ์เฉพาะสำหรับภาษาถิ่น SQL หลัก 20 ชนิด
การบีบอัด SQL (SQL Minification) เป็นการดำเนินการที่ตรงข้ามกับการจัดรูปแบบและมีประโยชน์อย่างมากในบางสถานการณ์ SQL ที่พิมพ์ในบันทึกแอปพลิเคชัน SQL ที่สร้างโดยเฟรมเวิร์ก ORM (เช่น Hibernate, MyBatis, Django ORM, SQLAlchemy), SQL ที่จับได้โดยเครื่องมือตรวจสอบประสิทธิภาพฐานข้อมูล—สิ่งเหล่านี้มักอยู่ในรูปแบบบีบอัดหนึ่งบรรทัดที่ไม่มีบรรทัดใหม่ ซึ่งไม่เป็นมิตรอย่างยิ่งสำหรับการแก้ไขปัญหา—จำเป็นต้องจัดรูปแบบก่อนจึงจะอ่านได้ ในทางกลับกัน เมื่อจำเป็นต้องฝัง SQL ลงในสตริงโค้ด (เช่น การต่อสตริงใน Java/Python/JavaScript), เขียนลงในไฟล์กำหนดค่า ส่งผ่านพารามิเตอร์ URL หรือแชร์ในเครื่องมือแชทที่ไม่รองรับข้อความหลายบรรทัด การบีบอัดเป็นหนึ่งบรรทัดจะช่วยหลีกเลี่ยงปัญหาการจัดรูปแบบที่เกิดจากบรรทัดใหม่และการเยื้อง
การเลือกสไตล์การจัดรูปแบบที่เหมาะสมต้องพิจารณามาตรฐานของทีมและสถานการณ์การใช้งาน สไตล์คำสำคัญตัวพิมพ์ใหญ่เป็นธรรมเนียมดั้งเดิมของ SQL—ในยุคการพิมพ์ คำสำคัญตัวพิมพ์ใหญ่ทำให้ SQL ที่เขียนด้วยมือหรือพิมพ์ด้วยเครื่องพิมพ์ดีดอ่านง่ายขึ้น และหลายทีมและองค์กรยังคงใช้มันจนถึงทุกวันนี้ สไตล์คำสำคัญตัวพิมพ์เล็กกำลังเป็นที่นิยมมากขึ้นบนแพลตฟอร์มโค้ดสมัยใหม่เช่น GitHub เนื่องจากตัวพิมพ์เล็กดูอ่อนโยนกว่าทางสายตาและ ด้วยการเน้นไวยากรณ์ในตัวแก้ไขสมัยใหม่ ไม่จำเป็นต้องใช้ตัวพิมพ์ใหญ่-เล็กเพื่อแยกแยะคำสำคัญอีกต่อไป ความกว้างการเยื้อง 2 ช่องว่างเป็นเรื่องปกติมากขึ้นในหมู่นักพัฒนา frontend 4 ช่องว่างเป็นเรื่องปกติมากขึ้นในหมู่นักพัฒนา backend Java/C# การเยื้อง Tab ช่วยให้นักพัฒนาที่แตกต่างกันสามารถปรับแต่งความกว้างในการแสดงผลในตัวแก้ไขได้ การวางตัวดำเนินการตรรกะ AND/OR ที่ต้นบรรทัดช่วยให้การสแกนแต่ละเงื่อนไขง่ายขึ้นเมื่ออ่านรายการเงื่อนไขยาว; การวางไว้ที่ท้ายบรรทัดสอดคล้องกับนิสัยการอ่านภาษาอังกฤษมากขึ้น
หลักการนำไปใช้ของเครื่องมือจัดรูปแบบ SQL ส่วนใหญ่อาศัยการวิเคราะห์คำศัพท์ (Tokenization) และการแยกวิเคราะห์ไวยากรณ์ ไลบรารีเช่น sql-formatter จะแยกสตริง SQL ออกเป็นชุดของ token (คำสำคัญ ตัวระบุ ลิเทอรัล ตัวดำเนินการ เครื่องหมายวรรคตอน ความคิดเห็น ฯลฯ) ก่อน จากนั้นจัดเรียง token เหล่านี้ใหม่ตามกฎไวยากรณ์ (ภาษาถิ่นที่แตกต่างกันมีชุดกฎที่แตกต่างกัน) แทรกบรรทัดใหม่และการเยื้องในตำแหน่งที่เหมาะสม แตกต่างจากตัวจัดรูปแบบโค้ดทั่วไป (เช่น Prettier) ตัวจัดรูปแบบ SQL จำเป็นต้องเข้าใจโครงสร้างไวยากรณ์เฉพาะของ SQL (เช่น เงื่อนไข JOIN...ON, นิพจน์ CASE WHEN...END, วงเล็บคิวรีย่อยที่ซ้อนกัน) เพื่อการเยื้องที่ถูกต้อง ไม่ใช่แค่อาศัยการจับคู่วงเล็บปีกกาหรือวงเล็บ
ควรทราบจุดต่อไปนี้เมื่อใช้เครื่องมือจัดรูปแบบ SQL: ประการแรก การจัดรูปแบบไม่ได้ตรวจสอบความถูกต้องเชิงความหมายของ SQL—SQL ที่มีไวยากรณ์ถูกต้องแต่มีข้อผิดพลาดตรรกะ (เช่น เงื่อนไข JOIN ผิด เงื่อนไข WHERE ขาดหาย) จะยังคงไม่ถูกต้องหลังจากจัดรูปแบบ; การจัดรูปแบบเพียงปรับปรุงเค้าโครง ไม่ใช่ตรรกะ; ประการที่สอง เครื่องมือจัดรูปแบบอาจในกรณีขอบที่หายากสร้างผลลัพธ์ที่แตกต่างจาก SQL ดั้งเดิมในสถานการณ์ที่ไวต่อช่องว่าง (เช่น ช่องว่างในค่าคงที่สตริง ตำแหน่งความคิดเห็นเฉพาะ); แนะนำให้ตรวจสอบอย่างง่ายหลังจากจัดรูปแบบ; ประการที่สาม อย่าดำเนินการ SQL ที่สร้างโดยเครื่องมือจัดรูปแบบโดยตรงในสภาพแวดล้อมการใช้งานจริงโดยไม่มีการทดสอบ โดยเฉพาะ SQL ที่มีพารามิเตอร์ไดนามิก; ประการที่สี่ สำหรับ SQL ที่มีข้อมูลละเอียดอ่อน (รหัสผ่าน คีย์ PII) ให้ใช้เครื่องมือจัดรูปแบบในเครื่อง (เช่น เครื่องมือนี้) แทนเครื่องมือออนไลน์เพื่อหลีกเลี่ยงความเสี่ยงการรั่วไหลของข้อมูล
กรณีการใช้งาน
- จัดระเบียบโพรซีเดอร์ที่เก็บไว้ SQL ขนาดใหญ่ที่ไม่ได้จัดรูปแบบและคิวรี JOIN ที่ซับซ้อนเมื่อรับช่วงโครงการเก่าเพื่อทำความเข้าใจตรรกะทางธุรกิจอย่างรวดเร็ว
- ทำให้สไตล์ SQL เป็นมาตรฐานก่อนการตรวจทานโค้ดของทีมเพื่อกำจัดสัญญาณรบกวน diff ที่เกิดจากความชอบในการจัดรูปแบบส่วนตัวและมุ่งเน้นไปที่การตรวจทานตรรกะ
- จัดรูปแบบ SQL หนึ่งบรรทัดที่บีบอัดซึ่งคัดลอกมาจากบันทึกหรือคอนโซลเพื่อให้อ่านและแก้ไขปัญหาได้ง่ายขึ้น
- จัดรูปแบบตัวอย่าง SQL เมื่อเขียนเอกสารทางเทคนิคและบล็อกเพื่อเพิ่มความเป็นมืออาชีพและความสามารถในการอ่านเมื่อฝังในเอกสาร
- จัดรูปแบบ SQL ใหม่ที่ส่งออกจากไคลเอ็นต์ฐานข้อมูลด้วยการจัดรูปแบบที่ยุ่งเหยิงให้เป็นสไตล์มาตรฐานของทีมก่อนคอมมิตโค้ด
- จัดรูปแบบคำสั่งสาธิต SQL เพื่อใช้ใน PPT และคำอธิบายไวท์บอร์ดเมื่อเตรียมตัวสำหรับการสัมภาษณ์หรือการนำเสนอทางเทคนิค
- จัดรูปแบบคิวรีย่อยที่ซ้อนกันอย่างยุ่งเหยิงเพื่อค้นหาปัญหาโครงสร้าง เช่น วงเล็บที่ไม่ตรงกันหรือคำสำคัญที่ขาดหายไปเมื่อแก้ไขข้อผิดพลาด SQL
- บันทึก SQL ที่สร้างโดยเฟรมเวิร์ก ORM มักอยู่ในรูปแบบบีบอัดที่ไม่มีบรรทัดใหม่; จัดรูปแบบเพื่อให้วิเคราะห์คิวรีที่ดำเนินการจริงได้ง่ายขึ้น
- จัดรูปแบบคำสั่ง CREATE TABLE และ INSERT เพื่อปรับปรุงความสามารถในการบำรุงรักษาเมื่อพัฒนาสคริปต์การย้ายข้อมูล
- ทำให้การจัดรูปแบบเป็นมาตรฐานก่อนเปรียบเทียบเวอร์ชัน SQL ในเวอร์ชันต่างๆ เพื่อหลีกเลี่ยงความแตกต่างของการจัดรูปแบบอย่างเดียวที่รบกวนการตรวจทานโค้ด
- จัดรูปแบบคิวรีตัวอย่างเมื่อเรียนรู้ SQL เพื่อทำความเข้าใจความสัมพันธ์เชิงลำดับชั้นของ JOIN, คิวรีย่อย และ GROUP BY ผ่านการเยื้องและบรรทัดใหม่ที่ชัดเจน
- จัดรูปแบบชิ้นส่วน SQL ก่อนแชร์กับเพื่อนร่วมงานผ่านลิงก์ URL—ผู้รับจะเห็นผลลัพธ์การจัดรูปแบบที่เหมือนกันทันทีเมื่อเปิด
วิธีการใช้งาน
- เลือกภาษาถิ่นฐานข้อมูล (ค่าเริ่มต้นคือ MySQL รองรับภาษาถิ่น SQL 20 ชนิด) เพื่อให้แน่ใจว่าตัวจัดรูปแบบจดจำไวยากรณ์ได้อย่างถูกต้อง
- วางคำสั่ง SQL ที่ต้องการจัดรูปแบบลงในพื้นที่แก้ไขด้านซ้าย หรือคลิกปุ่มอัปโหลดเพื่อนำเข้าไฟล์ .sql/.txt หรือโหลด SQL ตัวอย่างจากเมนูตัวอย่าง
- คลิกปุ่มจัดรูปแบบ (Shift+Cmd/Ctrl+F) หรือรอการจัดรูปแบบอัตโนมัติ (ทริกเกอร์อัตโนมัติ 800ms หลังจากป้อน) โดยผลลัพธ์ที่จัดรูปแบบจะแสดงทันทีที่ด้านขวา
- หากต้องการปรับการจัดรูปแบบ คลิกปุ่มการตั้งค่าเพื่อขยายแผงการกำหนดค่า ปรับตัวเลือก เช่น ตัวพิมพ์ใหญ่-เล็กของคำสำคัญ การเยื้อง บรรทัดใหม่ หรือเลือกสไตล์สำเร็จรูป; สำหรับการบีบอัดหนึ่งบรรทัด คลิกปุ่มบีบอัด
- คลิกปุ่มคัดลอกเพื่อคัดลอกผลลัพธ์ หรือคลิกปุ่มดาวน์โหลดเพื่อบันทึกเป็นไฟล์ .sql หรือคลิกปุ่มแชร์เพื่อสร้างลิงก์ URL ที่มีเนื้อหา SQL
คุณสมบัติ
- ความเข้ากันได้กับภาษาถิ่นฐานข้อมูล 20 ชนิด: รองรับการจดจำไวยากรณ์และการจัดรูปแบบสำหรับภาษาถิ่น SQL 20 ชนิด ได้แก่ Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse, DuckDB และอื่นๆ อีกมากมาย
- การควบคุมตัวพิมพ์ใหญ่-เล็กของคำสำคัญ: มี 3 โหมดสำหรับคำสำคัญ เช่น SELECT/FROM/WHERE/JOIN: ตัวพิมพ์ใหญ่ (UPPER), ตัวพิมพ์เล็ก (lower), หรือรักษาต้นฉบับ (preserve) พร้อมการกำหนดค่าแยกต่างหากสำหรับประเภทข้อมูลและชื่อฟังก์ชัน
- การควบคุมตัวพิมพ์ใหญ่-เล็กของตัวระบุ: ตัวระบุ เช่น ชื่อตาราง ชื่อคอลัมน์ นามแฝง รองรับตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือรักษาต้นฉบับ ปรับให้เข้ากับมาตรฐานการเขียนโค้ดของทีมต่างๆ
- สไตล์การเยื้องที่เลือกได้: มีสไตล์การเยื้อง 3 แบบ: การเยื้องมาตรฐาน การจัดชิดซ้ายแบบตาราง (tabularLeft), การจัดชิดขวาแบบตาราง (tabularRight) เพื่อตอบสนองความชอบในการอ่านที่แตกต่างกัน
- การกำหนดค่าการเยื้องที่ยืดหยุ่น: เลือกความกว้างการเยื้องจาก 2 ช่องว่าง, 4 ช่องว่าง หรืออักขระ Tab; ตั้งจำนวนบรรทัดว่างระหว่างคำสั่งคิวรีเป็น 0/1/2 บรรทัด
- การขึ้นบรรทัดใหม่ของตัวดำเนินการตรรกะ: กำหนดว่าตัวดำเนินการตรรกะ เช่น AND/OR จะขึ้นบรรทัดใหม่ก่อน (before) หรือหลัง (after) ตัวดำเนินการเพื่อให้ตรงกับสไตล์โค้ดของทีมคุณ
- การควบคุมความกว้างของนิพจน์: เกณฑ์ความกว้างบรรทัดที่ปรับได้สำหรับการตัดบรรทัดนิพจน์ (20-200 อักขระ) ตัดบรรทัดอัตโนมัติเมื่อเกินความกว้างนี้เพื่อควบคุมความยาวโค้ดหนึ่งบรรทัด
- โหมดตัวดำเนินการหนาแน่น: เมื่อเปิดใช้งาน จะไม่มีช่องว่างพิเศษรอบตัวดำเนินการเพื่อให้ผลลัพธ์การจัดรูปแบบกระชับมากขึ้น เหมาะสำหรับสถานการณ์ SQL แบบฝัง
- ขึ้นบรรทัดใหม่ก่อนเครื่องหมายอัฒภาค: เลือกได้ว่าจะแทรกบรรทัดใหม่ก่อนเครื่องหมายอัฒภาคท้ายคำสั่งหรือไม่ โดยวางเครื่องหมายอัฒภาคไว้บนบรรทัดของตัวเองเพื่อระบุขอบเขตคำสั่งได้อย่างรวดเร็ว
- สไตล์สำเร็จรูป 4 แบบ: สลับด้วยการคลิกครั้งเดียวระหว่างสำเร็จรูป ค่าเริ่มต้น (คำสำคัญ UPPER + การเยื้อง 2 ช่องว่าง), ตัวพิมพ์เล็ก (คำสำคัญทั้งหมดตัวพิมพ์เล็ก), กระชับ (จัดตำแหน่งแบบตาราง + ตัวดำเนินการหนาแน่น), โล่ง (การเยื้อง 4 ช่องว่าง + บรรทัดว่างคู่) โดยไม่ต้องปรับด้วยตนเอง
- ฟังก์ชันการบีบอัด SQL: บีบอัด SQL เป็นบรรทัดเดียวด้วยการคลิกครั้งเดียว ลบความคิดเห็น ช่องว่างส่วนเกิน และบรรทัดใหม่อัตโนมัติ—เหมาะสำหรับเอาต์พุตบันทึก การต่อโค้ด และการฝังในเอกสาร
- ฟังก์ชันการตรวจสอบไวยากรณ์: ตรวจสอบไวยากรณ์ SQL ขั้นพื้นฐาน แสดงข้อความแสดงข้อผิดพลาดเมื่อการจัดรูปแบบล้มเหลวเพื่อช่วยค้นหาปัญหาไวยากรณ์
- SQL ตัวอย่างในตัว: มีชุด SQL ตัวอย่าง 4 ชุด: คิวรีพื้นฐาน, คิวรี JOIN ที่ซับซ้อน, แบตช์หลายคำสั่ง, คำสั่ง CREATE TABLE เพื่อประสบการณ์การจัดรูปแบบที่รวดเร็ว
- อัปโหลด/ดาวน์โหลดไฟล์: อัปโหลดไฟล์ .sql/.txt เพื่อนำเข้า SQL โดยตรง; ดาวน์โหลดผลลัพธ์ที่จัดรูปแบบเป็นไฟล์ .sql เพื่อบันทึก
- แชร์ URL: เข้ารหัส SQL ลงใน hash URL โดยใช้การบีบอัด LZ-String—คัดลอกลิงก์เพื่อแชร์การกำหนดค่าการจัดรูปแบบและเนื้อหา SQL
- จัดรูปแบบอัตโนมัติแบบเรียลไทม์: จัดรูปแบบอัตโนมัติด้วย debounce 800ms หลังจากป้อน SQL แสดงผลลัพธ์ทันทีโดยไม่ต้องคลิกปุ่มซ้ำๆ
- ปุ่มลัด: Shift+Cmd/Ctrl+F เพื่อจัดรูปแบบ, Shift+Cmd/Ctrl+C เพื่อบีบอัด, Shift+Cmd/Ctrl+V เพื่อตรวจสอบ, Shift+Cmd/Ctrl+O เพื่ออัปโหลด, Shift+Cmd/Ctrl+D เพื่อดาวน์โหลด, Shift+Cmd/Ctrl+K เพื่อลบ
- ตัวแก้ไข CodeMirror: ตัวแก้ไขที่เน้นไวยากรณ์ SQL ตาม CodeMirror 6 พร้อมการปรับความกว้างแผงด้านซ้าย/ขวาที่ลากได้ การปรับขนาดฟอนต์ และแผงประวัติ
- คัดลอกผลลัพธ์ด้วยการคลิกครั้งเดียว: คัดลอก SQL ที่จัดรูปแบบหรือบีบอัดไปยังคลิปบอร์ดด้วยการคลิกครั้งเดียวเพื่อวางโดยตรงลงในไคลเอ็นต์ฐานข้อมูลหรือโค้ด
- การประมวลผลในเครื่องบนเบราว์เซอร์อย่างสมบูรณ์: การจัดรูปแบบ SQL ทั้งหมดเสร็จสิ้นใน JavaScript ของเบราว์เซอร์ตามไลบรารี sql-formatter; คำสั่ง SQL จะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ใดๆ เลย รับประกันความปลอดภัยของข้อมูล
คำถามที่พบบ่อย
การจัดรูปแบบ SQL เปลี่ยนแปลงตรรกะคิวรีหรือไม่? SQL ที่จัดรูปแบบแล้วสามารถดำเนินการได้โดยตรงหรือไม่?
ไม่เปลี่ยนแปลงตรรกะคิวรี การจัดรูปแบบ SQL เพียงปรับอักขระช่องว่าง (บรรทัดใหม่ การเยื้อง ช่องว่าง) และตัวพิมพ์ใหญ่-เล็กของคำสำคัญ; ไม่แก้ไขตัวระบุ ค่า ตัวดำเนินการ การเรียกใช้ฟังก์ชัน หรือโครงสร้างคิวรีใน SQL SQL ที่จัดรูปแบบแล้วมีความเท่าเทียมกันทางความหมายกับ SQL ต้นฉบับและสามารถคัดลอกโดยตรงไปยังไคลเอ็นต์ฐานข้อมูล เช่น MySQL Workbench, pgAdmin, DBeaver, Navicat เพื่อดำเนินการได้ อย่างไรก็ตาม แนะนำให้ตรวจสอบในสภาพแวดล้อมทดสอบก่อนดำเนินการในสภาพแวดล้อมการใช้งานจริง
รองรับภาษาถิ่นฐานข้อมูลอะไรบ้าง? แล้วความแตกต่างของไวยากรณ์ SQL ระหว่างฐานข้อมูลล่ะ?
รองรับภาษาถิ่น SQL 20 ชนิด: Standard SQL, MySQL, MariaDB, TiDB, PostgreSQL, SQLite, BigQuery, Snowflake, Redshift, DB2, DB2i, PL/SQL (Oracle), T-SQL (SQL Server), Spark SQL, Hive, Trino, ClickHouse, SingleStoreDB, DuckDB, N1QL (Couchbase) ฐานข้อมูลต่างๆ มีความแตกต่างในไวยากรณ์การแบ่งหน้า (LIMIT เทียบกับ LIMIT/OFFSET เทียบกับ TOP เทียบกับ ROWNUM), การต่อสตริง, ฟังก์ชันวันที่, การอ้างอิงตัวระบุ (backtick เทียบกับอัญประกาศคู่ เทียบกับวงเล็บเหลี่ยม) ฯลฯ การเลือกภาษาถิ่นที่ถูกต้องช่วยให้แน่ใจว่าตัวจัดรูปแบบระบุคำสำคัญและชื่อฟังก์ชันได้อย่างถูกต้องและหลีกเลี่ยงการจัดรูปแบบฟังก์ชันเฉพาะภาษาถิ่นผิด
การบีบอัด SQL คืออะไร? แตกต่างจากการจัดรูปแบบอย่างไร?
การบีบอัด SQL (Minify) เป็นการดำเนินการที่ตรงข้ามกับการจัดรูปแบบ: ลบความคิดเห็นทั้งหมด (รวมถึงความคิดเห็นหลายบรรทัด /* */ และความคิดเห็นหนึ่งบรรทัด --), รวมอักขระช่องว่างต่อเนื่องเป็นช่องว่างเดี่ยว, ลบช่องว่างส่วนเกินรอบวงเล็บ/จุลภาค/อัฒภาค/ตัวดำเนินการ ส่งออก SQL หนึ่งบรรทัดที่กระชับ การบีบอัดเหมาะสำหรับสถานการณ์ เช่น การฝัง SQL ลงในสตริงโค้ด การเขียนลงในไฟล์บันทึก การส่งผ่านพารามิเตอร์ URL การแชร์ในหน้าต่างแชทเพื่อหลีกเลี่ยงความสับสนของบรรทัดใหม่ ในทางกลับกัน การจัดรูปแบบจะเพิ่มบรรทัดใหม่และการเยื้องที่เหมาะสมเพื่อปรับปรุงความสามารถในการอ่าน
การจัดรูปแบบอัตโนมัติจะทริกเกอร์เมื่อใด? สามารถปิดใช้งานได้หรือไม่?
หลังจากป้อนหรือแก้ไข SQL ในพื้นที่แก้ไขด้านซ้าย การจัดรูปแบบจะถูกทริกเกอร์อัตโนมัติหลังจากการหน่วงเวลา debounce 800ms (โดยมีเงื่อนไขว่าการจัดรูปแบบครั้งก่อนไม่มีข้อผิดพลาดไวยากรณ์) นี่คือเพื่อแสดงผลลัพธ์การจัดรูปแบบทันทีหลังจากที่คุณหยุดพิมพ์ หากคุณต้องการการควบคุมด้วยตนเอง เพียงคลิกปุ่มจัดรูปแบบในแถบเครื่องมือโดยไม่ต้องรอการทริกเกอร์อัตโนมัติ ในปัจจุบันไม่มีสวิตช์แยกต่างหากเพื่อปิดใช้งานการจัดรูปแบบอัตโนมัติ แต่จะไม่ทริกเกอร์ซ้ำๆ ตราบใดที่เนื้อหาที่ป้อนไม่ได้รับการแก้ไข
ควรทำอย่างไรเมื่อการจัดรูปแบบล้มเหลวพร้อมข้อความเตือนข้อผิดพลาดไวยากรณ์?
ตัวจัดรูปแบบรายงานข้อผิดพลาดเมื่อพบไวยากรณ์ SQL ที่ไม่สามารถวิเคราะห์ได้ สาเหตุที่พบบ่อย ได้แก่: 1) วงเล็บไม่ตรงกัน—ตรวจสอบว่าจำนวนวงเล็บซ้ายและขวาตรงกันหรือไม่; 2) สตริงไม่ปิด—ตรวจสอบว่าอัญประกาศเดี่ยว/อัญประกาศคู่ปรากฏเป็นคู่หรือไม่ อัญประกาศภายในสตริงจำเป็นต้องมีการเอสเคป (เช่น '' หรือ \'); 3) เลือกภาษาถิ่นฐานข้อมูลไม่ถูกต้อง—เช่น ใช้ไวยากรณ์การแปลงประเภท :: เฉพาะของ PostgreSQL แต่เลือกภาษาถิ่น MySQL; 4) ชิ้นส่วน SQL ไม่สมบูรณ์—เช่น มีเฉพาะเงื่อนไข WHERE โดยไม่มี SELECT FROM ข้อความแสดงข้อผิดพลาดแสดงตำแหน่งปัญหาและเหตุผลที่รายงานโดยตัวแยกวิเคราะห์ ซึ่งสามารถใช้เพื่อค้นหาปัญหาได้ คุณยังสามารถคลิกปุ่มตรวจสอบ (Shift+Cmd/Ctrl+V) ก่อนเพื่อตรวจสอบไวยากรณ์
จะเลือกระหว่างโหมดตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก และรักษาตัวพิมพ์ใหญ่-เล็กของคำสำคัญอย่างไร?
คำสำคัญตัวพิมพ์ใหญ่ (UPPER) เป็นรูปแบบการเขียนโค้ด SQL ที่เป็นแบบดั้งเดิมและเป็นที่นิยมที่สุด—คำสำคัญตัวพิมพ์ใหญ่ เช่น SELECT/FROM/WHERE/JOIN สร้างความแตกต่างที่มองเห็นได้กับชื่อตาราง/คอลัมน์ ทำให้สามารถค้นหาโครงสร้าง SQL ได้อย่างรวดเร็วในฐานโค้ดขนาดใหญ่ คำสำคัญตัวพิมพ์เล็กเหมาะกับสภาพแวดล้อม IDE สมัยใหม่มากขึ้น (ตัวแก้ไขสมัยใหม่มีการเน้นไวยากรณ์ ไม่ได้อาศัยความแตกต่างของตัวพิมพ์ใหญ่-เล็กอีกต่อไป) ด้วยลักษณะภาพที่สม่ำเสมอมากขึ้น รักษา (preserve) จะปล่อยให้ตัวพิมพ์ใหญ่-เล็กที่คุณป้อนไม่เปลี่ยนแปลง เหมาะสำหรับการปรับการจัดรูปแบบขั้นต่ำกับโค้ดที่มีอยู่ กลยุทธ์ตัวพิมพ์ใหญ่-เล็กสำหรับคำสำคัญ ตัวระบุ (ชื่อตาราง/คอลัมน์) ประเภทข้อมูล (VARCHAR/INT/BIGINT) และชื่อฟังก์ชัน (COUNT/SUM/COALESCE) สามารถกำหนดค่าแยกกันได้
ความแตกต่างระหว่างโหมดการจัดตำแหน่งแบบ Tabular และการเยื้องมาตรฐานคืออะไร?
การเยื้องมาตรฐาน (standard) ใช้การเยื้องตามลำดับชั้นแบบดั้งเดิมด้วยจำนวนช่องว่างคงที่สำหรับแต่ละประโยค โหมดการจัดชิดซ้าย/ขวาแบบตารางจะจัดตำแหน่งชื่อคอลัมน์ในรายการ SELECT นิพจน์ในเงื่อนไข WHERE ฯลฯ ตามคอลัมน์ สร้างเอฟเฟกต์ภาพที่เหมือนตาราง ตัวอย่างเช่น ชื่อคอลัมน์หลายชื่อหลัง SELECT จะถูกจัดตำแหน่งแนวตั้ง และนามแฝง AS ก็ถูกจัดตำแหน่งไปยังตำแหน่งคอลัมน์เดียวกัน โหมดนี้ใช้งานง่ายมากเมื่ออ่านคิวรีหลายคอลัมน์บนจอภาพกว้าง แต่อาจทำให้บรรทัดยาวเกินไปบนหน้าจอแคบ
จะสลับระหว่างสไตล์ SQL มาตรฐานของทีมและความชอบส่วนตัวได้อย่างรวดเร็วอย่างไร?
ใช้ปุ่มสำเร็จรูปในแผงการตั้งค่า: ค่าเริ่มต้น (คำสำคัญ UPPER + การเยื้องมาตรฐาน 2 ช่องว่าง), ตัวพิมพ์เล็ก (คำสำคัญทั้งหมดตัวพิมพ์เล็ก), กระชับ (การจัดตำแหน่ง tabularLeft + ตัวดำเนินการหนาแน่น), โล่ง (การเยื้อง 4 ช่องว่าง + บรรทัดว่างคู่ระหว่างคิวรี) หากทีมของคุณมีมาตรฐานเฉพาะ ให้ปรับตัวเลือกด้วยตนเองและจัดรูปแบบ การบันทึกสำเร็จรูปแบบกำหนดเองในปัจจุบันยังไม่รองรับ แต่ด้วยจำนวนตัวเลือกการกำหนดค่าที่จำกัด การปรับอย่างรวดเร็วก็สะดวก
SQL ที่จัดรูปแบบแล้วสูญเสียความคิดเห็นหรือไม่?
การดำเนินการ จัดรูปแบบ (Format) จะรักษาความคิดเห็นไว้—ทั้งความคิดเห็นหนึ่งบรรทัด -- และความคิดเห็นหลายบรรทัด /* */ จะถูกเก็บไว้ใกล้ตำแหน่งเดิม (ตำแหน่งเฉพาะขึ้นอยู่กับตรรกะการประมวลผลความคิดเห็นของไลบรารี sql-formatter) อย่างไรก็ตาม การดำเนินการ บีบอัด (Compress) จะลบความคิดเห็นทั้งหมดเพื่อสร้าง SQL หนึ่งบรรทัดที่กระชับที่สุด; คัดลอกผลลัพธ์ที่จัดรูปแบบก่อนหากต้องการรักษาความคิดเห็นไว้ก่อนการบีบอัด
รองรับปุ่มลัดอะไรบ้าง? ความแตกต่างระหว่าง Mac และ Windows/Linux คืออะไร?
รองรับปุ่มลัดต่อไปนี้ (ใช้ปุ่ม Cmd บน Mac, ปุ่ม Ctrl บน Windows/Linux ทั้งหมดต้องกด Shift พร้อมกัน): Shift+Cmd/Ctrl+F จัดรูปแบบ; Shift+Cmd/Ctrl+C บีบอัด; Shift+Cmd/Ctrl+V ตรวจสอบไวยากรณ์; Shift+Cmd/Ctrl+O อัปโหลดไฟล์; Shift+Cmd/Ctrl+D ดาวน์โหลดไฟล์; Shift+Cmd/Ctrl+K ลบเนื้อหา คลิกไอคอนเครื่องหมายคำถามในแถบเครื่องมือเพื่อดูรายการปุ่มลัดได้ทุกเมื่อ
มีข้อจำกัดขนาดสำหรับการอัปโหลดไฟล์ SQL หรือไม่? รองรับรูปแบบไฟล์อะไรบ้าง?
รองรับการอัปโหลดไฟล์ข้อความในรูปแบบ .sql และ .txt ตามทฤษฎีแล้วไม่มีข้อจำกัดที่เข้มงวดเกี่ยวกับขนาดไฟล์ แต่การประมวลผลไฟล์ขนาดใหญ่มากของเบราว์เซอร์ (เช่น ไฟล์ดัมพ์ SQL ที่เกิน 1MB) อาจมีปัญหาด้านประสิทธิภาพ แนะนำให้ประมวลผลคิวรีแต่ละรายการหรือไฟล์สคริปต์ขนาดเล็ก สำหรับไฟล์ SQL ขนาดใหญ่มาก (เช่น ดัมพ์ฐานข้อมูลที่สมบูรณ์) ให้แบ่งเป็นส่วนย่อยๆ ก่อนจัดรูปแบบ เนื้อหาไฟล์ถูกอ่านผ่าน API FileReader ของเบราว์เซอร์และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์
คุณสมบัติการแชร์ URL ปลอดภัยหรือไม่? เซิร์ฟเวอร์สามารถเห็นเนื้อหา SQL ได้หรือไม่?
คุณสมบัติการแชร์ URL จะบีบอัดเนื้อหา SQL โดยใช้ LZ-String และเข้ารหัสลงในส่วน hash ของ URL (เนื้อหาหลัง #) ส่วน hash ของ URL มีลักษณะที่ว่ามันจะไม่ถูกส่งไปยังเซิร์ฟเวอร์พร้อมกับคำขอ HTTP และจะถูกประมวลผลเฉพาะในเครื่องในเบราว์เซอร์เท่านั้น เมื่อคุณคัดลอกลิงก์แชร์ให้ผู้อื่น เบราว์เซอร์ของพวกเขาจะแยกวิเคราะห์ hash และขยายมันเพื่อแสดงเนื้อหา SQL—SQL จะไม่ผ่านเซิร์ฟเวอร์ใดๆ ตลอดกระบวนการ อย่างไรก็ตาม โปรดทราบว่าลิงก์แชร์มีเนื้อหา SQL ที่สมบูรณ์; หาก SQL มีข้อมูลที่ละเอียดอ่อน (เช่น รหัสผ่าน คีย์ ข้อมูลส่วนบุคคล) อย่าแชร์ลิงก์ในช่องทางสาธารณะ
สามารถจัดรูปแบบสคริปต์ที่มีหลายคำสั่ง SQL ได้หรือไม่?
ได้ เครื่องมือนี้รองรับการจัดรูปแบบแบตช์ของหลายคำสั่ง SQL (เช่น คำสั่ง SELECT/INSERT/UPDATE/CREATE TABLE หลายคำสั่งที่คั่นด้วยอัฒภาค) คุณสามารถควบคุมระยะห่างระหว่างคำสั่ง (0/1/2 บรรทัด) ผ่านตัวเลือก "จำนวนบรรทัดว่างระหว่างคิวรี" ในแผงการตั้งค่า โหลด SQL ตัวอย่าง "หลายคำสั่ง" เพื่อสัมผัสประสบการณ์การจัดรูปแบบหลายคำสั่ง แต่ละคำสั่งจะถูกเยื้องและจัดรูปแบบอย่างอิสระ โดยคั่นระหว่างคำสั่งด้วยจำนวนบรรทัดว่างที่กำหนดค่าไว้
ขนาดคำสั่ง SQL ขนาดไหนที่ทำให้เกิดความล่าช้า?
อาศัยการนำไปใช้ JavaScript บริสุทธิ์ของไลบรารี sql-formatter การประมวลผล SQL ภายในไม่กี่ร้อยบรรทัดมักตอบสนองในระดับมิลลิวินาทีในเบราว์เซอร์สมัยใหม่โดยไม่มีความล่าช้าที่สังเกตเห็นได้ แม้แต่โพรซีเดอร์ที่เก็บไว้หรือคิวรีที่ซับซ้อนหลายพันบรรทัดก็เสร็จสิ้นภายใน 1 วินาที การคำนวณทั้งหมดเสร็จสิ้นบนเธรดหลักของเบราว์เซอร์; ไฟล์ขนาดใหญ่มาก (เช่น ดัมพ์ SQL ที่เกิน 10,000 บรรทัด) อาจทำให้การแช่แข็งอินเทอร์เฟซชั่วคราว—แนะนำให้ประมวลผลแบบแบตช์
เครื่องมือนี้ต้องการการเข้าถึงอินเทอร์เน็ตหรือไม่? ข้อมูล SQL ปลอดภัยหรือไม่?
ทำงานแบบออฟไลน์หลังจากโหลดหน้าเว็บ; การจัดรูปแบบ การบีบอัด และการตรวจสอบ SQL ทั้งหมดเสร็จสิ้นใน JavaScript ในเครื่องของเบราว์เซอร์โดยไม่ต้องส่งคำสั่ง SQL ที่คุณป้อนไปยังเซิร์ฟเวอร์ภายนอกใดๆ ไม่ใช้การติดตาม Cookie หรือรวบรวมเนื้อหา SQL ที่ผู้ใช้ป้อน นำไปใช้ตามไลบรารี sql-formatter โอเพ่นซอร์สที่มีประสบการณ์พร้อมตรรกะโค้ดที่โปร่งใสและสามารถตรวจสอบได้
การแก้ไขปัญหา
ควรทำอย่างไรเกี่ยวกับข้อผิดพลาดการจัดรูปแบบ "Parse error" หรือ "การจัดรูปแบบ SQL ล้มเหลว"?
ตัวจัดรูปแบบทำการแยกวิเคราะห์ SQL ตามไลบรารี sql-formatter และรายงานข้อผิดพลาดเมื่อพบไวยากรณ์ที่ไม่รู้จัก สาเหตุและวิธีแก้ไขที่พบบ่อย: 1) วงเล็บไม่ตรงกัน—ตรวจสอบว่าจำนวนวงเล็บซ้ายและขวาตรงกันหรือไม่ ใช้คุณสมบัติการเน้นการจับคู่วงเล็บของตัวแก้ไขเพื่อช่วยตรวจสอบ; 2) อัญประกาศสตริงไม่ปิด—ตรวจสอบว่าอัญประกาศเดี่ยว อัญประกาศคู่ปรากฏเป็นคู่หรือไม่ อัญประกาศภายในสตริงจำเป็นต้องมีการเอสเคป (เช่น '' หรือ \'); 3) เลือกภาษาถิ่นฐานข้อมูลไม่ถูกต้อง—เช่น ใช้ตัวดำเนินการ :: ของ PostgreSQL แต่เลือกภาษาถิ่น MySQL สลับไปยังภาษาถิ่นที่ถูกต้อง; 4) คำสั่ง SQL ไม่สมบูรณ์—เช่น มีเฉพาะประโยค WHERE โดยไม่มี SELECT FROM; 5) ใช้ไวยากรณ์เฉพาะฐานข้อมูลที่พิเศษมาก (เช่น โฟลว์ควบคุมโพรซีเดอร์ที่เก็บไว้บางอย่าง) ลองสลับไปยังภาษาถิ่นที่ใกล้เคียงที่สุด หรือทำให้ชิ้นส่วน SQL ง่ายขึ้นก่อนจัดรูปแบบ
อักขระจีนหรืออักขระพิเศษกลายเป็นอ่านไม่ออกหลังจากจัดรูปแบบ?
เครื่องมือนี้รองรับการเข้ารหัส UTF-8 อย่างสมบูรณ์; อักขระจีนและ Unicode จะไม่เปลี่ยนแปลงในระหว่างการจัดรูปแบบ หากปรากฏอักขระอ่านไม่ออก มักเป็นเพราะ SQL ที่คุณวางเองมาจากไฟล์ที่มีการเข้ารหัสไม่ถูกต้อง (เช่น คัดลอกจากไฟล์การเข้ารหัส GBK) ตรวจสอบให้แน่ใจว่าไฟล์ต้นทางถูกบันทึกโดยใช้การเข้ารหัส UTF-8 หรือแปลงไฟล์เป็นการเข้ารหัส UTF-8 ก่อนวาง ตัวแก้ไข CodeMirror ฝั่งเบราว์เซอร์เริ่มต้นใช้ UTF-8 และไม่ทำให้เกิดการแปลงการเข้ารหัส
ไม่มีการตอบสนองหรือแสดงว่างเปล่าหลังจากอัปโหลดไฟล์ SQL?
การอัปโหลดไฟล์รองรับเฉพาะไฟล์ข้อความที่มีนามสกุล .sql และ .txt เท่านั้น หากไฟล์เป็นรูปแบบไบนารี (เช่น ไฟล์ฐานข้อมูล .sqlite เอกสาร .doc) ไฟล์จะแสดงอักขระอ่านไม่ออกหรือว่างเปล่าหลังจากอัปโหลด นอกจากนี้ เบราว์เซอร์บางตัวมีข้อจำกัดด้านความปลอดภัยในการอ่านไฟล์ในเครื่องผ่าน JavaScript—ตรวจสอบให้แน่ใจว่าคุณเลือกไฟล์โดยการคลิกปุ่มอัปโหลดอย่างแข็งขันแทนที่จะลากและวาง (การอัปโหลดแบบลากและวางในปัจจุบันยังไม่รองรับ) ขนาดไฟล์แนะนำไม่เกิน 1MB; หากเกินอาจทำให้การแยกวิเคราะห์เบราว์เซอร์ช้า
คำสำคัญบางคำกลายเป็นตัวพิมพ์เล็ก/ตัวพิมพ์ใหญ่หลังจากจัดรูปแบบ ไม่สอดคล้องกับอินพุตต้นฉบับ?
นี่เป็นพฤติกรรมการจัดรูปแบบปกติ ตัวเลือกตัวพิมพ์ใหญ่-เล็กของคำสำคัญ (keywordCase) ค่าเริ่มต้นคือ UPPER ซึ่งจะแปลงคำสำคัญ SQL เป็นตัวพิมพ์ใหญ่อย่างสม่ำเสมอ หากคุณต้องการรักษาตัวพิมพ์ใหญ่-เล็กดั้งเดิมไม่ให้เปลี่ยนแปลง ให้ตั้งค่าตัวเลือกตัวพิมพ์ใหญ่-เล็กสำหรับคำสำคัญ ตัวระบุ ประเภทข้อมูล ฟังก์ชันเป็น "รักษา (preserve)" ในแผงการตั้งค่า—ด้วยวิธีนี้ตัวจัดรูปแบบจะปรับเฉพาะบรรทัดใหม่และการเยื้องโดยไม่เปลี่ยนตัวพิมพ์ใหญ่-เล็กของอักขระใดๆ
อภิธานศัพท์
- ภาษาถิ่น SQL (SQL Dialect)
- ส่วนขยายและรูปแบบของ SQL มาตรฐานโดยระบบจัดการฐานข้อมูล (DBMS) ที่แตกต่างกัน ตัวอย่างเช่น LIMIT ของ MySQL, การแปลงประเภท :: ของ PostgreSQL, TOP ของ SQL Server, ROWNUM ของ Oracle ล้วนเป็นไวยากรณ์เฉพาะภาษาถิ่น การเลือกภาษาถิ่นที่ถูกต้องในระหว่างการจัดรูปแบบช่วยให้แน่ใจว่าการแยกวิเคราะห์ไวยากรณ์ถูกต้อง
- ตัวพิมพ์ใหญ่-เล็กของคำสำคัญ (Keyword Case)
- กลยุทธ์ตัวพิมพ์ใหญ่-เล็กสำหรับคำสงวน SQL (SELECT/FROM/WHERE/JOIN ฯลฯ) ตัวพิมพ์ใหญ่ (UPPER) เป็นสไตล์ดั้งเดิม ตัวพิมพ์เล็ก (lower) เป็นที่นิยมมากขึ้นในการพัฒนาสมัยใหม่ รักษา (preserve) สำหรับการเปลี่ยนแปลงขั้นต่ำ
- ตัวระบุ (Identifier)
- ชื่อวัตถุฐานข้อมูลใน SQL รวมถึงชื่อฐานข้อมูล ชื่อตาราง ชื่อคอลัมน์ นามแฝง ชื่อดัชนี ชื่อมุมมอง ชื่อโพรซีเดอร์ที่เก็บไว้ ฯลฯ ฐานข้อมูลที่แตกต่างกันอ้างอิงตัวระบุแตกต่างกัน: MySQL ใช้ backtick, PostgreSQL ใช้อัญประกาศคู่, SQL Server ใช้วงเล็บเหลี่ยม
- สไตล์การเยื้อง (Indent Style)
- ควบคุมการจัดตำแหน่งการเยื้องในระหว่างการจัดรูปแบบ SQL การเยื้องมาตรฐานใช้ความก้าวหน้าตามลำดับชั้น; tabularLeft/tabularRight จัดตำแหน่งชื่อคอลัมน์และนามแฝงในรูปแบบตาราง ความสามารถในการอ่านดีขึ้นบนหน้าจอกว้างแต่อาจสร้างบรรทัดที่ยาวขึ้น
- การขึ้นบรรทัดใหม่ของตัวดำเนินการตรรกะ (Logical Operator Newline)
- ตำแหน่งขึ้นบรรทัดใหม่ของตัวดำเนินการตรรกะ เช่น AND/OR ในเงื่อนไขหลายบรรทัด before หมายถึงตัวดำเนินการที่จุดเริ่มต้นของบรรทัดถัดไป after หมายถึงตัวดำเนินการที่จุดสิ้นสุดของบรรทัดปัจจุบัน ทีมต่างๆ มีความชอบที่แตกต่างกัน
- ความกว้างของนิพจน์ (Expression Width)
- เกณฑ์จำนวนอักขระหนึ่งบรรทัดที่ทริกเกอร์การตัดบรรทัด (20-200 อักขระ) นิพจน์ที่เกินความกว้างนี้จะถูกตัดบรรทัด คล้ายกับการตั้งค่า printWidth/ruler ในตัวแก้ไขโค้ด
- ตัวดำเนินการหนาแน่น (Dense Operators)
- ตัวเลือกการจัดรูปแบบหนึ่ง ซึ่งเมื่อเปิดใช้งาน จะไม่ปล่อยช่องว่างพิเศษรอบตัวดำเนินการ (=, <, >, +, -, ฯลฯ) เช่น `WHERE id=1 AND status='active'` แทนที่จะเป็น `WHERE id = 1 AND status = 'active'` สร้างเอาต์พุตที่กระชับมากขึ้น
- จำนวนบรรทัดว่างระหว่างคิวรี (Lines Between Queries)
- จำนวนบรรทัดว่างระหว่างคำสั่ง SQL หลายคำสั่ง 0 หมายถึงการจัดเรียงติดกัน 1 หมายถึงการแยกหนึ่งบรรทัดว่าง (ทั่วไป) 2 หมายถึงสองบรรทัดว่าง (สไตล์โล่ง) ส่งผลต่อความสามารถในการอ่านของสคริปต์หลายคำสั่ง
- การบีบอัด SQL (SQL Minify/Compress)
- ลบความคิดเห็นและช่องว่างส่วนเกินทั้งหมดออกจาก SQL ที่จัดรูปแบบแล้ว รวมเข้ากับรูปแบบกระชับหนึ่งบรรทัด เหมาะสำหรับเอาต์พุตบันทึก การฝังโค้ด การส่งผ่าน URL ฯลฯ—การดำเนินการที่ตรงข้ามกับการจัดรูปแบบ
- พิมพ์สวย (Pretty Print)
- เอาต์พุตของโค้ดหรือข้อมูลในรูปแบบที่อ่านง่ายสูงผ่านการเยื้องและบรรทัดใหม่อัตโนมัติ SQL Pretty Print คือการทำให้สวยงามของการจัดรูปแบบ SQL ตรงข้ามกับ Minify (การบีบอัด)
- CodeMirror
- ส่วนประกอบตัวแก้ไขโค้ดฝั่งเบราว์เซอร์ (เวอร์ชัน 6) ที่ใช้โดยเครื่องมือนี้ ให้การเน้นไวยากรณ์ SQL การแสดงหมายเลขบรรทัด การพับโค้ด และการปรับปรุงการแก้ไขอื่นๆ—โซลูชันตัวแก้ไขโค้ดเว็บที่ใช้กันอย่างแพร่หลายในอุตสาหกรรม
- sql-formatter
- ไลบรารีการจัดรูปแบบ SQL โอเพ่นซอร์สที่ใช้ที่แกนหลักของเครื่องมือนี้ รองรับการวิเคราะห์คำศัพท์และเอาต์พุตที่จัดรูปแบบสำหรับภาษาถิ่น SQL หลายภาษา—เป็นหนึ่งในไลบรารีการจัดรูปแบบ SQL ที่ได้รับความนิยมมากที่สุดในระบบนิเวศ frontend
รายการภาษาถิ่น SQL ที่รองรับ
เครื่องมือนี้รองรับภาษาถิ่นฐานข้อมูล SQL 20 ชนิด—การเลือกภาษาถิ่นที่ตรงกับฐานข้อมูลของคุณให้ผลลัพธ์การจัดรูปแบบที่ดีที่สุด:
| ภาษาถิ่น | ฐานข้อมูล | คำอธิบาย |
|---|---|---|
| Standard SQL | SQL มาตรฐาน | ไวยากรณ์มาตรฐาน ANSI SQL เหมาะสำหรับสถานการณ์ทั่วไปและภาษาถิ่นที่ไม่ทราบ |
| MySQL | MySQL / TiDB | ฐานข้อมูลเชิงสัมพันธ์โอเพ่นซอร์สที่ได้รับความนิยมมากที่สุด ตัวระบุ backtick การแบ่งหน้า LIMIT |
| MariaDB | MariaDB | สาขาของ MySQL ไวยากรณ์เข้ากันได้กับ MySQL พร้อมฟังก์ชันที่ขยายเพิ่มเติม |
| PostgreSQL | PostgreSQL | ฐานข้อมูลโอเพ่นซอร์สที่มีคุณสมบัติหลากหลาย ตัวระบุอัญประกาศคู่ การแปลงประเภท :: |
| SQLite | SQLite | ฐานข้อมูลขนาดเล็กแบบฝัง ใช้กันทั่วไปในแอปพลิเคชันมือถือและเบราว์เซอร์ |
| T-SQL | SQL Server / Azure | Transact-SQL ของ Microsoft SQL Server ตัวระบุวงเล็บเหลี่ยม การแบ่งหน้า TOP |
| PL/SQL | Oracle | ส่วนขยาย SQL เชิงกระบวนการของ Oracle การแบ่งหน้า ROWNUM แพ็กเกจในตัวที่หลากหลาย |
| BigQuery | Google BigQuery | คลังข้อมูลบนคลาวด์ของ Google รองรับประเภทที่ซ้อนกันเช่น STRUCT/ARRAY |
| Snowflake | Snowflake | คลังข้อมูลเนทีฟบนคลาวด์ที่มีความสามารถในการประมวลผลข้อมูลกึ่งโครงสร้างที่แข็งแกร่ง |
| Redshift | AWS Redshift | คลังข้อมูลของ Amazon Web Services ใช้ PostgreSQL เป็นพื้นฐานแต่มีไวยากรณ์เฉพาะ |
การเปรียบเทียบสไตล์สำเร็จรูปการจัดรูปแบบ
สไตล์สำเร็จรูป 4 แบบด้วยการคลิกครั้งเดียวสำหรับสถานการณ์การใช้งานที่แตกต่างกัน:
| สำเร็จรูป | คำสำคัญ | การเยื้อง | ตัวดำเนินการ | ระยะห่างคิวรี |
|---|---|---|---|---|
| ค่าเริ่มต้น | UPPER | 2 ช่องว่าง มาตรฐาน | ระยะห่างปกติ | 1 บรรทัดว่าง |
| ตัวพิมพ์เล็ก | lower | 2 ช่องว่าง มาตรฐาน | ระยะห่างปกติ | 1 บรรทัดว่าง |
| กระชับ | UPPER | ชิดซ้าย Tabular | โหมดหนาแน่น | 1 บรรทัดว่าง |
| โล่ง | UPPER | 4 ช่องว่าง มาตรฐาน | ระยะห่างปกติ | 2 บรรทัดว่าง |
ภาพรวมปุ่มลัด
ปุ่มลัดทั้งหมดต้องกดปุ่มปรับแต่ง + Shift + ปุ่มตัวอักษรที่เกี่ยวข้องพร้อมกัน:
| การดำเนินการ | Mac | Windows/Linux | คำอธิบาย |
|---|---|---|---|
| จัดรูปแบบ | ⇧⌘F | Shift+Ctrl+F | ทำให้คำสั่ง SQL สวยงาม เพิ่มบรรทัดใหม่และการเยื้อง |
| บีบอัด | ⇧⌘C | Shift+Ctrl+C | บีบอัด SQL เป็นหนึ่งบรรทัด ลบความคิดเห็นและช่องว่าง |
| ตรวจสอบ | ⇧⌘V | Shift+Ctrl+V | ตรวจสอบความถูกต้องของไวยากรณ์ SQL |
| อัปโหลด | ⇧⌘O | Shift+Ctrl+O | โหลด .sql/.txt จากไฟล์ในเครื่อง |
| ดาวน์โหลด | ⇧⌘D | Shift+Ctrl+D | บันทึกผลลัพธ์เป็นไฟล์ .sql |
| ลบ | ⇧⌘K | Shift+Ctrl+K | ลบเนื้อหาอินพุตและเอาต์พุต |
Privacy & Security
การดำเนินการทั้งหมดของเครื่องมือจัดรูปแบบ SQL นี้เสร็จสิ้นอย่างสมบูรณ์ในเครื่องในเบราว์เซอร์ของคุณ: คำสั่ง SQL ที่คุณป้อน ภาษาถิ่นที่เลือก และการกำหนดค่าการจัดรูปแบบทั้งหมดถูกประมวลผลใน JavaScript ของเบราว์เซอร์ผ่านไลบรารี sql-formatter โดยไม่ต้องส่งเนื้อหา SQL หรือการกำหนดค่าใดๆ ไปยังเซิร์ฟเวอร์ภายนอกผ่านเครือข่าย การอัปโหลดไฟล์อ่านเนื้อหาไฟล์ในเครื่องผ่าน API HTML5 FileReader โดยไม่มีการส่งผ่านเครือข่าย คุณสมบัติการแชร์ URL จะเข้ารหัส SQL ที่บีบอัดแล้วในส่วน hash ของ URL (เนื้อหาหลัง # จะไม่ถูกส่งไปยังเซิร์ฟเวอร์พร้อมกับคำขอ HTTP) จะถูกขยายและแสดงผลในเครื่องในเบราว์เซอร์เท่านั้น ไม่ใช้การติดตาม Cookie หรือรวบรวมเนื้อหา SQL ที่ผู้ใช้ป้อนหรือข้อมูลพฤติกรรมการใช้งาน หลังจากปิดหรือรีเฟรชหน้า เนื้อหาอินพุตและสถานะการกำหนดค่าจะถูกรีเซ็ตอัตโนมัติ (บันทึกประวัติจะถูกเก็บไว้ใน localStorage ในเครื่องเท่านั้น)
Authoritative References
- GitHubเอกสารทางการ sql-formatter
- codemirror.netเว็บไซต์ทางการ CodeMirror 6
- WikipediaWikipedia - ไวยากรณ์ SQL
- จำลองตาบอดสี
- ตัวแปลงสี
- เครื่องมือแปลง htaccess เป็น Nginx
- ตัวแปลง SQL
- ตัวแยกคุกกี้
- ตัวสร้าง Cron
- ตัวตรวจสอบ Cron
- จัดรูปแบบ CSS
- บีบอัด CSS
- CSV เป็น Excel
- แปลงค่าเงิน
- ตรวจสอบความแตกต่าง
- สร้าง Favicon
- จัดรูปแบบ XML
- ตัวแปลงเลขฐานสิบหก
- จัดรูปแบบ HTML
- บีบอัด HTML
- HTML เป็น Markdown
- แปลง Markdown เป็น HTML
- ตัวจัดรูปแบบ JavaScript
- บีบอัด JS
- เครื่องมือจัดรูปแบบ JSX
- บีบอัด JSX
- การจัดกลุ่มคำหลัก
- เครื่องมือสร้าง Lorem Ipsum
- สร้างตาราง Markdown
- เครื่องมือสร้าง Meta Tag
- เครื่องมือสร้างรหัสผ่าน
- เครื่องมือตรวจสอบความแข็งแรงของรหัสผ่าน
- เครื่องสร้าง QR Code/บาร์โค้ด
- เครื่องมือทดสอบ Regex
- สร้าง URL Slug
- สร้าง SQL
- เครื่องมือจัดรูปแบบ SQL
- เครื่องนับคำ
- เครื่องมือเวลา
- จัดรูปแบบ TS
- บีบอัด TS
- จัดรูปแบบ TSX
- บีบอัด TSX
- ตัวแปลง Unix Timestamp
- เครื่องมือสร้าง UUID
- จัดรูปแบบ YAML
- Case Converter