แปลง CSV เป็น SQL
เปลี่ยนไฟล์ที่ส่งออกจากสเปรดชีตให้เป็นสคริปต์ที่ฐานข้อมูลรันได้ทันที แถวหัวตารางจะกลายเป็นชื่อคอลัมน์ ทุกบรรทัดจะกลายเป็นคำสั่ง INSERT และการใส่เครื่องหมายคำพูดเป็นไปตาม dialect ที่คุณเลือก
แปลงไฟล์ข้อมูล
หรือลากไฟล์ CSV, TSV, TXT … มาวางที่นี่ ·
สูงสุด 95 MB ต่อไฟล์· ได้สูงสุด 20 ไฟล์· ลบหลังจาก 30 นาที
ไฟล์จะถูกประมวลผลบนเซิร์ฟเวอร์ของเราและถูกลบหลังจาก 30 นาที
อักขระที่ใช้คั่นคอลัมน์ในไฟล์ CSV และไฟล์ข้อความ ทั้งตอนอ่านและตอนเขียน ค่าอัตโนมัติจะตรวจหาจากไฟล์ต้นฉบับและเขียนด้วยจุลภาค
UTF-8 ใช้ได้กับทุกภาษา เลือก UTF-8 พร้อม BOM หาก Excel บน Windows แสดงอักษรที่มีวรรณยุกต์หรืออักษรเอเชียเพี้ยนเมื่อเปิด CSV
สำหรับไฟล์ Excel, ODS และ Numbers: แปลงเฉพาะชีตแรก หรือทุกชีต (CSV หนึ่งไฟล์ต่อชีตใน ZIP หรือคีย์ JSON หนึ่งคีย์ต่อชีต)
ชื่อแท็บชีตในสเปรดชีตใหม่ ไม่เกิน 31 อักขระ
อาร์เรย์ของออบเจ็กต์จะใช้ชื่อคอลัมน์เป็นคีย์ในทุกแถว ส่วนอาร์เรย์ของอาร์เรย์จะกะทัดรัดกว่าและเก็บส่วนหัวไว้เป็นอาร์เรย์แรก
ชื่อของอิลิเมนต์ชั้นนอกที่ครอบทุกแถว โดยแต่ละแถวจะกลายเป็น <row> ภายในอิลิเมนต์นั้น
ใช้ในคำสั่ง CREATE TABLE และ INSERT ใช้ได้เฉพาะตัวอักษร ตัวเลข และขีดล่าง
การใส่เครื่องหมายคำพูดและชนิดคอลัมน์แตกต่างกันเล็กน้อยในแต่ละฐานข้อมูล ให้เลือกฐานข้อมูลที่จะนำเข้า
เขียนเซลล์วันที่ใหม่ให้เป็นรูปแบบเดียวกัน ISO (2026-10-18) ปลอดภัยที่สุดสำหรับฐานข้อมูลและโค้ด ส่วนคงเดิมจะเก็บไว้ตามที่ปรากฏในต้นฉบับ
วิธีใช้เครื่องมือนี้
- 1
อัปโหลดไฟล์ CSV
เพิ่มไฟล์ CSV 1 ไฟล์ หรือสูงสุด 20 ไฟล์ ไฟล์ละไม่เกิน 95 MB ระบบตรวจจับไฟล์ที่คั่นด้วยเซมิโคลอนและแท็บให้อัตโนมัติ
- 2
ตั้งชื่อตารางและเลือก dialect
ใน การตั้งค่าขั้นสูง ให้พิมพ์ ชื่อตาราง SQL และเลือก ภาษา SQL ได้แก่ MySQL, PostgreSQL, SQLite หรือ SQL Server ส่วน วันที่ ตั้งเป็น ISO ไว้ เพื่อให้ค่าวันที่โหลดเข้าได้โดยไม่ต้องเดารูปแบบ
- 3
แปลงแล้วนำไปรัน
กด แปลงเป็น SQL ตรวจดูบรรทัด CREATE TABLE แล้วรันสคริปต์ในโปรแกรมจัดการฐานข้อมูลหรือหน้าอิมพอร์ตของคุณ
แปลง CSV เป็น SQL สร้างคำสั่ง CREATE TABLE จากแถวหัวคอลัมน์ และ INSERT หนึ่งคำสั่งต่อหนึ่งแถวข้อมูล พร้อมเครื่องหมายคร่อมตามรูปแบบของ MySQL, PostgreSQL, SQLite หรือ SQL Server จึงโหลดสเปรดชีตเข้าฐานข้อมูลได้ด้วยการรันสคริปต์เดียว
เหตุผลที่ควรแปลง CSV เป็นคำสั่ง SQL INSERT
ฐานข้อมูลทุกระบบมีตัวโหลด CSV ที่เร็ว และทุกตัวมีข้อจำกัด LOAD DATA LOCAL INFILE ปิดไว้เป็นค่าเริ่มต้นบนเซิร์ฟเวอร์ตั้งแต่ MySQL 8.0 COPY FROM ไฟล์ใน PostgreSQL ต้องมีสิทธิ์ superuser หรือเป็นสมาชิกของบทบาทพิเศษ และ BULK INSERT ของ SQL Server อ่านพาธบนเครื่องเซิร์ฟเวอร์ ไม่ใช่แล็ปท็อปของคุณ ฐานข้อมูลที่โฮสต์ไว้มักมีเพียงตัวแก้ไขคิวรีให้ใช้
สคริปต์ INSERT เลี่ยงข้อจำกัดเหล่านั้นได้ทั้งหมด เพราะเป็นข้อความ จึงอ่านได้ คอมมิตเข้าระบบควบคุมเวอร์ชันเป็นข้อมูลเริ่มต้นได้ และรันในไคลเอนต์ใดก็ได้ ข้อแลกเปลี่ยนคือความเร็ว ข้อมูลหลักหมื่นแถวโหลดได้สบาย แต่ระดับล้านแถวควรใช้ตัวโหลดแบบเนทีฟ ผู้พัฒนาที่เก็บข้อมูลอ้างอิงไว้ในเวิร์กบุ๊กข้ามขั้นตอน CSV ได้ด้วย Excel เป็น SQL
ตัวอย่างการแปลง CSV เป็น SQL สำหรับ MySQL
CREATE TABLE `my_table` ( `id` INT, `name` VARCHAR(255), `joined` DATE ); INSERT INTO `my_table` (`id`, `name`, `joined`) VALUES (1, 'อนันต์ ศรีสุข', '2026-03-02'), (2, 'Liam O''Brien', '2026-04-15');
ความแตกต่างของผลลัพธ์ใน SQL ทั้งสี่ dialect
ชื่อออบเจกต์คร่อมด้วยแบ็กติก เช่น order date ซึ่งทำให้ใช้คำสงวนอย่าง order เป็นชื่อคอลัมน์ได้ด้วย
- ใช้กับ MariaDB ได้เช่นกัน
- ค่าเริ่มต้นที่เหมาะกับการอิมพอร์ตด้วย phpMyAdmin
ชื่อออบเจกต์ใช้เครื่องหมายคำพูดคู่มาตรฐาน ชื่อที่คร่อมไว้จะคงตัวพิมพ์ใหญ่เล็ก "Email" กับ email จึงเป็นคนละคอลัมน์
- ชื่อที่ยาวเกิน 63 ไบต์จะถูกตัดสั้นลง
ใช้เครื่องหมายคำพูดคู่เช่นกัน และมีการกำหนดชนิดข้อมูลแบบยืดหยุ่น คอลัมน์ที่ประกาศเป็น INT ยังรับข้อความได้ เว้นแต่ตารางประกาศเป็น STRICT ซึ่งเป็นตัวเลือกที่เพิ่มใน SQLite 3.37.0
- รันในเชลล์ sqlite3 หรือ DB Browser for SQLite
ชื่อออบเจกต์อยู่ในวงเล็บเหลี่ยม เช่น [order date] คอลัมน์ข้อความที่มีอักขระที่ไม่ใช่ละตินต้องใช้ NVARCHAR และลิเทอรัลแบบ N'…'
- รันใน SSMS หรือ Azure Data Studio
| หน่วยงาน | ข้อกำหนด | แหล่งที่มา |
|---|---|---|
| MySQL 8.0 | max_allowed_packet มีค่าเริ่มต้น 64 MB คำสั่งเดียวที่ใหญ่กว่านั้นจะถูกปฏิเสธ | — |
| SQL Server | รายการ INSERT … VALUES หนึ่งรายการรับนิพจน์ค่าของแถวได้สูงสุด 1,000 แถว | — |
| PostgreSQL | ชื่อที่ยาวเกิน 63 ไบต์จะถูกตัดทิ้งโดยไม่แจ้งเตือน | — |
| SQLite | ตารางมีได้สูงสุด 2,000 คอลัมน์ในบิลด์เริ่มต้น | — |
สิ่งที่ควรตรวจสอบก่อนรันสคริปต์
ให้อ่านบรรทัด CREATE TABLE ก่อน ชนิดคอลัมน์ถูกเดาจากค่าในไฟล์ ซึ่งอาจผิดได้ รหัสไปรษณีย์และเบอร์โทรศัพท์ดูเหมือนตัวเลขแต่ต้องเป็นข้อความ ไม่เช่นนั้น 02134 จะเสียเลข 0 นำหน้า ให้แก้ชนิดในสคริปต์ก่อนรัน หรือสร้างตารางเองแล้วรันเฉพาะส่วน INSERT
พิมพ์ชื่อจริงลงใน ชื่อตาราง SQL แทน my_table และรันสคริปต์ภายในทรานแซกชันหากไคลเอนต์รองรับ เพื่อให้แถวที่ผิดเพียงแถวเดียวย้อนการเปลี่ยนแปลงทั้งหมด ปลายทางอื่นของ CSV เดียวกันอยู่ที่หน้ารวม แปลงไฟล์ข้อมูล
ฟอร์แมต CSV และสคริปต์ SQL
CSV
ค่าที่คั่นด้วยจุลภาค (CSV)
CSV คือรูปแบบข้อความธรรมดาสำหรับตาราง โดยแต่ละบรรทัดคือหนึ่งแถวและใช้จุลภาคคั่นคอลัมน์ ใช้กันมาตั้งแต่ยุคแรกของคอมพิวเตอร์และมีคำอธิบายใน RFC 4180 แม้ว่าหลายรูปแบบย่อยจะใช้อัฒภาคหรือแท็บและการเข้ารหัสข้อความที่ต่างกัน สเปรดชีต ฐานข้อมูล และเครื่องมือวิเคราะห์ข้อมูลแทบทุกตัวนำเข้าและส่งออก CSV ได้ จึงเป็นรูปแบบมาตรฐานสำหรับย้ายข้อมูลระหว่างระบบ CSV เก็บเฉพาะค่า ไม่มีสูตร การจัดรูปแบบ หลายชีต หรือชนิดข้อมูล
- การบีบอัด
- –
- พื้นหลังโปร่งใส
- –
- ภาพเคลื่อนไหว
- –
- เปิดตัว
- –
SQL
สคริปต์ SQL
ไฟล์ SQL เป็นสคริปต์ข้อความธรรมดาที่ประกอบด้วยคำสั่ง Structured Query Language เช่น CREATE TABLE และ INSERT ซึ่งฐานข้อมูลจะเรียกใช้ตามลำดับ มักใช้สำหรับสำรองฐานข้อมูล การย้ายโครงสร้างข้อมูล (migration) และการแชร์ข้อมูลตัวอย่าง ตัวภาษาเป็นมาตรฐาน ISO แต่ MySQL, PostgreSQL, SQLite และ SQL Server ต่างมีภาษาถิ่น (dialect) ของตัวเอง สคริปต์จึงมักต้องปรับเล็กน้อยเมื่อย้ายระหว่างระบบ โปรแกรมแก้ไขข้อความทุกตัวเปิดไฟล์ SQL ได้ แต่ต้องใช้ไคลเอนต์ฐานข้อมูลในการเรียกใช้
- การบีบอัด
- –
- พื้นหลังโปร่งใส
- –
- ภาพเคลื่อนไหว
- –
- เปิดตัว
- –
แปลง CSV เป็น SQL เมื่อไฟล์ต้องกลายเป็นตารางในฐานข้อมูลที่เข้าถึงได้ผ่านหน้าต่างคิวรีเท่านั้น เช่น ใส่ข้อมูลเริ่มต้นให้แอปใหม่ โหลดรายการอ้างอิง หรือย้ายสเปรดชีตเข้า MySQL หรือ PostgreSQL โดยไม่มีสิทธิ์เข้าถึงเซิร์ฟเวอร์
คำถามเกี่ยวกับการแปลง CSV เป็น SQL
ทำไมควรใช้ไฟล์ SQL แทน LOAD DATA หรือ COPY
ตัวโหลดข้อมูลจำนวนมาก เช่น LOAD DATA INFILE ของ MySQL และ COPY ของ PostgreSQL เร็วกว่า แต่ต้องเข้าถึงไฟล์บนเซิร์ฟเวอร์ได้ หรือต้องตั้งค่าเพิ่มฝั่งไคลเอนต์ ส่วนสคริปต์ธรรมดารันได้ทุกที่ที่วาง SQL ได้ เช่น คอนโซลฐานข้อมูลบนคลาวด์ phpMyAdmin หรือ migration ที่ผ่านการตรวจสอบแล้ว
เครื่องหมายอะพอสทรอฟีในชื่ออย่าง O'Brien เขียนอย่างไร
ในสตริง SQL เครื่องหมายอัญประกาศเดี่ยวจะ escape ด้วยการพิมพ์ซ้ำสองครั้ง ค่าจึงถูกเขียนเป็น 'O''Brien' ทั้งสี่ภาษา SQL รองรับรูปแบบนี้ ชื่อที่มีอะพอสทรอฟีจึงไม่ทำให้ INSERT พัง
หัวคอลัมน์ใน CSV จะกลายเป็นอะไรในตาราง
ชื่อคอลัมน์ โดยใส่เครื่องหมายคร่อมตามที่ภาษา SQL ที่เลือกกำหนด หัวคอลัมน์อย่าง Unit Price ใช้ได้ แต่ชื่อที่มีช่องว่างและต้องคร่อมไว้ จะต้องคร่อมในทุกคำสั่งค้นหาถัดไปด้วย หากทำได้ ควรเปลี่ยนหัวคอลัมน์เป็น unit_price ก่อนแปลง
นำเข้าไฟล์ SQL ผ่าน phpMyAdmin ได้หรือไม่
ได้ ที่แท็บ Import ขีดจำกัดอยู่ที่ upload_max_filesize ของ PHP ซึ่งเป็น 2 MB ใน php.ini ค่าเริ่มต้น โฮสต์หลายแห่งปรับเพิ่มให้ และหน้านั้นจะแสดงขีดจำกัดปัจจุบัน หากสคริปต์ใหญ่กว่านั้น ให้แยก CSV ขนาดใหญ่เป็นหลายไฟล์
แปลงตารางกลับเป็น CSV ได้หรือไม่
ส่งออกตารางเป็นไฟล์ dump แล้วแปลงด้วย SQL เป็น CSV หรือใช้ฟังก์ชันส่งออก CSV ของโปรแกรมจัดการฐานข้อมูลเอง ทั้งสองวิธีให้แถวข้อมูลที่โปรแกรมสเปรดชีตเปิดได้อีกครั้ง
- แปลง Excel เป็น SQLแปลงชีต Excel เป็นสคริปต์ SQL สำหรับ MySQL, PostgreSQL, SQLite หรือ SQL Server โดยหัวตารางจะเป็นคอลัมน์ และแต่ละแถวจะเป็นคำสั่ง INSERT
- แปลง SQL เป็น CSVแปลงคำสั่ง INSERT ในไฟล์ดัมพ์ .sql ให้เป็นแถว CSV ที่เปิดใน Excel หรือ Google Sheets ได้ รองรับดัมพ์จาก MySQL, phpMyAdmin, SQLite และ SQL Server
- แปลง CSV เป็น XLSXแปลง CSV เป็นเวิร์กบุ๊ก Excel XLSX โดยเลขศูนย์นำหน้า รหัสยาว และข้อความที่มีอักขระพิเศษยังครบถ้วน ตรวจจับไฟล์ที่คั่นด้วยจุลภาค อัฒภาค และแท็บให้อัตโนมัติ
- แปลง CSV เป็น XMLแปลงแถว CSV ให้เป็น XML ที่ถูกต้องตามรูปแบบ กำหนดแท็กรากเองได้ Escape อักขระพิเศษให้ ตรวจจับตัวคั่นอัตโนมัติ ส่งออกเป็น UTF-8 ได้สูงสุด 20 ไฟล์พร้อมกัน
- แปลง CSV เป็น Parquetแปลงไฟล์ CSV ให้เป็น Apache Parquet พร้อมชนิดคอลัมน์และการบีบอัด ใช้กับ pandas, DuckDB, Spark, BigQuery หรือ Athena ได้ทันที ไม่ต้องติดตั้ง Python หรือ Spark
- แปลง Parquet เป็น CSVแปลงไฟล์ Apache Parquet เป็น CSV ออนไลน์ แล้วเปิดใน Excel, Google Sheets หรือโปรแกรมนำเข้าใดก็ได้ ไม่ต้องใช้ Python, Spark หรือ DuckDB สูงสุด 20 ไฟล์