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

ISO/IEC Tiêu chuẩn

Script SQL là tệp văn bản gồm câu lệnh cơ sở dữ liệu như CREATE TABLE, INSERT và SELECT. Các phương ngữ SQL khác nhau, vì vậy hãy kiểm tra cơ sở dữ liệu đích hỗ trợ cú pháp của script trước khi chạy.

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

Riêng 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 vệ quyền riêng tư, không truyền dữ liệu 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ý ở đầu tệp (mẫu byte nhận diện)

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):

Không có chữ ký cố định (SQL là văn bản thuần túy)

BIỂU DIỄN ASCII: Không có chữ ký cố định

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

Thông số kỹ thuật

Kiến trúc ContainerTập lệnh văn bản thuần Unicode gồm các câu lệnh Ngôn ngữ Định nghĩa Dữ liệu (DDL) và Ngôn ngữ Thao tác Dữ liệu (DML)
NénVăn bản thuần không nén (thường nén thành .sql.gz hoặc .sql.zst)
Thứ tự byteLuồng văn bản UTF-8 / Unicode
Không gian màuKhông áp dụng (tập lệnh cơ sở dữ liệu)
Kênh & Cấu trúcĐịnh nghĩa lược đồ quan hệ (bảng, khung nhìn, chỉ mục, khóa ngoại) và các hàng dữ liệu INSERT
Kích thước tối đaĐộ dài văn bản không giới hạn (hỗ trợ bản kết xuất cơ sở dữ liệu nhiều terabyte)
Độ trong suốtKhông có
Truyền phát & Tăng dầnThực thi giao dịch theo luồng, từng câu lệnh

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 dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã 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.app Database Transpiler.

Phân tích bảo mật và các đường tấn công nhằm vào 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 tấn công tiêm mã SQL nghiêm trọng, 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).

Biện pháp phòng thủ tốt nhất: Không bao giờ thực thi trực tiếp các tập lệnh SQL không đáng tin cậy trên các máy chủ cơ sở dữ liệu sản xuất; kiểm tra và làm sạch các truy vấn trong các môi trường cách ly.

Nguồn gốc lịch sử và 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

  • Script SQL có thể định nghĩa bảng, thêm hàng và truy vấn cơ sở dữ liệu quan hệ. Cú pháp như kiểu dữ liệu, cột identity và hàm ngày tháng khác nhau giữa SQLite, MySQL, PostgreSQL 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 về 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.