การทำงานของเครื่องมือจัดรูปแบบ SQL
เครื่องมือจัดรูปแบบ SQL เป็นเครื่องมือออนไลน์ที่ช่วยแปลงรหัส SQL ที่อ่านยากและยุ่งเหยิงให้มีความเป็นระเบียบเรียบร้อยและอ่านง่ายขึ้นในทันที นอกเหนือจากการจัดรูปแบบแล้ว เครื่องมือนี้ยังสามารถอธิบายการทำงานของคิวรี SQL แต่ละส่วนเป็นภาษาทั่วไปที่เข้าใจง่าย โดยจะวิเคราะห์และแยกแยะรายละเอียดการทำงานออกเป็นส่วนๆ ทีละประโยคคำสั่ง (Clause) กระบวนการจัดรูปแบบและการอธิบายทั้งหมดนี้จะเกิดขึ้นและแสดงผลทันทีภายในเบราว์เซอร์ของผู้ใช้งาน
ข้อมูลนำเข้าและตัวเลือกการตั้งค่า
ผู้ใช้งานสามารถกำหนดค่าข้อมูลนำเข้าเพื่อจัดรูปแบบรหัส SQL ได้ตามความต้องการดังต่อไปนี้:
- ข้อมูล SQL: รหัสคิวรี SQL ที่ต้องการจัดรูปแบบ โดยรองรับความยาวสูงสุดไม่เกิน 300,000 ตัวอักษร
- ภาษา SQL (Dialect): สามารถเลือกภาษา SQL ให้ตรงกับระบบฐานข้อมูลที่ใช้งาน ได้แก่ Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake หรือ Spark SQL
- ย่อหน้า: รูปแบบการย่อหน้าสำหรับการจัดรูปแบบ โดยเลือกได้ระหว่าง ช่องว่าง 2 ช่อง, ช่องว่าง 4 ช่อง หรือแท็บ (Tab)
- คำสำคัญ: การกำหนดตัวพิมพ์สำหรับคำสำคัญของ SQL ได้แก่ ตัวพิมพ์ใหญ่, ตัวพิมพ์เล็ก หรือคงเดิม (Keep)
ผลลัพธ์และการแสดงผลข้อมูล
หลังจากประมวลผล เครื่องมือจะแสดงข้อมูลผลลัพธ์ดังต่อไปนี้:
- จัดรูปแบบแล้ว: รหัสคิวรี SQL ที่ได้รับการจัดรูปแบบใหม่ตามภาษา SQL และรูปแบบย่อหน้าที่เลือกไว้
- บรรทัด: จำนวนบรรทัดทั้งหมดที่ปรากฏในรหัส SQL ที่จัดรูปแบบแล้ว
- ตัวอักษร: จำนวนตัวอักษรทั้งหมดในรหัส SQL ที่จัดรูปแบบแล้ว
- ขนาด (Size): ขนาดของรหัส SQL ที่จัดรูปแบบแล้ว
- อธิบาย (Explanation): คำอธิบายโครงสร้างการทำงานของคิวรีทีละส่วน โดยมีรายละเอียดการแสดงผลดังนี้:
- อธิบายคำสั่ง
{count}รายการแล้ว ({count}statement(s) explained): แสดงจำนวนรายการคำสั่งทั้งหมดที่ได้รับการอธิบาย - คำสั่งที่
{n}(Statement{n}): ป้ายกำกับระบุลำดับของแต่ละคำสั่งในกรณีที่เป็นคิวรีแบบหลายคำสั่ง - ประเภทคำสั่ง (Kind): อธิบายประเภทโดยรวมของคำสั่ง SQL เช่น:
- คิวรีที่อ่านและคืนค่าแถวข้อมูลโดยไม่มีการเปลี่ยนแปลงใดๆ (สำหรับ
SELECT) - เพิ่มแถวใหม่เข้าไปในตาราง (สำหรับ
INSERT) - เปลี่ยนแปลงค่าในแถวที่มีอยู่แล้ว (สำหรับ
UPDATE) - ลบแถวออกจากตาราง (สำหรับ
DELETE) - กำหนดออบเจกต์ใหม่ เช่น ตาราง (Table), วิว (View) หรือดัชนี (Index) (สำหรับ
CREATE) - เปลี่ยนคำจำกัดความของออบเจกต์ที่มีอยู่ (สำหรับ
ALTER) - ลบออบเจกต์ออกจากฐานข้อมูลอย่างถาวร (สำหรับ
DROP) - ล้างข้อมูลในตาราง โดยลบทุกแถวออกทั้งหมด (สำหรับ
TRUNCATE) - สร้างผลลัพธ์ชั่วคราวที่มีชื่อเรียก (CTE) สำหรับคิวรีที่ตามมา (สำหรับ
WITH) - แทรก อัปเดต หรือลบแถวในการทำงานรวมกันเพียงครั้งเดียว (สำหรับ
MERGE) - คำสั่ง SQL (สำหรับคำสั่งประเภทอื่นๆ หรือ
OTHER)
- คิวรีที่อ่านและคืนค่าแถวข้อมูลโดยไม่มีการเปลี่ยนแปลงใดๆ (สำหรับ
- บทบาทหน้าที่ (Role): อธิบายหน้าที่ของแต่ละส่วนย่อยภายในคำสั่ง เช่น:
- คอลัมน์และนิพจน์ที่ส่งกลับมา (สำหรับ
SELECT) - คอลัมน์ที่ส่งกลับมา โดยลบแถวที่ซ้ำกันออก (สำหรับ
SELECT DISTINCT) - ตาราง (หรือคิวรีย่อย) ที่อ่านข้อมูลมา (สำหรับ
FROM) - รวมแต่ละแถวเข้ากับแถวที่ตรงกันจากอีกตารางหนึ่ง (สำหรับ
JOIN) - เก็บเฉพาะแถวที่ตรงกับเงื่อนไขนี้ (สำหรับ
WHERE) - ยุบรวมแถวข้อมูลเป็นกลุ่ม เพื่อให้สามารถคำนวณค่ารวม เช่น COUNT หรือ SUM ในแต่ละกลุ่มได้ (สำหรับ
GROUP BY) - กรองกลุ่มข้อมูลเหล่านั้นหลังจากคำนวณค่ารวมแล้ว (สำหรับ
HAVING) - จัดเรียงแถวผลลัพธ์ (สำหรับ
ORDER BY) - จำกัดจำนวนแถวสูงสุดที่จะส่งกลับมา (สำหรับ
LIMIT) - ข้ามแถวตามจำนวนที่กำหนดก่อนจะส่งกลับผลลัพธ์ (สำหรับ
OFFSET) - รวมผลลัพธ์นี้เข้ากับผลลัพธ์ของอีกคิวรีหนึ่ง (สำหรับ
UNION) - ค่าของแถวข้อมูลที่กำลังถูกแทรก (สำหรับ
VALUES) - ตารางที่จะรับแถวข้อมูลใหม่ (สำหรับ
INTO) - ค่าคอลัมน์ใหม่ที่จะกำหนดให้ (สำหรับ
SET) - ตารางที่แถวข้อมูลจะถูกเปลี่ยนแปลง (สำหรับ
UPDATE) - ตารางที่แถวข้อมูลจะถูกลบออก (สำหรับ
DELETE FROM) - กำหนดชุดผลลัพธ์ชั่วคราวที่มีชื่อเรียกเพื่อนำไปใช้งานด้านล่าง (สำหรับ
WITH) - คำสั่งที่แสดงตามที่เป็นอยู่ (สำหรับ
STATEMENT)
- คอลัมน์และนิพจน์ที่ส่งกลับมา (สำหรับ
- อธิบายคำสั่ง
กฎเกณฑ์และกรณีพิเศษในการทำงาน
- หากรหัส SQL ที่นำเข้ามีขนาดใหญ่เกินไป (มากกว่า 300,000 ตัวอักษร) ระบบจะแสดงข้อความแจ้งเตือนว่า "คิวรีนี้มีขนาดใหญ่เกินกว่าจะประมวลผลได้ โปรดลองใช้ไฟล์ที่มีขนาดเล็กลง"
- หากรหัส SQL ที่นำเข้ามีข้อผิดพลาดทางไวยากรณ์ ระบบจะแสดงข้อความแจ้งเตือนว่า "ไม่สามารถจัดรูปแบบ SQL นี้ได้ — โปรดตรวจสอบไวยากรณ์"
- เมื่อเกิดข้อผิดพลาดขึ้นในการประมวลผล ผลลัพธ์ที่เคยแสดงอยู่ก่อนหน้าจะไม่ถูกลบหรือแทนที่ด้วยข้อความแสดงข้อผิดพลาดนั้น
- การคลิกปุ่ม "ล้างข้อมูล" จะเป็นการล้างข้อมูลทั้งในช่องข้อมูลนำเข้าและพื้นที่แสดงผลลัพธ์ พร้อมทั้งซ่อนรายละเอียดข้อผิดพลาดทั้งหมด และแสดงข้อความว่า "ล้างข้อมูลแล้ว"
- ฟังก์ชันการอธิบายการทำงานสามารถวิเคราะห์รหัส SQL ที่ไม่สมบูรณ์ หรือรหัส SQL เฉพาะของบางระบบได้ เนื่องจากระบบใช้วิธีอธิบายโครงสร้างของคิวรี ไม่ใช่การดึงแผนการทำงานของฐานข้อมูล (Execution Plan)
- หากคิวรีที่นำเข้ามีคำสั่งมากกว่า 25 คำสั่ง ระบบจะแสดงคำอธิบายเฉพาะ 25 คำสั่งแรกเท่านั้น พร้อมระบุหมายเหตุว่า "แสดงเฉพาะ 25 รายการแรกเท่านั้น"
- เครื่องมือนี้จะบันทึกรหัสร่างและค่ากำหนดเกี่ยวกับธีมไว้ในเบราว์เซอร์ของผู้ใช้งานโดยตรง
ความเป็นส่วนตัวและความปลอดภัยของข้อมูล
รหัส SQL ของคุณจะถูกจัดรูปแบบและวิเคราะห์ภายในเบราว์เซอร์ของคุณโดยตรง ไม่มีการอัปโหลดข้อมูลใดๆ ไปยัง BroBroGo ข้อมูล SQL ของคุณจะไม่ถูกส่งออกจากหน้าเว็บเลย ทำให้มั่นใจได้ในความปลอดภัยของข้อมูล
คำถามที่พบบ่อย (FAQ)
ถาม: เครื่องมือนี้รองรับการจัดรูปแบบ SQL ภาษา (Dialect) ใดบ้าง?
ตอบ: รองรับ Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake และ Spark SQL โปรดเลือกภาษาที่ตรงกับฐานข้อมูลของคุณ เพื่อให้คำสำคัญและการใส่เครื่องหมายอัญประกาศทำงานได้อย่างถูกต้องตามที่ระบบนั้นๆ ต้องการ
ถาม: ระบบอธิบายคิวรีเป็นภาษาทั่วไปทำงานอย่างไร?
ตอบ: ระบบจะอ่านโครงสร้างของคิวรี — ประเภทของคำสั่งและแต่ละส่วนย่อย เช่น SELECT, FROM, JOIN, WHERE, GROUP BY และ ORDER BY — จากนั้นจะอธิบายหน้าที่ของแต่ละส่วน ซึ่งเป็นการอธิบายรูปแบบของคิวรี ไม่ใช่แผนการทำงานของฐานข้อมูล (Execution Plan) ดังนั้นจึงยังสามารถทำงานได้กับ SQL ที่ไม่สมบูรณ์หรือ SQL เฉพาะของบางระบบ
ถาม: การวางคิวรีจากระบบที่ใช้งานจริง (Production) ปลอดภัยหรือไม่?
ตอบ: ปลอดภัยอย่างแน่นอน การจัดรูปแบบและการวิเคราะห์ทำงานภายในเบราว์เซอร์ของคุณทั้งหมด — ข้อมูล SQL ของคุณจะไม่ถูกส่งออกจากหน้าเว็บเลย