SQL tõmmis (.sql)

ISO/IEC Standard

Structured Query Language Script (SQL) on universaalne relatsioonandmebaasi vorming, mis sisaldab deklaratiivseid DDL-lauseidandmebaasitabelite konstrueerimiseks ja DML-i INSERT-lauseid andmete sisestamiseks.

Teisenda formaadist SQLITE formaati SQL

Tasuta SQLITE -> SQL konverter brauseris. Teisenda faile koheselt oma seadmes.

Kontrolli ja metaandmed

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad SQL faile, kontrollides algset binaarset baidijada:

Vali või lohista failid siia

100% privaatne konversioon brauseris - failid ei lahku kunagi sinu seadmest

või kleebi Ctrl+V
Null-võrguülekande privaatsusgarantii: 0 baiti laaditakse üles välistesse serveritesse. Kogu töötlemine toimub lokaalselt sinu brauseri liivakastis.

Baidi-taseme päise allkiri (maagilised baidid)

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad SQL faile, kontrollides algset binaarset baidijada:

HEX-ALLKIRI (NIHE 0):

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

ASCII-ESITUS: -- / CREATE

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

Tehnilised andmed

Konteineri arhitektuurUnicode plain text script containing Data Definition Language (DDL) and Data Manipulation Language (DML) statements
TihendamineUncompressed plaintext (frequently compressed as .sql.gz or .sql.zst)
Baitide järjekord (Endianness)UTF-8 / Unicode text stream
VärviruumidN/A (Database Script)
Kanalid ja struktuurRelational schema definitions (tables, views, indexes, foreign keys) and data INSERT rows
Max mõõtmedUnbounded text length (supports multi-terabyte database dumps)
LäbipaistvusNone
Voogedastus ja progressiivsusStatement-by-statement transactional streaming execution

Tehniline võrdlusmaatriks: SQL vs konkurendid

Tehniline atribuutSQL (Praegune)CSVJSONSQLITE
Skeemi säilitamineTäielik skeem (tabelid, tüübid, välisvõtmed)Ainult päiseveeru nimedIsekirjeldav dokumendistruktuurTäielik binaarne andmebaasifail
TäitmismudelKäivitatav DDL/DML skriptPassiivsed rea-veeru andmedPassiivne dokumentide puuOtsene binaarne B-puu päring
StandardiseerimineISO/IEC 9075 standardRFC 4180RFC 8259SQLite avatud failivorming
AndmesuhtedTäielikud välisvõtme piirangudLame tabelikujuline (suhteid pole)Pesastatud vanem-laps objektidTäielikud relatsioonilised piirangud

Levinud riknemisvead ja heksataaste juhend

Andmebaasi import ebaõnnestub veaga 'ERROR: syntax error at or near...'.

Juurpõhjus: SQL-i dialekti ebakõla (nt MySQL-i tagasilöögi (backtick) tõmmise importimine PostgreSQL-i) või põgenemata (unescaped) ülakomad.

Taastamine: Konverteerige ja desinfitseerige dialekti süntaks File2File Database Transpileri abil.

Turvaanalüüs ja parsimisründevektorid

Usaldamatute SQL-skriptide käivitamine võib põhjustada katastroofilise SQL-injektsiooni, meelevaldseid failikirjutamisi või administratiivsete õiguste eskaleerimist.

Teadaolevad ründavektorid

  • SQL-injektsioon (SQLi), mis käivitab soovimatuid administratiivseid käske (nt DROP TABLE, GRANT ALL).
  • Meelevaldne serverifaili lugemine/kirjutamine funktsioonide 'COPY ... FROM PROGRAM' või 'LOAD DATA INFILE' kaudu.
  • Teenusetõkestus (DoS) indekseerimata rekursiivsete ühiste tabeliavalduste (CTE-de) kaudu.

Kaitsealased parimad tavad:

Ajalooline taust ja verstapostid

2023Avaldatakse ISO/IEC 9075:2023, mis integreerib omaduste graafikupäringud (SQL/PGQ) standardse SQL-i sisse.
1986ANSI ja ISO võtavad SQL-i vastu relatsioonandmebaaside haldussüsteemide ametliku standardina.
1974Donald Chamberlin ja Raymond Boyce arendavad IBM Researchis välja SEQUELi, mis põhineb Edgar F. Coddi relatsioonimudelil.

Peamised eelised

  • Vaieldamatu globaalne standard ettevõtte andmete salvestamiseks: ühildub PostgreSQL-i, MySQL-i, SQLite-i, Oracle'i ja SQL Serveriga.
  • Täielik relatsiooniline vastavus: taastab tabelid, primaarvõtmed, välisvõtmed, piirangud ja indeksid koos andmetega.
  • Tehingupõhine täitmine: lauseid saab käivitada tehingute sees (BEGIN...COMMIT), et tagada andmebaasi aatomiline taastamine.

Tehnilised piirangud ja puudused

  • Dialektide ühildamatus: peened süntaksierinevused (nt AUTO_INCREMENT vs SERIAL vs AUTOINCREMENT) nõuavad tõlkimistandmebaasimootorite vahel.
  • Massiivne teksti lisakulu: tavalised SQL INSERT laused võtavad oluliselt rohkem ruumi kui binaarne andmebaasi salvestusruum.
  • Aeglased impordiajad massiivsete mitme gigabaidise andmebaasi tõmmiste puhul ilma keelatud indeksite ümberehituseta.

Huvitavaid tehnilisi fakte

  • SQL-i algne nimi oli 'SEQUEL' (Structured English Query Language), kuid kaubamärgivaidluse tõttu lennukitootmisettevõttega Hawker Siddeley lühendati see SQL-iks.
  • Ametlik ISO standard hääldab seda üksikute tähtedena 'S-Q-L', kuid miljonid arendajad hääldavad seda kõnekeeles kui 'seekvel'.
  • SQLite, mis töötab SQL-süntaksil, on hinnanguliselt installitud üle 1 triljonile seadmele kogu maailmas.

Korduma kippuvad tehnilised küsimused

Mis on .sql-fail?

.sql-fail on lihttekstiskript, mis sisaldab SQL-käske, mis loovad tabeleid, loovad seoseid ja sisestavad andmeridu relatsioonilisse andmebaasi.

Kas ma saan SQL-i tõmmefailid (dump) CSV-ks või JSON-iks konverteerida?

Jah. File2File.app suudab parsida .sql andmebaasi tõmmefaile ja eksportida tabelid otse puhtatesse CSV-tabelitesse või struktureeritud JSON-dokumentidesse.

Miks minu MySQL-i .sql-fail PostgreSQL-is ei tööta?

Erinevatel andmebaasisüsteemidel on omapärased dialektide erinevused (nagu andmetüübid ja jutumärkide põgenemine). Andmebaasimootorite vahel migreerimisel peate dialektispetsiifilist süntaksit transkodeerima.