Dump SQL (.sql)

ISO/IEC Standard

Uno script SQL è un file di testo con istruzioni per il database, come CREATE TABLE, INSERT e SELECT. I dialetti SQL variano: prima di eseguire lo script, verifica che la sintassi sia supportata dal database di destinazione.

Converti da SQLITE a SQL

Convertitore gratuito da SQLITE a SQL nel browser. Converti i file istantaneamente sul tuo dispositivo.

Ispezione e metadati

I sistemi operativi e gli analizzatori di file identificano i file SQL ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Privato - i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file SQL ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

Nessuna firma fissa

RAPPRESENTAZIONE ASCII: Nessuna firma fissa

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

Specifiche tecniche

Architettura del contenitoreScript di testo semplice Unicode contenente istruzioni DDL (Data Definition Language) e DML (Data Manipulation Language)
CompressioneTesto normale non compresso (frequentemente compresso come .sql.gz o .sql.zst)
Endianness dei byteFlusso di testo UTF-8 / Unicode
Spazi coloreN/D (script di database)
Canali e strutturaDefinizioni di schemi relazionali (tabelle, viste, indici, chiavi esterne) e righe INSERT di dati
Dimensioni massimeLunghezza del testo illimitata (supporta dump di database da più terabyte)
TrasparenzaNessuna
Streaming e progressivoEsecuzione in streaming transazionale istruzione per istruzione

Matrice di confronto tecnico: SQL vs Concorrenti

Attributo tecnicoSQL (Attuale)CSVJSONSQLITE
Conservazione dello schemaSchema completo (tabelle, tipi, chiavi esterne)Solo nomi delle colonne di intestazioneStruttura del documento autoesplicativaFile di database binario completo
Modello di esecuzioneScript DDL/DML eseguibileDati tabulari passiviAlbero di documenti passivoQuery diretta sull’albero B binario
StandardizzazioneStandard ISO/IEC 9075RFC 4180RFC 8259Formato di file aperto SQLite
Relazioni tra i datiVincoli di chiave esterna completiStruttura tabulare piatta (nessuna relazione)Oggetti nidificati con relazioni genitore-figlioVincoli relazionali completi

Modalità di corruzione comuni e guida al recupero esadecimale

L'importazione del database fallisce con 'ERROR: syntax error at or near...'.

Causa principale: Mancata corrispondenza del dialetto SQL (ad es. importazione di un dump MySQL con caratteri di accento grave in PostgreSQL) o virgolette singole non sottoposte a escape.

Ripristino: Converti e sanifica la sintassi del dialetto utilizzando il Transpiler di database di File2File.app.

Analisi di sicurezza e vettori di attacco del parser

L'esecuzione di script SQL non attendibili può causare iniezioni SQL catastrofiche, scritture di file arbitrarie o escalation dei privilegi amministrativi.

Vettori di attacco noti

  • Iniezione SQL (SQLi) che consente di eseguire comandi amministrativi non intenzionali (ad es. DROP TABLE, GRANT ALL).
  • Lettura/scrittura di file di server arbitrari tramite 'COPY ... FROM PROGRAM' o 'LOAD DATA INFILE'.
  • Interruzione del servizio tramite espressioni di tabella comune (CTE) ricorsive e non indicizzate.

Migliori pratiche difensive: Non eseguire mai script SQL non attendibili direttamente sui server di database di produzione; ispeziona e sanifica le query in ambienti isolati.

Origini storiche e tappe fondamentali

2023Pubblicato lo standard ISO/IEC 9075:2023, che integra le query sui grafi delle proprietà (SQL/PGQ) nello standard SQL.
1986ANSI e ISO adottano SQL come standard ufficiale per i sistemi di gestione di database relazionali.
1974Donald Chamberlin e Raymond Boyce sviluppano SEQUEL presso IBM Research basandosi sul modello relazionale di Edgar F. Codd.

Vantaggi principali

  • Gli script SQL possono definire tabelle, aggiungere righe ed eseguire query sui database relazionali. La sintassi per tipi di dati, colonne identity e funzioni per le date varia tra SQLite, MySQL, PostgreSQL e SQL Server.
  • Completa fedeltà relazionale: ricrea tabelle, chiavi primarie, chiavi esterne, vincoli e indici insieme ai dati.
  • Esecuzione transazionale: le istruzioni possono essere eseguite all'interno di transazioni (BEGIN...COMMIT) per garantire il ripristino atomico del database.

Limiti tecnici e svantaggi

  • Incompatibilità tra dialetti: sottili differenze di sintassi (ad es. AUTO_INCREMENT vs SERIAL vs AUTOINCREMENT) richiedono la traduzione tra motori di database.
  • Enorme ingombro dovuto al testo: le normali istruzioni SQL INSERT richiedono molto più spazio rispetto all'archiviazione di database binari.
  • Tempi di importazione lunghi per enormi dump di database da più gigabyte se non si disabilita la ricostruzione degli indici.

Curiosità tecniche

  • SQL è stato originariamente chiamato 'SEQUEL' (Structured English Query Language), ma è stato abbreviato in SQL a causa di una controversia sui marchi con l’azienda aeronautica Hawker Siddeley.
  • La pronuncia prescritta dallo standard ISO è quella delle singole lettere 'S-Q-L', ma milioni di sviluppatori lo pronunciano colloquialmente come 'sequel'.
  • Si stima che SQLite, che usa la sintassi SQL, sia installato su oltre 1 trilione di dispositivi in tutto il mondo.

Domande tecniche frequenti

Cos'è un file .sql?

Un file .sql è uno script in chiaro contenente comandi SQL che creano tabelle, stabiliscono relazioni e inseriscono righe di dati in un database relazionale.

Posso convertire i file di dump SQL in CSV o JSON?

Sì. File2File.app può analizzare i dump di database .sql ed esportarne le tabelle in fogli di calcolo CSV o documenti JSON strutturati.

Perché il mio file .sql di MySQL non funziona in PostgreSQL?

Diversi sistemi di database hanno differenze proprietarie nei dialetti (come i tipi di dati e l'escape delle virgolette). È necessario transcodificare la sintassi specifica del dialetto durante la migrazione tra motori di database.