SQL Dökümü (.sql)

ISO/IEC Standart

SQL betiği, CREATE TABLE, INSERT ve SELECT gibi veritabanı ifadelerinden oluşan bir metin dosyasıdır. SQL lehçeleri farklılık gösterir; çalıştırmadan önce hedef veritabanının betik söz dizimini desteklediğini kontrol edin.

SQLITE biçimini SQL biçimine dönüştür

Tarayıcında SQLITE biçimini SQL biçimine ücretsiz dönüştür. Dosyaları cihazında anında dönüştür.

İncele ve Meta Veriler

İşletim sistemleri ve dosya çözümleyicileri, SQL dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

Dosyaları buraya seç veya bırak

Özel - dosyalar cihazınızdan asla ayrılmaz

veya yapıştır Ctrl+V
Sıfır Ağ Aktarımı Gizlilik Garantisi: Harici sunuculara 0 bayt yüklendi. Tüm işlemler tarayıcındaki korumalı alanda (sandbox) yerel olarak gerçekleştirildi.

Bayt düzeyinde başlık imzası (sihirli baytlar)

İşletim sistemleri ve dosya çözümleyicileri, SQL dosyalarını başlangıçtaki ikili sihirli bayt dizisini inceleyerek tanımlar:

HEX İMZASI (OFSET 0):

Sabit imza yok (SQL düz metindir)

ASCII GÖSTERİMİ: Sabit imza yok

Standartlaştırma: ISO/IEC 9075:2023 / ANSI SQL Standard

Teknik Özellikler

Kapsayıcı mimarisiData Definition Language (DDL) ve Data Manipulation Language (DML) ifadeleri içeren Unicode düz metin betiği
SıkıştırmaSıkıştırılmamış düz metin (sıklıkla .sql.gz veya .sql.zst olarak sıkıştırılır)
Bayt Düzeni (Endianness)UTF-8 / Unicode metin akışı
Renk UzaylarıN/A (Database Script)
Kanallar ve Yapıİlişkisel şema tanımları (tablolar, görünümler, dizinler, yabancı anahtarlar) ve veri INSERT satırları
Maksimum BoyutlarSınırsız metin uzunluğu (çok terabaytlı veritabanı dökümlerini destekler)
ŞeffaflıkNone
Akış ve Aşamalı İşlemeİfadelerin işlem tabanlı ve sıralı akış yürütmesi

Teknik karşılaştırma matrisi: SQL ve rakipleri

Teknik NitelikSQL (Güncel)CSVJSONSQLITE
Şema KorunmasıTam şema (tablolar, türler, yabancı anahtarlar)Yalnızca başlık sütun adlarıKendi kendini açıklayan belge yapısıTam ikili veritabanı dosyası
Yürütme ModeliÇalıştırılabilir DDL/DML betiğiPasif satır-sütun verileriPasif belge ağacıDoğrudan ikili B-tree sorgusu
StandardizasyonISO/IEC 9075 StandardıRFC 4180RFC 8259SQLite açık dosya formatı
Veri İlişkileriTam yabancı anahtar kısıtlamalarıDüz tablo (ilişki yok)İç içe geçmiş ebeveyn-çocuk nesneleriTam ilişkisel kısıtlamalar

Yaygın Bozulma Modları ve Hex Kurtarma Kılavuzu

Veritabanı içe aktarımı 'ERROR: syntax error at or near...' hatasıyla başarısız oluyor.

Kök Neden: SQL diyalekt uyumsuzluğu (örn. bir MySQL ters tırnak dökümünü PostgreSQL'e içe aktarmak) veya kaçış karakteri kullanılmamış tek tırnaklar.

Kurtarma: File2File.app Database Transpiler'ı kullanarak lehçeye özgü sözdizimini dönüştürüp temizle.

Güvenlik Analizi ve Ayrıştırıcı Saldırı Vektörleri

Güvenilmeyen SQL betiklerinin çalıştırılması felaket niteliğinde SQL enjeksiyonuna, isteğe bağlı dosya yazmalarına veya idari ayrıcalık yükseltmelerine neden olabilir.

Bilinen Saldırı Vektörleri

  • İstenmeyen idari komutları çalıştıran SQL Enjeksiyonu (SQLi) (örn. DROP TABLE, GRANT ALL).
  • 'COPY ... FROM PROGRAM' veya 'LOAD DATA INFILE' aracılığıyla isteğe bağlı sunucu dosyası okuma/yazma.
  • Dizinlenmemiş özyinelemeli ortak tablo ifadeleri (CTE) aracılığıyla hizmet reddi (DoS).

Savunmaya yönelik en iyi uygulamalar: Güvenilmeyen SQL betiklerini üretim veritabanı sunucularında asla doğrudan çalıştırmayın; sorguları yalıtılmış korumalı alanlarda inceleyip temizleyin.

Tarihsel kökenler ve önemli dönüm noktaları

2023Standart SQL'e özellik grafiği sorgularını (SQL/PGQ) entegre eden ISO/IEC 9075:2023 yayınlandı.
1986ANSI ve ISO, SQL'i ilişkisel veritabanı yönetim sistemleri için resmi standart olarak benimser.
1974Donald Chamberlin ve Raymond Boyce, Edgar F. Codd'un ilişkisel modeline dayanarak IBM Research'te SEQUEL'i geliştirir.

Temel Avantajlar ve Artılar

  • SQL betikleri tablolar tanımlayabilir, satır ekleyebilir ve ilişkisel veritabanlarını sorgulayabilir. Veri türleri, identity sütunları ve tarih işlevleri gibi söz dizimi SQLite, MySQL, PostgreSQL ve SQL Server arasında değişir.
  • Tam ilişkisel sadakat: tabloları, birincil anahtarları, yabancı anahtarları, kısıtlamaları ve dizinleri verilerle birlikte yeniden oluşturur.
  • İşlemsel yürütme: veritabanının atomik olarak geri yüklenmesini garanti etmek için ifadeler işlemler içinde (BEGIN...COMMIT) çalıştırılabilir.

Teknik Kısıtlamalar ve Eksiler

  • Diyalekt uyumsuzlukları: ince sözdizimi farklılıkları (örn. AUTO_INCREMENT vs. SERIAL vs. AUTOINCREMENT), veritabanı motorları arasında dönüştürme gerektirir.
  • Devasa metin yükü: düz SQL INSERT ifadeleri, ikili veritabanı depolamasına kıyasla önemli ölçüde daha fazla alan kaplar.
  • Dizinleri yeniden oluşturma işlemi devre dışı bırakılmadığında, çok gigabaytlık dökümlerin içe aktarılması yavaşlar.

İlginç Teknik Bilgiler

  • SQL'in adı başlangıçta 'SEQUEL' (Structured English Query Language) idi, ancak Hawker Siddeley uçak şirketiyle yaşanan bir marka anlaşmazlığı nedeniyle SQL olarak kısaltıldı.
  • Resmi ISO standardı onu 'S-Q-L' harfleri olarak telaffuz eder, ancak milyonlarca geliştirici konuşma dilinde 'sequel' (sikıl) olarak telaffuz eder.
  • SQL sözdizimi üzerinde çalışan SQLite'ın dünya çapında 1 trilyondan fazla cihazda kurulu olduğu tahmin edilmektedir.

Sıkça Sorulan Teknik Sorular

.sql dosyası nedir?

.sql dosyası; tablolar oluşturan, ilişkiler kuran ve ilişkisel bir veritabanına veri satırları ekleyen SQL komutlarını içeren düz metin (plaintext) bir betiktir.

SQL döküm (dump) dosyalarını CSV veya JSON formatına dönüştürebilir miyim?

Evet. File2File.app, .sql veritabanı döküm dosyalarını çözümleyebilir ve tabloları doğrudan temiz CSV e-tablolarına veya yapılandırılmış JSON belgelerine aktarabilir.

MySQL .sql dosyam neden PostgreSQL'de çalışmıyor?

Farklı veritabanı sistemlerinde veri türleri ve tırnak kaçışları gibi kendine özgü sözdizimi farklılıkları bulunur. Veritabanı motorları arasında geçerken lehçeye özgü sözdizimini dönüştürmen gerekir.