ไฟล์สำรองข้อมูล SQL (.sql)

ISO/IEC มาตรฐาน

Structured Query Language Script (SQL) คือรูปแบบฐานข้อมูลเชิงสัมพันธ์สากลที่มีคำสั่ง DDL แบบประกาศเพื่อสร้างตารางฐานข้อมูลและคำสั่ง DML INSERT เพื่อใส่ข้อมูล

แปลง SQLITE เป็น SQL

ตัวแปลงจาก SQLITE เป็น SQL ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ

ตรวจสอบและดู Metadata

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ SQL โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
การรับประกันความเป็นส่วนตัวแบบไม่มีการส่งผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ SQL โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

ลายเซ็น HEX (OFFSET 0):

2D 2D 20 / 43 52 45 41 54 45

การแสดงผลรูปแบบ ASCII: -- / CREATE

มาตรฐาน: ISO/IEC 9075:2023 / ANSI SQL Standard

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์Unicode plain text script containing Data Definition Language (DDL) and Data Manipulation Language (DML) statements
การบีบอัดUncompressed plaintext (frequently compressed as .sql.gz or .sql.zst)
การจัดลำดับไบต์ (Byte Endianness)UTF-8 / Unicode text stream
พื้นที่สีN/A (Database Script)
ช่องสัญญาณและโครงสร้างRelational schema definitions (tables, views, indexes, foreign keys) and data INSERT rows
ขนาดสูงสุดUnbounded text length (supports multi-terabyte database dumps)
ความโปร่งใสNone
การสตรีมและแบบโปรเกรสซีฟStatement-by-statement transactional streaming execution

ตารางเปรียบเทียบทางเทคนิค: SQL กับคู่แข่ง

คุณลักษณะทางเทคนิคSQL (ปัจจุบัน)CSVJSONSQLITE
การรักษาโครงสร้างสคีมาสคีมาสมบูรณ์ (ตาราง, ชนิดข้อมูล, คีย์นอก)ชื่อคอลัมน์ส่วนหัวเท่านั้นโครงสร้างเอกสารที่อธิบายตัวเองได้ไฟล์ฐานข้อมูลไบนารีที่สมบูรณ์
โมเดลการทำงานสคริปต์ DDL/DML ที่ดำเนินการได้ข้อมูลแถวคอลัมน์แบบ pasiveต้นไม้เอกสารแบบ pasiveการค้นหา B-tree แบบไบนารีโดยตรง
การสร้างมาตรฐานมาตรฐาน ISO/IEC 9075RFC 4180RFC 8259รูปแบบไฟล์เปิดของ SQLite
ความสัมพันธ์ของข้อมูลข้อจำกัดคีย์นอกเต็มรูปแบบตารางแบน (ไม่มีความสัมพันธ์)ออบเจ็กต์แม่-ลูกซ้อนกันข้อจำกัดเชิงสัมพันธ์เต็มรูปแบบ

รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex

การนำเข้าฐานข้อมูลล้มเหลวพร้อมข้อความ 'ERROR: syntax error at or near...'

สาเหตุหลัก: ความไม่ตรงกันของภาษาย่อย SQL (เช่น การนำดัมพ์แบ็กทิกของ MySQL เข้าสู่ PostgreSQL) หรือเครื่องหมายคำพูดเดี่ยวที่ไม่ได้หลีกอักขระ (unescaped single quotes)

การกู้คืน: แปลงและทำความสะอาดไวยากรณ์ภาษาย่อยโดยใช้ File2File Database Transpiler

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

การรันสคริปต์ SQL ที่ไม่น่าเชื่อถืออาจทำให้เกิดการโจมตีแบบ SQL Injection ที่ร้ายแรง, การเขียนไฟล์ตามอำเภอใจ, หรือการยกระดับสิทธิ์ผู้ดูแลระบบ

เวกเตอร์การโจมตีที่ทราบ

  • SQL Injection (SQLi) ที่ดำเนินการคำสั่งผู้ดูแลระบบโดยไม่ตั้งใจ (เช่น DROP TABLE, GRANT ALL)
  • การอ่าน/เขียนไฟล์เซิร์ฟเวอร์ตามอำเภอใจผ่าน 'COPY ... FROM PROGRAM' หรือ 'LOAD DATA INFILE'
  • การปฏิเสธการให้บริการผ่านนิพจน์ตารางทั่วไป (CTEs) แบบเรียกซ้ำที่ไม่มีการทำดัชนี

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2023เปิดตัว ISO/IEC 9075:2023 โดยผสานรวมการค้นหากราฟคุณสมบัติ (SQL/PGQ) เข้ากับ SQL มาตรฐาน
1986ANSI และ ISO นำ SQL มาใช้เป็นมาตรฐานอย่างเป็นทางการสำหรับระบบจัดการฐานข้อมูลเชิงสัมพันธ์
1974Donald Chamberlin และ Raymond Boyce พัฒนา SEQUEL ที่ IBM Research โดยอ้างอิงจากโมเดลเชิงสัมพันธ์ของ Edgar F. Codd

ข้อได้เปรียบและจุดเด่นสำคัญ

  • มาตรฐานระดับโลกที่ไม่มีใครเทียบได้สำหรับการจัดเก็บข้อมูลระดับองค์กร: เข้ากันได้กับ PostgreSQL, MySQL, SQLite, Oracle และ SQL Server
  • ความสมบูรณ์แบบเชิงสัมพันธ์ที่สมบูรณ์: สร้างตาราง คีย์หลัก คีย์นอก ข้อจำกัด และดัชนีขึ้นใหม่ควบคู่ไปกับข้อมูล
  • การดำเนินการแบบทรานแซกชัน: สามารถรันคำสั่งภายในทรานแซกชัน (BEGIN...COMMIT) เพื่อรับประกันการกู้คืนฐานข้อมูลแบบอะตอมมิค

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • ความเข้ากันไม่ได้ของภาษาย่อย (Dialects): ความแตกต่างเล็กน้อยของไวยากรณ์ (เช่น AUTO_INCREMENT กับ SERIAL กับ AUTOINCREMENT) ต้องมีการแปลงระหว่างเอ็นจิ้นฐานข้อมูล
  • ปริมาณข้อความมหาศาล: คำสั่ง SQL INSERT แบบข้อความธรรมดากินพื้นที่มากกว่าการจัดเก็บฐานข้อมูลแบบไบนารีอย่างมาก
  • เวลาในการนำเข้าข้อมูลช้าบนการดัมพ์ฐานข้อมูลขนาดใหญ่หลายกิกะไบต์ หากไม่มีการปิดใช้งานการสร้างดัชนีใหม่

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • เดิมที SQL มีชื่อว่า 'SEQUEL' (Structured English Query Language) แต่ถูกย่อเหลือ SQL เนื่องจากข้อพิพาทด้านเครื่องหมายการค้ากับบริษัทอากาศยาน Hawker Siddeley
  • มาตรฐาน ISO อย่างเป็นทางการออกเสียงเป็นตัวอักษรแต่ละตัวว่า 'S-Q-L' แต่นักพัฒนาหลายล้านคนออกเสียงในชีวิตประจำวันว่า 'sequel'
  • SQLite ซึ่งทำงานบนไวยากรณ์ SQL คาดว่าถูกติดตั้งอยู่บนอุปกรณ์มากกว่า 1 ล้านล้านเครื่องทั่วโลก

คำถามทางเทคนิคที่พบบ่อย

ไฟล์ .sql คืออะไร

ไฟล์ .sql คือสคริปต์ข้อความธรรมดา (plaintext) ที่ประกอบด้วยคำสั่ง SQL สำหรับสร้างตาราง กำหนดความสัมพันธ์ และแทรกแถวข้อมูลลงในฐานข้อมูลเชิงสัมพันธ์

ฉันสามารถแปลงไฟล์ดัมพ์ SQL เป็น CSV หรือ JSON ได้หรือไม่

ได้ File2File.app สามารถแยกวิเคราะห์ไฟล์ดัมพ์ฐานข้อมูล .sql และส่งออกตารางไปยังสเปรดชีต CSV หรือเอกสาร JSON ที่มีโครงสร้างได้โดยตรง

เหตุใดไฟล์ .sql ของ MySQL จึงใช้งานใน PostgreSQL ไม่ได้

ระบบฐานข้อมูลที่ต่างกันจะมีความแตกต่างของไดอะเล็กต์เฉพาะตัว (เช่น ชนิดข้อมูลและการหลีกเครื่องหมายคำพูด) คุณต้องแปลงรหัสไวยากรณ์เฉพาะของไดอะเล็กต์นั้น ๆ เมื่อทำการย้ายข้อมูลระหว่างเอนจินฐานข้อมูล

คู่การแปลงไฟล์ SQL ที่เกี่ยวข้อง

SQLITE ไปยัง SQL

การแปลงไฟล์ฐานข้อมูล SQLite เป็นสคริปต์ข้อความ SQL Dump จะเปลี่ยนฐานข้อมูลไบนารีให้เป็นคำสั่งข้อความที่อ่านได้ เพื่อให้การย้ายฐานข้อมูลและการนำเข้าเซิร์ฟเวอร์เป็นไปอย่างง่ายดาย

SQL ไปยัง JSON

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

SQL ไปยัง CSV

แปลงสคริปต์สำรองข้อมูลฐานข้อมูลเชิงสัมพันธ์ให้เป็นสเปรดชีตแบบตารางแบน เพื่อการวิเคราะห์ข้อมูลและสร้างรายงานที่ง่ายดาย

BAK ไปยัง SQL

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

SQL ไปยัง BAK

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