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

ISO/IEC มาตรฐาน

สคริปต์ SQL เป็นไฟล์ข้อความที่มีคำสั่งฐานข้อมูล เช่น CREATE TABLE, INSERT และ SELECT ไวยากรณ์ SQL แต่ละแบบแตกต่างกัน จึงควรตรวจสอบว่าฐานข้อมูลปลายทางรองรับไวยากรณ์ของสคริปต์ก่อนเรียกใช้

แปลง SQLITE เป็น SQL

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

ตรวจสอบไฟล์และข้อมูลเมตา

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

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

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

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

ลายเซ็นส่วนหัวระดับไบต์

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

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

ไม่มีลายเซ็นตายตัว

การแสดงผลรูปแบบ ASCII: ไม่มีลายเซ็น ASCII ตายตัว

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

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

สถาปัตยกรรมคอนเทนเนอร์สคริปต์ข้อความ Unicode ล้วนที่มีคำสั่ง Data Definition Language (DDL) และ Data Manipulation Language (DML)
การบีบอัดข้อความล้วนแบบไม่บีบอัด (มักบีบอัดเป็น .sql.gz หรือ .sql.zst)
การจัดลำดับไบต์สตรีมข้อความ UTF-8 / Unicode
พื้นที่สีไม่เกี่ยวข้อง (สคริปต์ฐานข้อมูล)
ช่องสัญญาณและโครงสร้างคำจำกัดความสคีมาเชิงสัมพันธ์ (ตาราง, วิว, ดัชนี, คีย์นอก) และแถวคำสั่ง INSERT ข้อมูล
ขนาดสูงสุดความยาวข้อความไม่จำกัด (รองรับดัมป์ฐานข้อมูลขนาดหลายเทราไบต์)
ความโปร่งใสไม่มี
การสตรีมและแบบโปรเกรสซีฟประมวลผลสตรีมแบบธุรกรรมทีละคำสั่ง

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • สคริปต์ SQL กำหนดตาราง เพิ่มแถว และสอบถามฐานข้อมูลเชิงสัมพันธ์ได้ ไวยากรณ์อย่างชนิดข้อมูล คอลัมน์ identity และฟังก์ชันวันที่แตกต่างกันระหว่าง SQLite, MySQL, PostgreSQL และ 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 ไม่ได้

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

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

SQLITE เป็น SQL

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

SQL เป็น JSON

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

SQL เป็น CSV

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

BAK เป็น SQL

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

SQL เป็น BAK

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