เครื่องแปลงข้อมูลจาก CSV เป็น SQL
การนำข้อมูล CSV เข้าสู่ฐานข้อมูล โดยทั่วไปต้องเปิดเครื่องมือโหลดข้อมูล หรือเขียนคำสั่ง COPY/LOAD DATA INFILE ซึ่งใช้ได้เฉพาะกับไฟล์ในเครื่องเท่านั้น สำหรับชุดข้อมูลขนาดเล็ก เช่น ไม่กี่สิบ หลายร้อย หรือไม่กี่พันแถว การใช้คำสั่ง INSERT ธรรมดาที่วางลงในคอนโซล SQL ใดก็ได้มักจะเร็วกว่า เครื่องมือนี้รับไฟล์ CSV และชื่อตาราง แล้วสร้างคำสั่ง INSERT หนึ่งคำสั่งต่อหนึ่งแถว โดยใช้ตัวระบุที่ครอบด้วยเครื่องหมายแบ็กทิก (backtick) และค่าที่ครอบด้วยเครื่องหมายอัญประกาศเดี่ยว พร้อมนำไปรันได้อย่างปลอดภัย
วิธีการประกอบคำสั่ง SQL
-
1
วางไฟล์ CSV
ไฟล์ CSV มาตรฐานที่มีแถวหัวตารางหรือไม่ก็ได้ ตัวแยกวิเคราะห์รองรับเซลล์ในเครื่องหมายอัญประกาศที่มีตัวคั่นอยู่ภายใน
-
2
ตั้งชื่อตาราง
อักขระที่ไม่ใช่ตัวอักษรหรือตัวเลขในชื่อตารางจะถูกแทนด้วยเครื่องหมายขีดล่าง หากปล่อยว่างไว้จะใช้ค่า `my_table` แทน
-
3
คอลัมน์มาจากแถวหัวตาราง
หากเปิดโหมดแถวหัวตาราง แถวแรกจะกลายเป็นรายชื่อคอลัมน์ มิฉะนั้นคอลัมน์จะถูกตั้งชื่อเป็น `column_1`, `column_2` และอื่นๆ
-
4
หนึ่งคำสั่ง INSERT ต่อหนึ่งแถวข้อมูล
แต่ละแถวจะกลายเป็น `INSERT INTO table (cols) VALUES (...)` ค่าต่างๆ จะถูกครอบด้วยเครื่องหมายอัญประกาศเดี่ยว และอัญประกาศเดี่ยวที่อยู่ภายในค่าจะถูกทำซ้ำเป็นสองตัว
ไดอะเลกต์ การครอบด้วยเครื่องหมายอัญประกาศ และเมื่อใดควรเลือกใช้วิธีอื่น
ตัวสร้างนี้มุ่งเป้าไปที่ SQL แบบ MySQL ที่ครอบตัวระบุด้วยเครื่องหมายแบ็กทิก และครอบค่าด้วยเครื่องหมายอัญประกาศเดี่ยว ฐานข้อมูลส่วนใหญ่รับคำสั่งเหล่านี้ได้โดยปรับแก้เพียงเล็กน้อย
ตารางสรุปไดอะเลกต์อย่างย่อ
| ฐานข้อมูล | การครอบตัวระบุ | หมายเหตุ |
|---|---|---|
| MySQL | แบ็กทิก | ใช้งานได้โดยไม่ต้องแก้ไข |
| MariaDB | แบ็กทิก | ใช้งานได้โดยไม่ต้องแก้ไข |
| PostgreSQL | อัญประกาศคู่ | เปลี่ยน ` เป็น " ก่อนรัน |
| SQLite | อัญประกาศคู่ | เปลี่ยน ` เป็น " หรือเอาการครอบตัวระบุออก |
| SQL Server | วงเล็บเหลี่ยม | เปลี่ยน ` เป็น [] และระวัง N'...' สำหรับ Unicode |
ค่าถูกทำ escape อย่างไร
ค่าทุกค่าจะถูกครอบด้วยเครื่องหมายอัญประกาศเดี่ยว และอัญประกาศเดี่ยวที่อยู่ภายในจะถูกทำซ้ำเป็นสองตัว (O'Brien จะกลายเป็น 'O''Brien') ซึ่งเป็นวิธีตามมาตรฐาน SQL-92 และใช้ได้กับฐานข้อมูลหลักทุกตัว ตัวแปลงนี้ไม่แปลงชนิดข้อมูล ทุกอย่างจะถูกส่งออกเป็นสตริงลิเทอรัล ดังนั้นเมื่อคอลัมน์เป็น INT การแปลงโดยปริยายของฐานข้อมูลจะเปลี่ยน '42' ให้เป็นจำนวนเต็มเอง
เคล็ดลับสำหรับการนำเข้าที่สะอาด
- สร้างตารางก่อน ตัวแปลงจะสร้างเฉพาะคำสั่ง
INSERTไม่ได้สร้างCREATE TABLEให้ใช้คู่กับสคีมาที่คุณกำหนดเอง หรือที่สร้างจาก ORM ของคุณ - แบ่งไฟล์ขนาดใหญ่เป็นชุดๆ หากไคลเอนต์ SQL ของคุณจำกัดขนาดคำสั่ง ให้วางครั้งละ 500–1000 แถว
- ครอบไว้ในทรานแซกชัน หากมีมากกว่าไม่กี่ร้อยแถว ให้คร่อมเนื้อหาที่วางด้วย
BEGIN;และCOMMIT;(หรือSTART TRANSACTION;/COMMIT;) วิธีนี้เร็วกว่าการคอมมิตแต่ละคำสั่งโดยอัตโนมัติมาก
เมื่อใดควรข้ามการสร้าง SQL
หากไฟล์ของคุณมีมากกว่าประมาณ 50,000 แถว ตัวโหลดข้อมูลจำนวนมากแบบเนทีฟ (COPY ใน Postgres, LOAD DATA INFILE ใน MySQL และ bcp ใน SQL Server) จะเร็วกว่าคำสั่ง INSERT ที่สร้างด้วยสคริปต์ถึงระดับหลักสิบเท่า เครื่องมือนี้เหมาะสำหรับการนำเข้าแบบด่วน การสร้างข้อมูลทดสอบ และการย้ายข้อมูลครั้งเดียวจบ
คำถามที่พบบ่อย
ไม่ใช่ โปรแกรมนี้จะสร้างเพียงคำสั่ง INSERT เท่านั้น คุณควรกำหนดโครงสร้างข้อมูล (schema) ด้วย CREATE TABLE ไว้ล่วงหน้า เพื่อให้คุณสามารถควบคุมประเภท ความยาว และเงื่อนไขของคอลัมน์ได้อย่างชัดเจน โดยไม่ต้องให้ตัวแปลงข้อมูลเป็นผู้กำหนดเอง
เปลี่ยนเพียงจุดเดียวก็ใช้ได้ คือแทนที่เครื่องหมายแบ็กทิกที่ครอบชื่อตารางและชื่อคอลัมน์ด้วยเครื่องหมายอัญประกาศคู่ ส่วนค่าต่างๆ ถูกครอบด้วยอัญประกาศเดี่ยวอยู่แล้ว จึงรันได้โดยไม่ต้องแก้ไขบนไดอะเลกต์ SQL-92 ใดก็ตาม
อัญประกาศเดี่ยวภายในค่าจะถูกทำซ้ำเป็นสองตัว (O''Brien) ซึ่งเป็นการ escape มาตรฐานของ SQL ส่วนแบ็กสแลช เครื่องหมายเปอร์เซ็นต์ และขีดล่างจะผ่านไปตามตัวอักษรจริง โดยจะมีความหมายพิเศษก็ต่อเมื่ออยู่ในรูปแบบ LIKE เท่านั้น
ใช่ ไฟล์ CSV จะถูกส่งไปยังเซิร์ฟเวอร์ของเราเพื่อสร้างคำสั่ง SQL ไฟล์จะไม่ถูกจัดเก็บและไม่ถูกเพิ่มลงในลิงก์ของหน้า
เครื่องมือที่เกี่ยวข้อง
เครื่องมือแตกไฟล์บีบอัด
ตรวจสอบไฟล์ ZIP, JAR, XPI, DOCX, XLSX, PPTX และ ODT ภายในเบราว์เซอร์ แล้วดาวน์โหลดไฟล์ด้านในทีละไฟล์โดยไม่ต้องอัปโหลดไฟล์ต้นฉบับ
ตัวแปลงคำบรรยาย
แปลงคำบรรยาย SRT เป็น WebVTT หรือ VTT เป็น SRT ภายในเครื่อง ตรวจสอบเวลา รักษาข้อความหลายบรรทัด แล้วคัดลอกหรือดาวน์โหลดผลลัพธ์
เครื่องมือแยกชีต Excel
แยกเวิร์กบุ๊ก XLSX หรือ XLS ตามแท็บเวิร์กชีต กลุ่มแถวข้อมูล หรือค่าคอลัมน์ในเบราว์เซอร์ ดาวน์โหลด XLSX เดียวหรือ ZIP ในเครื่องได้โดยไม่ต้องอัปโหลดไฟล์
รวมแผ่นงาน Excel
รวมไฟล์ XLSX, XLS, XLSM, XLSB หรือ ODS ในเครื่อง เก็บแผ่นงานต้นทางแยกไว้ หรือเพิ่มแถวที่มีหัวคอลัมน์ตรงกัน แล้วดาวน์โหลด XLSX.
เครื่องมือแปลง Excel เป็น CSV
แปลงชีต XLSX หรือ XLS เป็น CSV หรือ TSV ในเบราว์เซอร์ เลือกชีต ตัวคั่น การเข้ารหัส และข้อมูลที่ซ่อนได้โดยไม่ต้องอัปโหลดไฟล์
เครื่องมือแปลง Word เป็น Markdown
แปลงไฟล์ Word DOCX เป็น Markdown ที่เป็นระเบียบภายในเบราว์เซอร์ เก็บหัวข้อ รายการ ลิงก์ และตารางแบบง่าย แล้วคัดลอกหรือดาวน์โหลดไฟล์ .md ที่แก้ไขได้