สอนใช้ SQL สอบถามข้อมูลในไฟล์ CSV ผ่านเบราว์เซอร์ คู่มือฉบับสมบูรณ์
เรียนรู้วิธีเขียน SQL สอบถามข้อมูลจากไฟล์ CSV ตั้งแต่ WHERE, GROUP BY ไปจนถึง JOIN หลายไฟล์ พร้อม export ผลลัพธ์เป็น CSV หรือ JSON ได้ทันทีในเบราว์เซอร์
Table of Contents
นักวิเคราะห์ข้อมูลหลายคนคงคุ้นเคยกับสถานการณ์แบบนี้ — ได้รับไฟล์ CSV หลายไฟล์จากหลายระบบ เช่น orders, customers, inventory แต่ไม่มีฐานข้อมูลให้ใช้ วิธีแก้แบบเดิมคือเปิดสเปรดชีต เขียนสูตร lookup ซ้อนกันหลายชั้น แล้วหวังว่าทุกอย่างจะไม่พัง วันนี้มีทางเลือกที่ดีกว่านั้น เพราะเครื่องมือ CSV SQL Query จาก Online Tools Forge ช่วยให้คุณเขียน SQL จริงเพื่อสอบถามข้อมูลจากไฟล์ CSV ได้ในไม่กี่วินาที โดยไม่ต้องติดตั้งอะไร ไม่ต้องสมัครสมาชิก และข้อมูลของคุณก็ไม่ต้องถูกส่งขึ้นเซิร์ฟเวอร์
เครื่องมือนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ เพียงวางเนื้อหา CSV หรืออัปโหลดไฟล์ จดทะเบียนแต่ละไฟล์เป็นตาราง แล้วเขียนคำสั่ง SQL SELECT แบบ ad-hoc ได้เลย ทั้ง WHERE, GROUP BY, HAVING, ORDER BY, DISTINCT, IN, LIKE รวมถึงฟังก์ชันรวมอย่าง SUM และ COUNT และที่ขาดไม่ได้คือ LEFT JOIN ที่รวมข้อมูลข้ามหลายไฟล์ได้ในคำสั่งเดียว
บทความนี้จะพาคุณไปทีละขั้น ตั้งแต่วิธีใช้งานเครื่องมือ คำสั่ง SQL ที่ใช้กับข้อมูล CSV ได้ ไปจนถึงตัวอย่างสถานการณ์จริงที่คุณลองทำตามกับไฟล์ของตัวเองได้ทันที
เหตุผลที่ควรใช้ CSV SQL Query
- ไม่ต้องติดตั้งอะไรเลย ไม่มี database engine ให้ลง ไม่มี connection string ให้ตั้งค่า เปิดหน้าเว็บแล้วเริ่มเขียน query ได้ทันที
- ข้อมูลไม่ออกจากเครื่องคุณ การ parse และการรัน query ทั้งหมดเกิดขึ้นในเบราว์เซอร์ จึงปลอดภัยกับไฟล์ข้อมูลภายในองค์กรหรือข้อมูลที่อ่อนไหว
- เขียน SQL จริง ไม่ใช่สูตรสเปรดชีต คำสั่ง JOIN หรือ GROUP BY หนึ่งครั้งมักแทนสูตร VLOOKUP ซ้อนกันสิบกว่าชั้น และยังอ่านเข้าใจได้ง่ายกว่ามากเมื่อกลับมาดูอีกครั้งในเดือนถัดมา
- query หลายไฟล์พร้อมกันได้ ใช้ปุ่ม Add table โหลดไฟล์ CSV หลายไฟล์ แล้ว JOIN กันในคำสั่งเดียว เหมือนเป็นตารางในฐานข้อมูลจริง
- วนซ้ำได้เร็ว รัน query ดูผลใน export preview ปรับ clause นิดหน่อยแล้วรันใหม่ แต่ละรอบใช้เวลาไม่กี่วินาที
- ใช้งานง่ายและให้อภัยความผิดพลาด ปุ่ม Clear query ช่วยรีเซ็ตได้ในคลิกเดียว ส่วน error message แบบ "Could not read that file." ช่วยให้ความผิดพลาดเล็ก ๆ ไม่กลายเป็นเรื่องน่าหงุดหงิด
ฟีเจอร์หลัก
| ฟีเจอร์ | สิ่งที่ทำได้ |
|---|---|
| วางหรืออัปโหลด CSV | เพิ่มข้อมูลได้ทั้งจากการวางเนื้อหาโดยตรงหรืออัปโหลดไฟล์จากเครื่อง |
| Add table | จดทะเบียนไฟล์ CSV หลายไฟล์ให้แต่ละไฟล์กลายเป็นตารางที่ query ได้ |
| Ad-hoc SQL SELECT | เขียน SELECT อิสระพร้อม WHERE, GROUP BY, HAVING, ORDER BY, DISTINCT, IN และ LIKE |
| ฟังก์ชันรวม (aggregates) | สรุปข้อมูลด้วย SUM, COUNT และฟังก์ชันรวมมาตรฐานอื่น ๆ |
| LEFT JOIN ข้ามไฟล์ | รวมแถวจากสองไฟล์ขึ้นไปด้วยคอลัมน์ key ที่ตรงกัน |
| Export preview | ตรวจสอบตารางผลลัพธ์ก่อนตัดสินใจดาวน์โหลด |
| Export เป็น CSV หรือ JSON | ดาวน์โหลดผลลัพธ์ในรูปแบบที่ขั้นตอนถัดไปต้องใช้ |
| Clear query | รีเซ็ตตัวแก้ไขและพื้นที่ทำงานในคลิกเดียว |
| ทำงาน 100% ในเบราว์เซอร์ | ไม่มีการอัปโหลดข้อมูล ทุกอย่างประมวลผลในเครื่องคุณ |
จุดที่น่ารู้เพิ่มเติม:
- ชื่อตารางมาจากชื่อไฟล์ของคุณ ควรตั้งชื่อไฟล์ให้สั้นและเป็นมิตรกับ SQL
- Export preview ใช้เป็นเครื่องตรวจสอบความถูกต้องได้ ลองดูจำนวนแถวก่อนดาวน์โหลดเสมอ
- เนื่องจากทำงานฝั่ง client ทั้งหมด เมื่อ refresh หน้าเว็บพื้นที่ทำงานจะถูกเคลียร์ อย่าลืม export สิ่งที่ต้องการเก็บไว้
วิธีใช้งาน CSV SQL Query
- โหลดไฟล์ CSV ของคุณ วางเนื้อหา CSV ลงในช่อง input หรือกดปุ่มอัปโหลดเพื่อเลือกไฟล์จากเครื่อง
- เพิ่มตารางอื่นถ้าจำเป็น กด Add table สำหรับไฟล์ CSV แต่ละไฟล์ที่ต้องการ query หรือ join เช่น customers.csv คู่กับ orders.csv
- เขียนคำสั่ง SELECT พิมพ์ query ในตัวแก้ไขโดยอ้างถึงตารางด้วยชื่อ เช่น SELECT customer, SUM(amount) FROM orders GROUP BY customer
- รัน query ผลลัพธ์จะแสดงในตาราง preview ถ้ามีอะไรผิดพลาด เช่น ไฟล์เสียหายหรือพิมพ์ผิด คุณจะเจอ error แบบภาษาคน ไม่ใช่ stack trace ยาวเหยียด
- Export ผลลัพธ์ เมื่อผลลัพธ์ถูกต้องแล้ว กด Download เพื่อบันทึกเป็น CSV หรือ JSON
จบแล้ว สรุปสั้น ๆ คือ วางไฟล์ เพิ่มตาราง เขียน query รัน แล้ว export
คำสั่ง SQL ที่ใช้กับไฟล์ CSV ได้
พื้นฐาน SELECT และ WHERE
เริ่มจากง่าย ๆ SELECT * FROM orders คืนทุกแถวทุกคอลัมน์ ส่วน WHERE ใช้กรองข้อมูลให้เหลือเฉพาะที่สนใจ
SELECT order_id, customer, amount FROM orders WHERE amount > 500
คุณผสมเงื่อนไขด้วย AND / OR ได้ ใช้ IN สำหรับลิสต์ค่า หรือ LIKE สำหรับค้นหาแบบมี pattern เช่น WHERE region IN ('EMEA', 'APAC') หรือ WHERE email LIKE '%@gmail.com'
GROUP BY และฟังก์ชันรวม
จุดที่ SQL เริ่มคุ้มค่าจริง ๆ คือการสรุปข้อมูล SELECT region, COUNT(*), SUM(amount) FROM orders GROUP BY region ให้ผลลัพธ์แถวเดียวต่อหนึ่ง region พร้อมจำนวน order และยอดรวม ฟังก์ชันรวมมาตรฐานอย่าง SUM, COUNT, MIN, MAX, AVG ใช้กับคอลัมน์ใดก็ได้
HAVING ต่างจาก WHERE อย่างไร
สองตัวนี้หน้าตาคล้ายกันแต่ทำงานคนละขั้น WHERE กรองแต่ละแถวก่อนจับกลุ่ม ส่วน HAVING กรองกลุ่มหลังจากจับเสร็จแล้ว ถ้าอยากเห็นเฉพาะ region ที่มีมากกว่าสิบ order เงื่อนไขต้องเขียนใน HAVING เพราะ COUNT(*) ยังไม่มีค่าจนกว่าจะผ่าน GROUP BY
SELECT region, COUNT() AS orders FROM orders GROUP BY region HAVING COUNT() > 10
กฎง่าย ๆ คือ เงื่อนไขเกี่ยวกับแถวดิบใส่ WHERE เงื่อนไขเกี่ยวกับค่าที่รวมแล้วใส่ HAVING
LEFT JOIN ข้ามสองไฟล์ CSV
ฟีเจอร์ที่คนใช้สเปรดชีตหลายคนไม่เคยเจอมาก่อน โหลด orders.csv และ customers.csv เป็นสองตาราง แล้วเขียนว่า
SELECT o.order_id, c.name, o.amount FROM orders o LEFT JOIN customers c ON o.customer_id = c.id
LEFT JOIN จะเก็บทุก order ไว้แม้ customer บางรายจะหายไปจากไฟล์ lookup ซึ่งเป็นพฤติกรรมที่ต้องการพอดีเวลาตรวจสอบข้อมูลที่ไม่สมบูรณ์
DISTINCT สำหรับค่าที่ไม่ซ้ำ
SELECT DISTINCT country FROM customers รวมค่าที่ซ้ำกันให้เหลือค่าเดียว ได้ลิสต์ค่า unique ในคอลัมน์ใดก็ได้อย่างรวดเร็ว เป็นวิธีสำรวจไฟล์ใหม่ที่เร็วที่สุดวิธีหนึ่ง
การ export ผลลัพธ์
ผลลัพธ์ของทุก query นำไป export ได้ ตรวจ export preview ก่อน แล้วกด Download เป็น CSV เพื่อเปิดในสเปรดชีตต่อ หรือเป็น JSON ถ้าขั้นตอนถัดไปคือ script หรือ API
ตัวอย่างการใช้งานจริง
รวมข้อมูล orders.csv กับ customers.csv
กรณีคลาสสิก ระบบขาย export รายการ order ออกมาโดยไม่มีชื่อลูกค้า ส่วน CRM มีไฟล์ customer แยกต่างหาก โหลดทั้งสองไฟล์ LEFT JOIN กันด้วยรหัสลูกค้า แล้วคุณจะได้ชุดข้อมูลเดียวที่มีทั้งชื่อ อีเมล และยอด order พร้อม export ออกมาเป็น CSV ไฟล์เดียวจบ
สรุปยอดขายรายเดือน
วางข้อมูลธุรกรรมหนึ่งปี แล้วขอสรุปใน query เดียว SELECT month, SUM(amount) FROM orders GROUP BY month ORDER BY month เพิ่ม WHERE เพื่อจำกัดเฉพาะสินค้าสายหนึ่ง หรือใช้ HAVING แสดงเฉพาะเดือนที่ยอดเกินเป้าหมาย สิ่งที่ในสเปรดชีตต้องสร้าง pivot table และกดหลายครั้ง ที่นี่คือคำสั่งเดียวที่ใช้ซ้ำได้ตลอด
เก็บกวาดข้อมูลก่อนนำเข้าฐานข้อมูล
ไฟล์ CSV จากทีมอื่นมักไม่พร้อมโหลดเข้าระบบ ใช้ SELECT DISTINCT หาค่า key ที่ซ้ำหรือว่าง ใช้ WHERE ตัดแถวทดสอบทิ้ง และระบุรายการคอลัมน์อย่างชัดเจนเพื่อเรียง field ใหม่ จากนั้น export ผลลัพธ์ที่สะอาดแล้วเป็น CSV เพื่อโหลดเข้าฐานข้อมูล หรือจะจัดรูปแบบคำสั่ง SQL เองด้วย SQL Formatter ก่อนก็ได้
รายงานด่วนโดยไม่ต้องเขียนสูตร Excel
เมื่อเพื่อนร่วมงานถามว่า "ไตรมาสที่แล้วเราส่ง order มูลค่าเกิน 1,000 ไปยัง APAC กี่รายการ" คุณไม่จำเป็นต้องสร้าง workbook ใหม่ โหลดไฟล์ export รัน query เดียวด้วย WHERE กับ COUNT แล้วอ่านตัวเลขจาก preview ได้เลย คำถามแบบ ad-hoc ส่วนใหญ่จบภายในหนึ่งนาทีหลังจากถูกถาม
แนวปฏิบัติที่ดี
- จัดการ header ให้สะอาดก่อน ชื่อคอลัมน์ที่เป็นมิตรกับ SQL (ไม่มีช่องว่างหรืออักขระพิเศษ) ช่วยประหยัดปัญหาเรื่องการ quote ในทุก query ที่เขียนต่อจากนี้
- ครอบ field ที่มีคอมมาด้วยเครื่องหมายคำพูด ถ้าค่าใดมีคอมมาอยู่ข้างใน ต้องครอบด้วย double quotes ในไฟล์ CSV ไม่อย่างนั้นโครงคอลัมน์จะเลื่อนไปคนละที่
- กรองข้อมูลให้เร็วที่สุด เพิ่ม WHERE ก่อนจะ SELECT * จากไฟล์ใหญ่ ผลลัพธ์ที่เล็กลงอ่านง่ายกว่าและ export เร็วกว่า
- เช็ก export preview ก่อนเสมอ ตรวจว่าจำนวนแถวและคอลัมน์ถูกต้องก่อนดาวน์โหลด ไม่ใช่ไปแก้ตอนที่คน downstream กลับมาถาม
- export ทันทีเมื่อผลถูกต้อง พื้นที่ทำงานคือหน่วยความจำของเบราว์เซอร์ เมื่อได้ผลลัพธ์ที่ใช้ได้แล้ว ดาวน์โหลดเก็บไว้ทันที
- เริ่มจากเล็กแล้วค่อยขยาย พิสูจน์ query กับข้อมูลไม่กี่แถวก่อน แล้วค่อยรันกับไฟล์เต็ม
ลองเลย เปิด CSV SQL Query วางไฟล์ CSV แล้วรัน query แรกของคุณ สูตรในสเปรดชีตจะไม่คิดถึงคุณหรอก
เครื่องมือที่เกี่ยวข้องที่คุณอาจสนใจ:
- SQL Formatter — จัดรูปแบบและตรวจสอบ query ที่คุณเขียน
- JSON to CSV Converter — แปลงไฟล์ JSON ให้เป็น CSV ที่พร้อม query
- CSV Merger — รวมไฟล์ CSV หลายไฟล์เป็นไฟล์เดียวก่อน query
ขอให้สนุกกับการ query ข้อมูลนะครับ
คำถามที่พบบ่อย
ถ: ต้องติดตั้งอะไรเพิ่มเพื่อ query ไฟล์ CSV ด้วย SQL หรือไม่? ตอบ: ไม่ต้องเลย CSV SQL Query ทำงานทั้งหมดในเบราว์เซอร์ เพียงวางหรืออัปโหลดไฟล์ เขียน query แล้ว export ผลลัพธ์ ไม่มีการติดตั้งใด ๆ และไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์
ถ: สามารถ join ไฟล์ CSV สองไฟล์เข้าด้วยกันได้ไหม? ตอบ: ได้ เพิ่มแต่ละไฟล์เป็นตารางของตัวเองด้วยปุ่ม Add table แล้วอ้างถึงทั้งสองตารางใน SELECT เดียวด้วย LEFT JOIN บนคอลัมน์ key ที่ตรงกัน
ถ: รองรับ clause และฟังก์ชัน SQL แบบไหนบ้าง? ตอบ: เครื่องมือรองรับ SELECT พร้อม WHERE, GROUP BY, HAVING, ORDER BY, DISTINCT, IN และ LIKE ฟังก์ชันรวมอย่าง SUM และ COUNT รวมถึง LEFT JOIN ข้ามหลายไฟล์
ถ: export ผลลัพธ์ query ได้ในรูปแบบใดบ้าง? ตอบ: คุณสามารถดู preview ผลลัพธ์แล้วดาวน์โหลดเป็น CSV หรือ JSON ได้ ขึ้นอยู่กับว่าขั้นตอนถัดไปของคุณต้องใช้รูปแบบใด