Bản sao lưu SQL (.sql)

ISO/IEC Tiêu chuẩn

Structured Query Language Script (SQL) là định dạng cơ sở dữ liệu quan hệ phổ quát chứa các câu lệnh DDL khai báo để cấu trúc các bảng cơ sở dữ liệu và các câu lệnh DML INSERT để điền dữ liệu.

Chuyển đổi SQLITE sang SQL

Trình chuyển đổi từ SQLITE sang SQL miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp SQL bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp SQL bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

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

BIỂU DIỄN ASCII: -- / CREATE

Tiêu chuẩn hóa: ISO/IEC 9075:2023 / ANSI SQL Standard

Thông số kỹ thuật

Kiến trúc ContainerUnicode plain text script containing Data Definition Language (DDL) and Data Manipulation Language (DML) statements
NénUncompressed plaintext (frequently compressed as .sql.gz or .sql.zst)
Thứ tự byte EndiannessUTF-8 / Unicode text stream
Không gian màuN/A (Database Script)
Kênh & Cấu trúcRelational schema definitions (tables, views, indexes, foreign keys) and data INSERT rows
Kích thước tối đaUnbounded text length (supports multi-terabyte database dumps)
Độ trong suốtNone
Truyền phát & Tăng dầnStatement-by-statement transactional streaming execution

Ma trận so sánh kỹ thuật: SQL so với các đối thủ

Thuộc tính kỹ thuậtSQL (Hiện tại)CSVJSONSQLITE
Bảo tồn lược đồLược đồ hoàn chỉnh (bảng, kiểu dữ liệu, khóa ngoại)Chỉ tên cột tiêu đềCấu trúc tài liệu tự mô tảTệp cơ sở dữ liệu nhị phân hoàn chỉnh
Mô hình thực thiTập lệnh DDL/DML có thể thực thiDữ liệu hàng-cột thụ độngCây tài liệu thụ độngTruy vấn B-tree nhị phân trực tiếp
Tiêu chuẩn hóaTiêu chuẩn ISO/IEC 9075RFC 4180RFC 8259Định dạng tệp mở SQLite
Mối quan hệ dữ liệuRàng buộc khóa ngoại đầy đủDạng bảng phẳng (không có mối quan hệ)Đối tượng cha-con lồng nhauRàng buộc quan hệ đầy đủ

Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex

Việc nhập cơ sở dữ liệu thất bại với thông báo 'ERROR: syntax error at or near...'.

Nguyên nhân gốc rễ: Không khớp phương ngữ SQL (ví dụ: nhập bản kết xuất dấu ngoặc ngược MySQL vào PostgreSQL) hoặc dấu nháy đơn chưa được thoát.

Khắc phục: Chuyển đổi và làm sạch cú pháp phương ngữ bằng File2File Database Transpiler.

Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp

Thực thi các tập lệnh SQL không đáng tin cậy có thể gây ra lỗi tiêm nhiễm SQL thảm khốc, ghi tệp tùy ý hoặc leo thang đặc quyền quản trị.

Các Véc-tơ Tấn công Đã biết

  • Tiêm nhiễm SQL (SQLi) thực thi các lệnh quản trị ngoài ý muốn (ví dụ: DROP TABLE, GRANT ALL).
  • Đọc/ghi tệp máy chủ tùy ý thông qua 'COPY ... FROM PROGRAM' hoặc 'LOAD DATA INFILE'.
  • Từ chối dịch vụ thông qua các biểu thức bảng chung đệ quy chưa được lập chỉ mục (CTE).

Thực tiễn Tốt nhất về Phòng thủ:

Nguồn gốc lịch sử & Các cột mốc

2023ISO/IEC 9075:2023 được phát hành, tích hợp các truy vấn đồ thị thuộc tính (SQL/PGQ) vào SQL tiêu chuẩn.
1986ANSI và ISO thông qua SQL làm tiêu chuẩn chính thức cho các hệ quản trị cơ sở dữ liệu quan hệ.
1974Donald Chamberlin và Raymond Boyce phát triển SEQUEL tại IBM Research dựa trên mô hình quan hệ của Edgar F. Codd.

Ưu điểm & Lợi ích chính

  • Tiêu chuẩn toàn cầu không thể bàn cãi cho việc lưu trữ dữ liệu doanh nghiệp: tương thích với PostgreSQL, MySQL, SQLite, Oracle và SQL Server.
  • Độ trung thực quan hệ hoàn chỉnh: tái tạo các bảng, khóa chính, khóa ngoại, các ràng buộc và chỉ mục cùng với dữ liệu.
  • Thực thi giao dịch: các câu lệnh có thể được chạy bên trong các giao dịch (BEGIN...COMMIT) để đảm bảo khôi phục cơ sở dữ liệu nguyên tử.

Hạn chế & Nhược điểm kỹ thuật

  • Không tương thích phương ngữ: sự khác biệt cú pháp tinh tế (ví dụ: AUTO_INCREMENT so với SERIAL so với AUTOINCREMENT) đòi hỏi phải dịch giữa các công cụ cơ sở dữ liệu.
  • Chi phí văn bản khổng lồ: các câu lệnh INSERT SQL thuần túy chiếm dung lượng lớn hơn đáng kể so với lưu trữ cơ sở dữ liệu nhị phân.
  • Thời gian nhập chậm trên các bản kết xuất cơ sở dữ liệu đa gigabyte khổng lồ mà không tắt việc xây dựng lại chỉ mục.

Thông tin kỹ thuật thú vị

  • SQL ban đầu được đặt tên là 'SEQUEL' (Structured English Query Language), nhưng được rút gọn thành SQL do tranh chấp nhãn hiệu với công ty máy bay Hawker Siddeley.
  • Tiêu chuẩn ISO chính thức phát âm nó bằng các chữ cái riêng lẻ 'S-Q-L', nhưng hàng triệu nhà phát triển phát âm nó một cách thông tục là 'sequel'.
  • SQLite, chạy trên cú pháp SQL, ước tính được cài đặt trên hơn 1 nghìn tỷ thiết bị trên toàn thế giới.

Các câu hỏi kỹ thuật thường gặp

Tệp .sql là gì?

Tệp .sql là một tập lệnh văn bản thuần túy chứa các lệnh SQL dùng để tạo bảng, thiết lập mối quan hệ và chèn các hàng dữ liệu vào cơ sở dữ liệu quan hệ.

Tôi có thể chuyển đổi các tệp kết xuất (dump) SQL sang CSV hoặc JSON không?

Có. File2File.app có thể phân tích cú pháp các tệp kết xuất cơ sở dữ liệu .sql và xuất các bảng trực tiếp thành tệp bảng tính CSV gọn gàng hoặc tài liệu JSON có cấu trúc.

Tại sao tệp .sql của MySQL không hoạt động trong PostgreSQL?

Các hệ thống cơ sở dữ liệu khác nhau có các điểm khác biệt về phương ngữ riêng (chẳng hạn như kiểu dữ liệu và cách thoát dấu nháy). Bạn phải chuyển mã cú pháp đặc thù của từng hệ quản trị khi di chuyển giữa các công cụ cơ sở dữ liệu.