แปลง JSON เป็น SQL

เครื่องมือออนไลน์ฟรีสำหรับแปลง JSON array เป็น INSERT และสร้าง CREATE TABLE ได้เมื่อต้องการ

คำแนะนำที่เกี่ยวข้อง

เกี่ยวกับการแปลง JSON เป็น SQL

การแปลง JSON เป็น SQL คือการเปลี่ยน JSON array หรือ object ให้เป็นสคริปต์ INSERT และ CREATE TABLE ที่รันในฐานข้อมูลเชิงสัมพันธ์ได้

เครื่องมือนี้ใช้ key ของ object เป็นชื่อคอลัมน์ ใช้ value เป็น SQL literal และสร้าง DDL ให้ด้วยถ้าต้องการ

การอนุมานชนิดข้อมูล ความต่างของแต่ละ dialect และ batch insert ถูกจัดการในเบราว์เซอร์ทั้งหมด จึงทั้งเร็วและปลอดภัยกว่าการทำด้วยมือ

กรณีการใช้งาน

  • แปลง JSON จาก API response เป็นสคริปต์ INSERT เพื่อนำเข้าฐานข้อมูลเชิงสัมพันธ์
  • สร้าง seed SQL จาก mock JSON สำหรับ development หรือ test environment
  • สร้าง CREATE TABLE จากโครงสร้าง JSON เมื่อตั้งค่า database ใหม่
  • ย้ายข้อมูล JSON จาก log หรือ document store ไปยังระบบ SQL
  • ใช้สอนหรือ demo การแมปชนิดข้อมูลจาก JSON ไปยัง SQL

วิธีการใช้งาน

  1. วาง JSON array หรือ object ทางซ้าย หรืออัปโหลดไฟล์ .json/.txt
  2. เลือก SQL dialect ปลายทางจาก toolbar
  3. ถ้าต้องการ ให้ตั้งชื่อตาราง เปิด CREATE TABLE และปรับ batch size
  4. กดแปลงแล้วตรวจ SQL พร้อมจำนวนแถว/คอลัมน์ทางด้านขวา
  5. คัดลอกผลลัพธ์หรือดาวน์โหลดไฟล์ .sql เพื่อนำไปรันในโปรแกรมจัดการฐานข้อมูล

คุณสมบัติ

  • สร้าง batch INSERT จาก JSON array โดยตั้งขนาดได้ 1-1000 แถวต่อคำสั่ง
  • สร้าง CREATE TABLE DDL ได้แบบเลือกเปิด พร้อมอนุมานชนิดคอลัมน์อัตโนมัติ
  • รองรับ SQL dialect มากกว่า 20 แบบ เช่น MySQL, PostgreSQL, SQLite และ SQL Server
  • มี smart type inference สำหรับ NULL, boolean, ตัวเลข, วันที่ ISO และข้อความสั้น/ยาว
  • ใช้ sql-formatter เพื่อจัดรูป SQL ให้อ่านง่ายขึ้น
  • ประมวลผลทั้งหมดในเบราว์เซอร์ ไม่ต้องอัปโหลด JSON ไปยังเซิร์ฟเวอร์

คำถามที่พบบ่อย

จะแปลง JSON array เป็น SQL INSERT ได้อย่างไร?

วาง JSON array ลงไป แล้วแต่ละ object จะถูกแปลงเป็นข้อมูลสำหรับ INSERT โดย key กลายเป็นชื่อคอลัมน์ และ value กลายเป็น SQL literal

สร้าง CREATE TABLE อัตโนมัติได้ไหม?

ได้ เปิดตัวเลือก CREATE TABLE ในการตั้งค่า แล้วเครื่องมือจะอนุมานชนิดข้อมูลและสร้าง DDL ให้

รองรับ SQL dialect อะไรบ้าง?

รองรับ MySQL, PostgreSQL, SQLite, SQL Server และอีกมากกว่า 20 dialect พร้อมปรับรูปแบบ quote และชื่อชนิดข้อมูลอัตโนมัติ

การอนุมานชนิดข้อมูลทำงานอย่างไร?

เครื่องมือจะแยก NULL, boolean, integer, float, วันที่ ISO 8601 และข้อความสั้น/ยาว แล้ว map ไปยังชนิด SQL ที่เหมาะสม

รองรับ bulk insert หรือไม่?

รองรับ สามารถตั้ง batch size ได้ตั้งแต่ 1 ถึง 1000 แถวต่อหนึ่งคำสั่ง INSERT

ถ้า JSON ผิดไวยากรณ์จะเกิดอะไรขึ้น?

ข้อผิดพลาดที่พบได้บ่อย เช่น comma ท้ายบรรทัดหรือเครื่องหมายคำพูดผิด จะมีการลองซ่อมอัตโนมัติ ถ้ายังไม่ผ่านควรตรวจด้วย JSON formatter ก่อน

ข้อมูลถูกส่งไปที่เซิร์ฟเวอร์หรือไม่?

ไม่ การ parse JSON การอนุมานชนิดข้อมูล และการสร้าง SQL ทำใน JavaScript ภายในเบราว์เซอร์ทั้งหมด

วันที่ตรวจจับอัตโนมัติได้ไหม?

ได้ สตริง ISO 8601 แบบวันที่หรือวันที่-เวลาจะถูกมองเป็น DATE หรือ TIMESTAMP

การแก้ไขปัญหา

ฝั่งขวาขึ้นแค่ "No valid objects found in JSON"

ข้อมูลระดับบนสุดอาจไม่ใช่ array/object หรือใน array มีแต่ค่าพื้นฐานที่ไม่สามารถสร้างคอลัมน์ได้

SQL ที่สร้างขึ้นรันในฐานข้อมูลแล้ว error

มักเกิดจากเลือก dialect ผิด ชื่อตารางหรือคอลัมน์ชนกับคำสงวน หรือ batch size ใหญ่เกินไป

ฟิลด์วันที่ถูกมองเป็น VARCHAR แทน DATE/TIMESTAMP

สตริงวันที่ไม่ได้อยู่ในรูปแบบ ISO 8601 จึงถูกมองเป็นข้อความธรรมดา

คอลัมน์เดียวกันมีทั้งตัวเลขและข้อความ

เมื่อชนิดข้อมูลขัดกัน เครื่องมือจะยกชนิดคอลัมน์ไปใช้ชนิดที่กว้างกว่า เช่น VARCHAR

อภิธานศัพท์

JSON
รูปแบบแลกเปลี่ยนข้อมูลขนาดเล็กที่ใช้แพร่หลายใน API และไฟล์ตั้งค่า
SQL
ภาษามาตรฐานสำหรับทำงานกับฐานข้อมูลเชิงสัมพันธ์
INSERT
คำสั่ง DML สำหรับเพิ่มแถวข้อมูลลงในตาราง
CREATE TABLE
คำสั่ง DDL สำหรับกำหนดชื่อตาราง คอลัมน์ และชนิดข้อมูล
SQL dialect
ความแตกต่างของไวยากรณ์และชนิดข้อมูลระหว่างระบบฐานข้อมูลแต่ละตัว
การอนุมานชนิดข้อมูล
กระบวนการเดาชนิด SQL อัตโนมัติจากค่า JSON
Batch insert
การรวมหลายแถวไว้ใน INSERT เดียวเพื่อให้ import เร็วขึ้น

SQL dialect ที่รองรับและความต่างหลัก

สรุป dialect หลัก พร้อมรูปแบบเครื่องหมายชื่อคอลัมน์ ชนิดจำนวนเต็ม และ boolean

Dialectเครื่องหมายชื่อชนิดจำนวนเต็มBooleanIF NOT EXISTS
MySQLbacktick `INTTRUEรองรับ
PostgreSQLเครื่องหมายคำพูดคู่ "INTEGERTRUEรองรับ
SQLiteเครื่องหมายคำพูดคู่ "INTEGER1/0รองรับ
SQL Serverวงเล็บเหลี่ยม []INT1/0ไม่รองรับ
BigQuerybacktick `INT64TRUEรองรับ
Snowflakeเครื่องหมายคำพูดคู่ "NUMBERTRUEรองรับ

กฎการอนุมานชนิดข้อมูล JSON -> SQL

กฎหลักที่ detectType ใช้ในการจับคู่ชนิดข้อมูล

ค่า JSONตัวอย่างชนิด SQL ที่อนุมานกฎ
nullnullNULLJSON null จะถูกแปลงเป็น SQL NULL
booleantrue / falseBOOLEANใช้ BOOLEAN หรือ 1/0 ตาม dialect
integer1, 100, -9999INT / BIGINTเลือก INT หรือ BIGINT ตามช่วงของค่า
float3.14, -0.5FLOAT / DOUBLE / REALค่าทศนิยมจะใช้ชนิดตัวเลขตาม dialect
ISO 8601 datetime2024-05-20T10:30:00TIMESTAMPวันที่เวลาแบบ ISO 8601 จะถูกมองเป็น TIMESTAMP
short / long stringAlice / 500 charsVARCHAR / TEXTข้อความไม่เกิน 255 ตัวอักษรใช้ VARCHAR ยาวกว่านั้นใช้ TEXT

Privacy & Security

ตัวแปลง JSON เป็น SQL นี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ การ parse JSON การอนุมานชนิดข้อมูล การสร้าง SQL และการจัดรูปแบบทำฝั่ง client ทั้งหมด โดยไม่ส่งข้อมูลอินพุตไปยังเซิร์ฟเวอร์ใด ๆ

Authoritative References