Zrzut SQL (.sql)

ISO/IEC Standard

Skrypt Structured Query Language (SQL) to uniwersalny format relacyjnych baz danych. Zawiera deklaratywne instrukcje DDL do tworzenia tabel oraz instrukcje DML INSERT do wstawiania danych.

Konwertuj SQLITE na SQL

Darmowy konwerter z SQLITE na SQL w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki SQL, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki SQL, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

Brak stałej sygnatury (SQL to zwykły tekst)

REPREZENTACJA ASCII: Brak stałej sygnatury ASCII

Normalizacja: ISO/IEC 9075:2023 / Standard ANSI SQL

Specyfikacja techniczna

Architektura konteneraSkrypt zwykłego tekstu Unicode zawierający instrukcje języka definicji danych (DDL) oraz języka manipulacji danymi (DML)
KompresjaNieskompresowany zwykły tekst (często kompresowany do plików .sql.gz lub .sql.zst)
Kolejność bajtów (Endianness)Strumień tekstowy UTF-8 / Unicode
Przestrzenie kolorówNie dotyczy (skrypt bazy danych)
Kanały i strukturaDefinicje schematów relacyjnych (tabele, widoki, indeksy, klucze obce) oraz wiersze danych polecenia INSERT
Maks. wymiaryNieograniczona długość tekstu (obsługuje wieloterabajtowe zrzuty baz danych)
PrzezroczystośćBrak
Streaming i progresywne ładowanieTransakcyjne wykonywanie strumieniowe instrukcja po instrukcji

Techniczna macierz porównawcza: SQL a konkurencja

Atrybut technicznySQL (Bieżący)CSVJSONSQLITE
Zachowanie schematuKompletny schemat (tabele, typy, klucze obce)Tylko nazwy kolumn w nagłówkuSamopisująca się struktura dokumentuKompletny plik binarnej bazy danych
Model wykonywaniaWykonywalny skrypt DDL/DMLPasywne dane wierszowo-kolumnowePasywne drzewo dokumentówBezpośrednie zapytanie binarne B-tree
StandaryzacjaStandard ISO/IEC 9075RFC 4180RFC 8259Otwarty format pliku SQLite
Relacje danychPełne ograniczenia kluczy obcychPłaskie dane tabelaryczne (bez relacji)Zagnieżdżone obiekty nadrzędno-podrzędnePełne ograniczenia relacyjne

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Import bazy danych kończy się niepowodzeniem z komunikatem „ERROR: syntax error at or near...”.

Główna przyczyna: Niezgodność dialektów SQL (np. import zrzutu MySQL z grawisami do PostgreSQL) lub apostrofy niepoprzedzone znakiem ucieczki.

Odzyskiwanie: Skonwertuj składnię dialektu i oczyść ją za pomocą narzędzia File2File.app Database Transpiler.

Analiza bezpieczeństwa i wektory ataku na parser

Wykonywanie niezaufanych skryptów SQL może prowadzić do poważnych ataków SQL injection, zapisu dowolnych plików lub eskalacji uprawnień administracyjnych.

Znane wektory ataku

  • Iniekcja SQL (SQLi) polegająca na wykonaniu niezamierzonych poleceń administracyjnych (np. DROP TABLE, GRANT ALL).
  • Odczyt lub zapis dowolnych plików na serwerze za pomocą poleceń „COPY ... FROM PROGRAM” lub „LOAD DATA INFILE”.
  • Atak typu odmowa usługi (DoS) poprzez nieindeksowane, rekurencyjne wspólne wyrażenia tabelaryczne (CTE).

Najlepsze praktyki obronne: Nigdy nie wykonuj niezaufanych skryptów SQL bezpośrednio na produkcyjnych serwerach baz danych; sprawdzaj i oczyszczaj zapytania w izolowanych piaskownicach.

Pochodzenie historyczne i kamienie milowe

2023Wydano normę ISO/IEC 9075:2023, integrującą zapytania o grafy właściwości (SQL/PGQ) ze standardowym językiem SQL.
1986Organizacje ANSI i ISO przyjmują SQL jako oficjalny standard dla relacyjnych systemów zarządzania bazami danych.
1974Donald Chamberlin i Raymond Boyce opracowują język SEQUEL w IBM Research w oparciu o model relacyjny Edgara F. Codda.

Główne zalety

  • Niekwestionowany globalny standard przechowywania danych w przedsiębiorstwach, zgodny z PostgreSQL, MySQL, SQLite, Oracle i SQL Server.
  • Pełne odwzorowanie relacyjnej bazy danych: odtwarzane są tabele, klucze główne i obce, ograniczenia oraz indeksy, a także dane.
  • Wykonywanie transakcyjne: instrukcje mogą być uruchamiane w ramach transakcji (BEGIN...COMMIT), co gwarantuje atomowe odtworzenie bazy danych.

Ograniczenia techniczne i wady

  • Niezgodności między dialektami: subtelne różnice w składni (np. AUTO_INCREMENT, SERIAL i AUTOINCREMENT) wymagają dostosowania kodu do różnych silników baz danych.
  • Duży narzut objętościowy: zwykłe instrukcje SQL INSERT zajmują znacznie więcej miejsca niż binarne formaty przechowywania baz danych.
  • Importowanie wielogigabajtowych zrzutów baz danych trwa długo, jeśli nie wyłączy się ponownego tworzenia indeksów.

Ciekawe informacje techniczne

  • SQL nosił pierwotnie nazwę „SEQUEL” (Structured English Query Language), ale został skrócony do SQL z powodu sporu o znak towarowy z firmą lotniczą Hawker Siddeley.
  • Formalny standard ISO nakazuje wymawiać go jako poszczególne litery „S-Q-L”, jednak miliony programistów wymawiają go potocznie jako „sequel”.
  • Szacuje się, że SQLite, który działa w oparciu o składnię SQL, jest zainstalowany na ponad 1 bilionie urządzeń na całym świecie.

Często zadawane pytania techniczne

Czym jest plik .sql?

Plik .sql to skrypt tekstowy zawierający polecenia SQL do tworzenia tabel, definiowania relacji i wstawiania wierszy danych do relacyjnej bazy danych.

Czy mogę skonwertować pliki zrzutu SQL do formatu CSV lub JSON?

Tak. File2File.app może odczytywać zrzuty baz danych w plikach .sql i eksportować tabele bezpośrednio do przejrzystych arkuszy CSV lub ustrukturyzowanych dokumentów JSON.

Dlaczego mój plik .sql z MySQL nie działa w systemie PostgreSQL?

Różne systemy baz danych używają własnych dialektów, które różnią się między innymi typami danych i sposobem escapowania cudzysłowów. Podczas migracji między silnikami baz danych trzeba przetłumaczyć składnię specyficzną dla danego dialektu.