Bản sao lưu SQL (.sql)
ISO/IEC Tiêu chuẩnScript 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ữ 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 Container | Tậ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én | Văn bản thuần không nén (thường nén thành .sql.gz hoặc .sql.zst) |
| Thứ tự byte | Luồng văn bản UTF-8 / Unicode |
| Không gian màu | Khô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ốt | Không có |
| Truyền phát & Tăng dần | Thự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ật | SQL (Hiện tại) | CSV | JSON | SQLITE |
|---|---|---|---|---|
| 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 thi | Tập lệnh DDL/DML có thể thực thi | Dữ liệu hàng-cột thụ động | Cây tài liệu thụ động | Truy vấn B-tree nhị phân trực tiếp |
| Tiêu chuẩn hóa | Tiêu chuẩn ISO/IEC 9075 | RFC 4180 | RFC 8259 | Định dạng tệp mở SQLite |
| Mối quan hệ dữ liệu | Rà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 nhau | Rà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
Ư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.
Các cặp chuyển đổi SQL liên quan
Chuyển tệp cơ sở dữ liệu SQLite thành tập lệnh SQL dạng văn bản để đổi cơ sở dữ liệu nhị phân thành các lệnh dễ đọc, thuận tiện cho việc di chuyển cơ sở dữ liệu và nhập dữ liệu vào máy chủ.
Chuyển tập lệnh SQL dạng văn bản thành dữ liệu JSON để biến các bảng cơ sở dữ liệu quan hệ cố định thành đối tượng lồng nhau linh hoạt cho ứng dụng web hiện đại.
Chuyển đổi các tập lệnh sao lưu cơ sở dữ liệu quan hệ thành bảng tính dạng phẳng để phân tích dữ liệu và lập báo cáo đơn giản.
Chuyển bản sao lưu .bak được hỗ trợ của SQL Server thành tập lệnh SQL dạng văn bản để kiểm tra hoặc phục vụ quy trình di chuyển dữ liệu.
Việc chuyển đổi một tập lệnh SQL dạng văn bản thuần túy chưa nén thành tệp sao lưu cơ sở dữ liệu gốc được tối ưu hóa giúp giảm kích thước lưu trữ và tăng tốc thời gian khôi phục máy chủ.