logo
GeekFormat

SQL Dönüştürücü

GeekFormat çevrimiçi SQL dönüştürücü, SQL INSERT deyimlerini ve CREATE TABLE betiklerini tek tıkla JSON, CSV, TSV, XML, YAML, HTML tabloları, Markdown tabloları, JSON Lines ve diğer formatlara dönüştürür. Birden çok INSERT deyimi, çok değerli demet toplu ayrıştırma, sayılar, dizeler, NULL, boolean değerler ve onaltılık literallerin otomatik tanınması, MySQL, PostgreSQL, SQLite, SQL Server dialektlerinde alıntı stilleri uyumluluğu, birden çok tablonun verileri ayrı ayrı veya birleştirilerek çıktılanabilir. INSERT deyimlerini dialect değiştirerek ters yönde yeniden oluşturma da mümkündür. İşleme tamamen tarayıcıda yerel olarak yapılır, tüm veriler cihazda kalır.

İlgili Öneriler

SQL dönüştürme hakkında: SQL betiklerini JSON/CSV/XML ve diğer formatlara dönüştürme

SQL dönüştürme (SQL Conversion), SQL betiğindeki verileri çıkarıp JSON, CSV, XML, YAML, HTML, Markdown gibi diğer veri formatlarına yeniden düzenleme sürecidir. SQL (Structured Query Language, Yapılandırılmış Sorgu Dili) ilişkisel veritabanları için standart sorgu dilidir, veritabanı dışa aktarma araçları (mysqldump, pg_dump gibi) genellikle verileri SQL betiğinde INSERT deyimleri şeklinde dışa aktarır, bu format veritabanına içe aktarım için uygun olsa da programlar tarafından okunma, veri analizi veya sistemler arası değişim için uygun değildir, bu nedenle daha evrensel formatlara dönüştürme gerekir.

Yaygın SQL veri dışa aktarma betikleri iki tür deyim içerir: CREATE TABLE tablo yapısını tanımlamak için (sütun adları, veri türleri, kısıtlamalar) ve INSERT INTO ... VALUES (...) belirli verileri eklemek için kullanılır. Bu araç her iki tür deyimi ayrıştırır, CREATE TABLE'dan sütun tanımlarını ve tür bilgilerini, INSERT'ten gerçek veri satırlarını çıkarır, ardından kullanıcı tarafından seçilen formatta çıktıyı yeniden düzenler. Tüm ayrıştırma süreci tarayıcıda yerel olarak yapılır, herhangi bir backend hizmetine bağlı değildir.

SQL neden diğer formatlara dönüştürülmeli? SQL betikleri evrenseldir, ancak aşağıdaki senaryolarda kullanışsızdır: birincisi, frontend programları için JSON okumak SQL ayrıştırmaktan çok daha kolaydır, SQL ayrıştırıcı eklemeye gerek yoktur; ikincisi, Excel, Google Sheets gibi tablo yazılımları doğal olarak SQL değil CSV destekler; üçüncüsü, yapılandırma dosyası ve dokümantasyon senaryolarında YAML, Markdown SQL'den daha okunabilirdir; dördüncüsü, sistemler arası veri değişimi için genellikle XML veya JSON nötr formatlar olarak kullanılır. SQL bu evrensel formatlara dönüştürüldükten sonra veriler daha fazla araç ve dil tarafından doğrudan tüketilebilir.

Bu aracın SQL ayrıştırıcısı elle yazılmıştır ve INSERT ve CREATE TABLE deyimlerini ayrıştırmaya odaklanmıştır. INSERT için hem tek değerli demetler (INSERT INTO t (a,b) VALUES (1,2)) hem de çok değerli demetler (INSERT INTO t (a,b) VALUES (1,2), (3,4), (5,6)) desteklenir, veriler sütun adlarına göre otomatik eşleştirilir. CREATE TABLE için sütun tanımları, veri türleri (parantez içi uzunlukla VARCHAR(255), INT, DECIMAL(10,2) vb.), NOT NULL, PRIMARY KEY, IF NOT EXISTS kısıtlamaları ve yan cümleciklerin ayrıştırılması desteklenir, hatalı bölmeyi önlemek için iç içe parantezler doğru işlenir.

Tür tanıma, SQL dönüştürmenin kilit bir yönüdür. Araç, değerin literal formuna göre türü otomatik belirler: tek veya çift tırnakla çevrelenen değerler dizelerdir; NULL (büyük/küçük harf duyarsız) boş değerdir; TRUE/FALSE boolean değerlerdir; 0x..., X'...', B'...' onaltılık literallerdir; saf sayılar (eksi işareti, ondalık nokta, bilimsel gösterimle) sayılardır. Bu otomatik tür tanıma, dönüştürülen JSON, CSV vb. formatların orijinal verilerin semantiğini korumasını sağlar (örn. 1 sayısı "1" dizesi olmaz), bu da downstream programların doğru işlemesini kolaylaştırır.

Veritabanı dialect'leri arasındaki alıntı stili farklılıkları, SQL ayrıştırmasında yaygın bir tuzaktır. MySQL varsayılan olarak tanımlayıcıları (tablo adları, sütun adları) çevrelemek için ters tik (`) kullanır, PostgreSQL çift tırnak (") kullanır, SQL Server/T-SQL köşeli parantez ([]) kullanır, standart SQL de çift tırnak kullanır. Bu aracın unquoteIdentifier fonksiyonu bu alıntıları otomatik tanır ve kaldırır, aynı zamanda alıntı içindeki kaçışları işler (örn. `` → `, "" → "). SQL yeniden oluşturma modunda INSERT deyimleri hedef dialect için ilgili alıntı stiliyle yeniden oluşturulur.

SQL dize kaçışı başka bir kilit teknik detaydır. SQL standardı, dize içindeki tek tırnağın ikiye katlanarak kaçışını tanımlar ('It''s' It's anlamına gelir), MySQL varsayılan olarak ters eğik çizgi kaçışını da destekler (\n, \t, \', \", \\\\, \0, \Z vb.). Bu aracın dize ayrıştırıcısı her iki kaçış mekanizmasını aynı anda işler, orijinal dize içeriğini doğru şekilde geri yükler. CSV'ye dönüştürme sırasında virgül, alıntı, satır sonu içeren alanlar RFC 4180 standardına göre yeniden kaçışlanır; XML/HTML'ye dönüştürme sırasında &, <, >, ", ' gibi özel karakterler kaçışlanır.

Tamamen frontend işleme bu aracın temel tasarım ilkesidir. Tüm SQL ayrıştırma ve veri dönüştürme tarayıcının JavaScript motorunda yürütülür, hiçbir veri sunucuya gönderilmez. Bu, SQL betiği kullanıcı gizliliği, ticari olarak hassas bilgiler veya iç veritabanı yapısı içerse bile dışarı sızmaması anlamına gelir. Bu tasarım özellikle üretim veritabanlarının dışa aktarımını işlemek için uygundur, veri uyumluluğu endişesi yoktur. Aynı zamanda frontend işlemede ağ gecikmesi yoktur, dönüştürme hızı yalnızca cihazın CPU ve belleğiyle sınırlıdır.

Geleneksel komut satırı SQL dönüştürme araçlarına (sql2csv, sqlparser gibi) kıyasla bu aracın birkaç avantajı vardır: ortam kurulumu ve yapılandırması gerektirmez, web sayfasını açın ve kullanın; dönüştürme sonucunun gerçek zamanlı önizlemesi için görsel arayüz sağlar; tek tıkla birden çok çıktı formatı geçişi destekler; yerleşik örnek veriler ve yardım dokümantasyonu; her yerde kullanım için mobil uyumlu tasarım. Ancak araç veri çıkarmaya odaklanır ve karmaşık SQL dialect farklılıklarını (örn. PostgreSQL JSONB operatörleri, MySQL ON DUPLICATE KEY UPDATE) ve gelişmiş özellikleri (saklı yordamlar, fonksiyonlar, tetikleyiciler) işlemez; bu tür ihtiyaçlar için yerel veritabanı araçları veya özel ETL platformları kullanılması önerilir.

SQL dönüştürme aracı kullanılırken dikkat edilmesi gereken birkaç en iyi uygulama vardır: birincisi, dönüştürmeden önce SQL betiğinin tam veriler (INSERT deyimleri) içerip içermediğini kontrol edin, yalnızca sorgular (SELECT) değil, SELECT ayrıştırılmaz; ikincisi, birden çok tablolu SQL betikleri için tablo yapısı bilgilerini korumak üzere «Çoklu tabloları ayrı çıktıla» seçeneğini etkinleştirmek önerilir; üçüncüsü, Çince karakter içeren SQL işlenirken, Excel'in kodlamayı doğru tanımasını sağlamak için CSV çıktısı için «BOM dahil et» seçeneğini etkinleştirmek önerilir; dördüncüsü, büyük SQL dump işlenirken çıktı boyutunu azaltmak için «güzel çıktı»yı kapatmak önerilir; beşincisi, çapraz veritabanı migrasyonunda dialect değiştirmek için «SQL yeniden oluşturma» modu kullanılabilir, ancak karmaşık türler (örn. PostgreSQL dizileri, JSONB) manuel ayarlama gerektirebilir.

Kullanım senaryoları

  • mysqldump veya pg_dump tarafından dışa aktarılan SQL betiklerini JSON'a dönüştürme, API veri içe aktarımı veya frontend veri tüketimi için
  • Veritabanı INSERT deyimlerini CSV dosyalarına dönüştürme, Excel/WPS/Google Sheets'e veri analizi veya rapor oluşturma için içe aktarma
  • SQL yedekleme betiklerinden veri çıkarıp XML'e dönüştürme, sistemler arası veri değişimi veya SOAP arayüz entegrasyonu için
  • SQL verisini YAML yapılandırma formatına dönüştürme, Ansible, Docker Compose, Kubernetes ve diğer yapılandırma senaryoları için
  • SQL sorgu sonuçlarını (INSERT olarak dışa aktarılan) HTML tablolarına dönüştürme, web sayfalarına doğrudan gömme için
  • SQL verisini Markdown tablolarına dönüştürme, README, dokümantasyon siteleri, teknik bloglara örnek verileri görüntülemek için yapıştırma
  • Tam CREATE TABLE + INSERT betiklerinden veri çıkarıp JSON Lines'a dönüştürme, Elasticsearch toplu indeksleme için
  • Veritabanı migrasyonu sırasında MySQL INSERT betiklerini PostgreSQL dialect'inde INSERT deyimleri olarak yeniden oluşturma, çapraz veritabanı veri içe aktarımını kolaylaştırır
  • Test verisi yönetimi: test SQL tohum verilerini JSON yapılandırmalarına dönüştürme, program tarafından okumayı ve sürüm yönetimini kolaylaştırır
  • Eğitim demonstrasyonu: SQL deyimlerini karşılaştırmak için çeşitli formatlara dönüştürme, öğrencilerin farklı veri temsilleri arasındaki farkları anlamasına yardımcı olur
  • ETL ön işleme: upstream SQL dump'ı downstream ETL boru hattının girdisi olarak yapılandırılmış JSON/CSV'ye dönüştürme
  • Veri analizi: SQL dışa aktarımından önemli verileri çıkarıp CSV'ye dönüştürme, pandas, R ve diğer araçlarla istatistiksel analiz
  • Müşteri teslimatı: veritabanı dışa aktarımını daha evrensel JSON veya CSV formatına dönüştürme, teknik olmayan personelin görüntülemesi için teslim etme
  • Veri arşivleme: tarihsel veritabanlarının INSERT betiklerini daha okunabilir YAML veya Markdown'a dönüştürme ve arşivleme

Nasıl Kullanılır

  1. SQL betiğini sol giriş kutusuna yapıştırın veya .sql/.txt dosyası seçmek için «SQL Yükle» düğmesine tıklayın
  2. Yerleşik SQL örneğini yüklemek için «Örnek» düğmesine tıklayın (CREATE TABLE ve çoklu tablo INSERT içerir)
  3. Sağ çıktı panelinin üst kısmındaki format açılır menüsünden hedef formatı seçin (JSON, CSV, XML, YAML vb., toplam 9 format)
  4. Dönüştürme seçeneklerini ayarlamak için «Ayarlar» düğmesine tıklayın: güzel çıktı, BOM dahil et, çoklu tabloları ayrı çıktıla, CSV ayırıcı, JSON kök anahtar adı, SQL dialect vb.
  5. Dönüştürmeyi yürütmek için «Dönüştür» düğmesine tıklayın, sonuç sağ panelde otomatik görüntülenir, alt durum çubuğu tablo sayısı, satır sayısı, INSERT sayısı vb. istatistikleri gösterir
  6. Dönüştürme sonucunu panoya kopyalamak için «Kopyala», sonucu ilgili formatta dosya olarak kaydetmek için «İndir» (örn. result.json, result.csv) düğmesine tıklayın
  7. Çıktı formatını değiştirmek otomatik olarak yeniden dönüştürür, dönüştürme düğmesine tekrar tıklamaya gerek yoktur

Özellikler

  • Dokuz çıktı formatı: JSON, JSON Lines, CSV, TSV, XML, YAML, HTML tabloları, Markdown tabloları, SQL yeniden oluşturma — tek tıkla format değiştirme ve otomatik yeniden dönüştürme
  • INSERT deyimi ayrıştırma: INSERT INTO ... VALUES (...) sözdiziminin otomatik tanınması, tek ve çok değerli demet toplu ekleme desteği (tek INSERT ile birden çok veri satırı)
  • CREATE TABLE tanıma: CREATE TABLE deyimlerini sütun tanımlarını, veri türlerini, NOT NULL, PRIMARY KEY ve diğer kısıtlamaları çıkarmak için ayrıştırır, alan türlerini çıkarsamak için kullanılabilir
  • Çoklu tablo veri işleme: betikte birden çok tablo olduğunda, tablo başına ayrı çıktı (tablo adı ayırıcı işaretleriyle) veya birleştirilmiş dışa aktarma, sütunların ve satırların otomatik toplanması
  • Otomatik tür tanıma: sayılar (tam/kayan noktalı), dizeler, NULL, boolean değerler (TRUE/FALSE), onaltılık literallerin (0x..., X'...', B'...') akıllı algılanması, orijinal tür semantiğinin korunması
  • Çoklu dialect alıntı uyumluluğu: MySQL ters tik (`), PostgreSQL çift tırnak ("), SQL Server köşeli parantez ([]) ve standart alıntıların tanınması, tanımlayıcı alıntılarının otomatik kaldırılması
  • SQL dize kaçışı: standart SQL kaçışını ('' → ') ve MySQL ters eğik çizgi kaçışını (\n, \r, \t, \0, \', \") işleme, özel karakterli dizelerin doğru şekilde geri yüklenmesi
  • SQL dialect yeniden oluşturma: MySQL, PostgreSQL, SQLite veya standart SQL dialect'inde INSERT deyimlerini yeniden oluşturma, özel tablo adları ve isteğe bağlı CREATE TABLE oluşturma desteği
  • Esnek CSV yapılandırması: ayraç seçimi (virgül/noktalı virgül/Tab/dik çizgi), isteğe bağlı UTF-8 BOM başlığı (Excel uyumluluğu), girinti güzelleştirme seçeneği, RFC 4180 standardına uygunluk
  • Çoklu JSON yapıları: tabloya göre gruplandırma (tables kök anahtarı), saf veri (data kök anahtarı) veya saf dizi (kök anahtar yok) seçeneği, farklı tüketim senaryolarına uygun
  • Gerçek zamanlı istatistik görüntüleme: dönüştürmeden sonra tablo sayısı, toplam satır sayısı, INSERT deyimi sayısı, çıktı karakter sayısı gerçek zamanlı görüntülenir, sonuç bütünlüğünün kontrolünü kolaylaştırır
  • Dosya yükleme ve indirme: .sql/.txt/.csv/.tsv/.json dosyalarının doğrudan ayrıştırma için yüklenmesi desteklenir, dönüştürme sonucu ilgili formatta dosya olarak indirilebilir (örn. .json, .csv, .yaml)
  • Geçmiş yönetimi: soldaki yerleşik geçmiş paneli son dönüştürülen SQL girdilerini otomatik kaydeder, önceki betikleri hızlıca yeniden yüklemeyi sağlar
  • Mobil uyumlu tasarım: telefonda otomatik olarak giriş/sonuç Sekmesi düzenine geçiş, masaüstünde sürüklenebilir çift panel ayırıcı, tüm etkileşimler mobilde de kullanılabilir
  • Tamamen tarayıcıda yerel işleme: tüm ayrıştırma ve dönüştürme tarayıcı JavaScript'inde yapılır, sunucu isteği yok, SQL verileri cihazdan ayrılmaz, hassas bilgi içeren veritabanı dışa aktarımlarını işlemek için uygun

Sık Sorulan Sorular

SQL hangi formatlara dönüştürülebilir?

Araç dokuz çıktı formatını destekler: JSON (yapılandırılmış dizi), JSON Lines (satır başına bir JSON nesnesi), CSV (virgülle ayrılmış), TSV (Tab ile ayrılmış), XML (etiketli standart XML belgesi), YAML (yapılandırma formatı), HTML tabloları (doğrudan tarayıcıda görüntülenecek stillerle), Markdown tabloları (dokümantasyon sözdizimi), SQL yeniden oluşturma (INSERT deyimlerini dialect değişikliğiyle yeniden oluşturma). Sağdaki format açılır menüsünde tek tıkla değiştirme otomatik olarak yeniden dönüştürür.

Ayrıştırma için hangi SQL deyimleri desteklenir?

Verileri çıkarmak için INSERT INTO ... VALUES (...) deyimleri ayrıştırılır, ayrıca sütun tanımlarını ve tür bilgilerini almak için CREATE TABLE deyimleri tanınır. Tek INSERT, çok değerli demet INSERT (tek INSERT ile birden çok veri satırı), birden çok INSERT deyimi, birden çok tablo için INSERT deyimleri desteklenir. Yorumlar (-- tek satır, /* */ çok satırlı, # MySQL tek satır) otomatik olarak kaldırılır ve ayrıştırmayı etkilemez.

Hangi veritabanı dialect'leri desteklenir?

Ayrıştırma sırasında MySQL (ters tik `), PostgreSQL (çift tırnak "), SQL Server (köşeli parantez []) ve standart SQL tanımlayıcı alıntı stilleriyle uyumludur, orijinal sütun ve tablo adlarını geri yüklemek için alıntılar otomatik kaldırılır. SQL yeniden oluşturma modunda INSERT'i yeniden oluşturmak için MySQL, PostgreSQL, SQLite veya standart SQL dialect'i seçilebilir, alıntılar ve boolean değer temsili farklı dialectlerde farklılık gösterir.

SQL betiğinde birden çok tablo nasıl işlenir?

Araç INSERT verilerini tablo adına göre otomatik toplar. Ayarlarda «Çoklu tabloları ayrı çıktıla» seçeneği etkinleştirildiğinde, CSV/HTML/Markdown gibi tablo formatları tabloya göre bölümler halinde çıktılanır (tablo adı işaretleriyle), JSON/XML gibi yapılandırılmış formatlar tablo adına göre gruplandırılır. Bu seçenek devre dışı bırakıldığında CSV yalnızca ilk tablonun verilerini çıktılar, JSON «kök anahtar yok» seçilirse saf dizi olarak çıktılanabilir.

SQL'de NULL, boolean değerler ve özel karakterler nasıl işlenir?

Araç NULL (büyük/küçük harf duyarsız), boolean değerler TRUE/FALSE, onaltılık literalleri (0x..., X'...', B'...), tam ve kayan noktalı sayıları otomatik tanır. Dizeler otomatik olarak standart SQL kaçışı ('' → ') ve MySQL ters eğik çizgi kaçışı (\n, \t, \' vb.) ile işlenir, satır sonları, alıntılar, özel karakterler içeren orijinal içerik doğru şekilde geri yüklenir. CSV çıktısında RFC 4180 standardına göre virgül, alıntı, satır sonu içeren alanlar alıntılarla kaçışlanır.

Dönüştürülen JSON nasıl bir yapıya sahiptir?

JSON çıktısı üç yapıyı destekler: «tables kök anahtarı» (tablo adlarına göre gruplandırma, çoklu tablo senaryoları için önerilir), «data kök anahtarı» (tekdüze paketleme), «kök anahtar yok» (saf dizi, tek tablo veya akış işleme için uygun). Örneğin tek users tablosu [{"id":1,"name":"Alice"},...] dizisine dönüştürülür, birden çok tablo tablo adlarına göre {"users":[...],"orders":[...]} olarak gruplandırılır. Ayarlardan seçim yapılabilir.

Yüklenen SQL dosyaları sunucuya kaydedilir mi?

Hayır. Bu tamamen frontend uygulamasıdır, tüm ayrıştırma ve dönüştürme tarayıcı JavaScript'inde yerel olarak yapılır, SQL içeriği veya dönüştürme sonuçları hiçbir sunucuya gönderilmez. Yüklenen dosyalar FileReader aracılığıyla doğrudan tarayıcıda okunur, sayfa kapatıldıktan sonra veriler otomatik temizlenir. Kullanıcı gizliliği veya ticari olarak hassas bilgiler içeren veritabanı dışa aktarımlarını işlemek için uygundur.

SQL Server'ın köşeli parantez tanımlayıcıları desteklenir mi?

Evet. Araç SQL Server/T-SQL stilindeki köşeli parantez tanımlayıcılarını (örn. [users], [order details]) tanır ve köşeli parantezleri otomatik kaldırarak orijinal adları geri yükler. MySQL ters tik ve PostgreSQL çift tırnak da desteklenir. SQL yeniden oluşturma modunda farklı dialect'lerin seçilmesi, INSERT'i yeniden oluşturmak için ilgili alıntı stilini kullanır.

SQL betiğim dönüştürüldükten sonra neden veri yok?

SQL'in INSERT INTO ... VALUES (...) deyimleri içerip içermediğini kontrol edin. Araç verileri çıkarmak için yalnızca INSERT deyimlerini ayrıştırır, SELECT sorguları çıktı üretmez. Yalnızca CREATE TABLE deyimleri varsa, «Yalnızca CREATE TABLE algılandı, dönüştürülecek veri satırı yok» uyarısı görüntülenir. SQL betiğinin bir sorgu değil, veri dışa aktarımı (dump) olduğundan emin olun.

Saklı yordamlar, fonksiyonlar ve tetikleyiciler desteklenir mi?

Hayır. Araç veri çıkarmaya odaklanır ve yalnızca INSERT ve CREATE TABLE deyimlerini ayrıştırır. Saklı yordamlar (CREATE PROCEDURE), fonksiyonlar (CREATE FUNCTION), tetikleyiciler (CREATE TRIGGER), görünümler (CREATE VIEW) ve diğer veritabanı nesne tanımları ayrıştırılmaz. Bu nesnelerin migrasyonu için pg_dump, mysqldump gibi yerel veritabanı araçları kullanılması önerilir.

CSV dosyasındaki Çince karakterler Excel'de doğru açılıyor mu?

Evet. Ayarlarda «BOM dahil et» seçeneği etkinleştirildiğinde, CSV dosyası UTF-8 BOM başlığı (\uFEFF) içerir ve Excel kodlamayı doğru tanır, Çince ve diğer ASCII olmayan karakterleri görüntüler. BOM olmadan bazı Excel sürümleri UTF-8 Çince karakterleri bozuk görüntüleyebilir. Google Sheets, WPS gibi modern tablo yazılımları genellikle BOM olmadan da kodlamayı doğru tanır.

SQL betikten INSERT deyimleri ters yönde yeniden oluşturulabilir mi?

Evet. INSERT deyimlerini yeniden oluşturmak için «SQL yeniden oluşturma» çıktı formatını seçin. Hedef dialect (MySQL/PostgreSQL/SQLite/standart SQL), özel tablo adı, isteğe bağlı CREATE TABLE deyimi oluşturma (veriye dayalı olarak sütun türlerini INT/BIGINT/FLOAT/VARCHAR/TEXT/BOOLEAN otomatik çıkarsama) desteklenir. Bu, MySQL betiklerini PostgreSQL dialect'inde yeniden oluşturmak veya tablo adı değiştirildikten sonra veritabanına yeniden içe aktarmak için uygundur.

JSON Lines ve JSON arasındaki fark nedir? JSON Lines ne zaman kullanılır?

JSON çıktısı tam bir JSON dizisidir ([{...},{...}]), belleğe tek seferde yüklenen programlar için uygundur. JSON Lines (NDJSON olarak da bilinir) satır başına bir bağımsız JSON nesnesidir, akış işleme, büyük veri içe aktarma, Elasticsearch bulk API, günlük analizi vb. için uygundur, çok bellek kullanmadan satır satır okunabilir. Araç her iki format arasında serbest geçiş yapılmasını destekler.

Dönüştürme sonucunda orijinal sütun sırası korunur mu?

Evet. Araç sütun adlarını INSERT deyiminde belirtilen sırada korur. INSERT açıkça sütun adları belirtmezse (örn. INSERT INTO t VALUES (...)), ilk satırdaki değer sayısına göre col_1, col_2 vb. yer tutucu sütun adları oluşturulur. Birden çok tablonun her birinin sütun sırası bağımsız olarak korunur, birleştirilmiş dışa aktarımda tabloya göre ayrı ayrı görüntülenir.

Araç ne kadar büyük SQL dosyalarını destekler?

Teorik olarak katı bir üst sınır yoktur, tarayıcı belleğiyle sınırlıdır. Genellikle onlarca MB'lık SQL dump dosyaları akıcı şekilde işlenir, çok büyük dosyalar (yüzlerce MB) tarayıcı belleği yetersizliğinden yavaşlayabilir. Çok büyük dosyaları toplu dönüştürme için birden çok küçük dosyaya bölmek veya bellek kullanımını azaltmak için «güzel çıktı»yı kapatmak önerilir. Tüm ayrıştırma tarayıcıda yerel olarak yapılır, ağ aktarımı kısıtlaması yoktur.

Sorun Giderme

Dönüştürmeden sonra çıktı verisi yok mu?

Neden 1: SQL betiği yalnızca SELECT sorguları içeriyor, bu araç verileri çıkarmak için yalnızca INSERT deyimlerini ayrıştırır, sorguları yürütmez. Çözüm: verileri INSERT deyimleri olarak dışa aktarmak için mysqldump/pg_dump kullanın. Neden 2: SQL betiği yalnızca CREATE TABLE içeriyor, veri satırı yok, uyarı görüntülenir. Neden 3: INSERT deyimi sözdizimi düzgün değil (örn. VALUES anahtar sözcüğü eksik), SQL sözdizimi doğruluğunu kontrol edin. Neden 4: SQL'deki tüm içerik yorumlanmış (-- veya /* */), yanlışlıkla eklenen yorum işaretleri olup olmadığını kontrol edin.

Excel'de CSV'deki Çince karakterler bozuk mu görünüyor?

Excel varsayılan olarak CSV'yi GBK kodlaması olarak tanır, UTF-8'deki Çince karakterler bozuk görüntülenir. Çözüm: «Ayarlar»da «BOM dahil et» seçeneğini etkinleştirin, CSV çıktı dosyası UTF-8 BOM başlığı (\uFEFF) içerecek ve Excel UTF-8 kodlamasını doğru tanıyacaktır. BOM'suz CSV zaten dışa aktarıldıysa, Not Defteri'nde «BOM ile UTF-8» olarak kaydedip Excel'de açabilir veya Google Sheets, WPS gibi modern tablo yazılımlarını kullanabilirsiniz.

JSON'daki sayılar dize mi oldu?

Neden: SQL'deki sayılar tırnak içine alınmış (örn. 123 yerine '123'), araç bunları dize olarak ayrıştırır. Çözüm: SQL betikte sayıların tırnak içine alınıp alınmadığını kontrol edin, tırnakları kaldırın. Orijinal veri böyleyse (örn. ZIP kodları genellikle dize olarak saklanır), bu beklenen davranıştır, çünkü dize semantiğini korumak baştaki sıfırların kaybını önler (örn. 01234, 1234 olarak ayrıştırılmaz).

Özel karakterli dize dönüştürme hatası mı?

Neden: SQL dizesindeki özel karakterler (satır sonları, alıntılar, ters eğik çizgi) doğru kaçışlanmamış. Bu araç standart SQL kaçışını ('' → ') ve MySQL ters eğik çizgi kaçışını (\n, \' vb.) destekler, ancak orijinal SQL standart dışı kaçış kullanıyorsa (örn. PostgreSQL E'...' dizeleri), doğru geri yüklenemeyebilir. Çözüm: SQL kaçışının standarda uygun olup olmadığını kontrol edin, gerekirse dönüştürmeden önce metin düzenleyicide manuel olarak ayarlayın.

Çoklu tablo SQL dönüştürüldükten sonra yalnızca ilk tablo mu görünüyor?

Neden: «Çoklu tabloları ayrı çıktıla» seçeneği etkin değil, CSV/HTML/Markdown gibi tablo formatları varsayılan olarak yalnızca ilk tabloyu çıktılar. Çözüm: «Ayarlar»da «Çoklu tabloları ayrı çıktıla» seçeneğini etkinleştirin, CSV tabloya göre bölümler halinde çıktılanır (# Table: tablo adı işaretiyle), JSON tablo adlarına göre gruplandırılır ({tablo_adı1:[...],tablo_adı2:[...]}). Not: JSON Lines formatı tabloları ayırt etmez, tüm satırlar çıktıda birleştirilir.

SQL yeniden oluşturmadan sonra tablo veya sütun adı alıntıları yanlış mı?

Neden: yeniden oluşturmada yanlış dialect seçildi, farklı dialect'ler farklı alıntı stilleri kullanır (MySQL ters tik, PostgreSQL çift tırnak, SQL Server köşeli parantez). Çözüm: «Ayarlar»da hedef SQL dialect'i seçin, araç ilgili alıntı stiliyle INSERT'i yeniden oluşturur. Örneğin PostgreSQL seçildiğinde tablo adı "users", MySQL seçildiğinde `users` olur.

Sözlük

SQL (Structured Query Language)
Yapılandırılmış Sorgu Dili, ilişkisel veritabanları (MySQL, PostgreSQL, Oracle, SQL Server, SQLite) için standart sorgu ve manipülasyon dili, DDL (veri tanımlama), DML (veri manipülasyonu), DQL (veri sorgulama), DCL (veri kontrolü) alt dillerini içerir.
INSERT deyimi
SQL'de tabloya veri eklemek için kullanılan deyim, sözdizimi INSERT INTO table (cols) VALUES (vals), tek ve çok değerli demet toplu eklemeyi destekler. Bu araç verileri çıkarmak için INSERT deyimlerini ayrıştırır.
CREATE TABLE deyimi
SQL'de tablo oluşturmak için kullanılan DDL deyimi, sütun adlarını, veri türlerini, kısıtlamaları (NOT NULL, PRIMARY KEY, UNIQUE vb.) tanımlar. Bu araç sütun tanım bilgilerini çıkarmak için CREATE TABLE'ı ayrıştırabilir.
VALUES demeti
INSERT deyiminde VALUES anahtar sözcüğünden sonra parantez içindeki değer listesi, örn. (1, 'Alice', TRUE). Tek INSERT toplu ekleme için birden çok demet içerebilir: VALUES (1,'A'), (2,'B'), (3,'C').
SQL dialect
Farklı veritabanı üreticilerinin SQL standardı uzantı implementasyonlarındaki farklılıklar, örn. MySQL ters tik, PostgreSQL çift tırnak, SQL Server köşeli parantez tanımlayıcıları kullanır, boolean değer temsili (TRUE/1), otomatik artan sütunlar (AUTO_INCREMENT/SERIAL) vb. de farklılık gösterir.
Tanımlayıcı alıntıları
SQL'de tablo adları, sütun adları gibi tanımlayıcıları çevrelemek için kullanılan özel karakterler. MySQL ters tik `name`, PostgreSQL ve standart SQL çift tırnak "name", SQL Server köşeli parantez [name] kullanır, ayrılmış sözcük kaçışı veya büyük/küçük harf duyarlı senaryolar için.
SQL kaçışı
SQL dizelerinde özel karakterleri temsil etme mekanizması. SQL standardı tek tırnağı ikiye katlayarak ('') kullanır; MySQL ters eğik çizgi kaçışını da destekler (\n, \t, \', \\\\). Bu araç her iki kaçış mekanizmasının geri yüklenmesini destekler.
NULL değeri
SQL'de eksik veya bilinmeyen verileri temsil eden özel değer, büyük/küçük harf duyarsız (NULL/null/Null). NULL boş dizeye veya 0'a eşit değildir, JSON'a dönüştürme sırasında null olarak eşlenir, CSV'de genellikle boş bırakılır.
Onaltılık literal
SQL'de ikili verileri temsil etmek için literal sözdizimi. MySQL 0x... ve X'...' formlarını destekler, PostgreSQL X'...' ve B'...' (ikili) destekler. Bu araç onaltılık literalleri olduğu gibi korur.
JSON Lines (NDJSON)
Satır başına bir bağımsız JSON nesnesi içeren metin formatı, .jsonl uzantısı. Akış işleme, büyük veri içe aktarma ve Elasticsearch bulk API için uygundur, tam JSON dizisine kıyasla bellek tasarrufu sağlar.
RFC 4180
CSV formatı için uluslararası standart (Common Format and MIME Type for Comma-Separated Values Files), alan ayrımı, alıntı kaçışı, satır sonu işleme gibi kuralları tanımlar. Bu aracın CSV çıktısı bu standarda uygundur.
BOM (Byte Order Mark)
Bayt sırası işareti, U+FEFF karakteri. UTF-8 dosyasının başındaki BOM, Excel gibi yazılımların kodlamayı doğru tanımasına yardımcı olur, Çince karakterlerin bozuk görüntülenmesini önler. Bu aracın CSV çıktısı isteğe bağlı olarak BOM içerebilir.
SQL Dump
Veritabanından dışa aktarılan SQL betik dosyası, genellikle mysqldump, pg_dump gibi araçlar tarafından oluşturulur, CREATE TABLE ve INSERT deyimleri içerir, veritabanı yedekleme ve migrasyon için kullanılabilir.
DDL (Data Definition Language)
Veri tanımlama dili, SQL alt kümesi, CREATE, ALTER, DROP gibi deyimleri içerir, veritabanı yapısını (tablolar, görünümler, indeksler vb.) tanımlamak ve değiştirmek için kullanılır.

Desteklenen çıktı formatlarının karşılaştırması

Dokuz çıktı formatının özellikleri ve uygulama senaryolarının karşılaştırması:

FormatUzantıÖzelliklerEn iyi senaryo
JSON.jsonYapılandırılmış dizi, tür korumaAPI entegrasyonu, program okuma, frontend verisi
JSON Lines.jsonlSatır başına bir JSON nesnesiAkış işleme, Elasticsearch, büyük veri
CSV.csvVirgülle ayrılmış tablo, RFC 4180Excel, veri analizi, raporlar
TSV.tsvTab ile ayrılmış tabloTablo yazılımına yapıştırma, biyoinformatik
XML.xmlEtiket ve öznitelikli yapılandırılmış belgeSOAP arayüzleri, yapılandırma dosyaları, Java sistemleri
YAML.yamlEn okunabilir yapılandırma formatıAnsible, K8s, CI/CD yapılandırması
HTML.htmlStilli tablo, doğrudan tarayıcıda görüntülenebilirWeb görüntüleme, e-posta, raporlar
Markdown.mdMarkdown tablo sözdizimiREADME, dokümantasyon siteleri, teknik bloglar
SQL yeniden oluşturma.sqlINSERT yeniden oluşturma, dialect değiştirmeÇapraz veritabanı migrasyonu, tablo adı değiştirme

SQL değer türü tanıma kuralları

SQL değerlerini ayrıştırırken tür tanıma kuralları (literal forma göre):

SQL literalTanınan türJSON çıktıCSV çıktı
123Tam sayı123123
-45Negatif tam sayı-45-45
3.14Kayan noktalı3.143.14
1e10Bilimsel gösterim1000000000010000000000
'hello'Dize"hello"hello
NULLBoş değernull(boş)
TRUEBoolean doğrutrueTRUE
FALSEBoolean yanlışfalseFALSE
0xFFOnaltılık"0xFF"0xFF
X'4142'Onaltılık"X'4142'"X'4142'

Farklı veritabanı dialect'lerinde tanımlayıcı alıntı stili

Ana veritabanlarında tanımlayıcı (tablo adları, sütun adları) alıntı farklılıkları:

VeritabanıAlıntı stiliÖrnekAçıklama
MySQL/MariaDBTers tik ``users`Varsayılan etkin, ayrılmış sözcükleri ayırt eder
PostgreSQLÇift tırnak ""users"Büyük/küçük harf duyarlı, standart SQL stili
SQLiteÇift tırnak "/ters tik`/köşeli[]"users" / [users]Birden çok stille uyumlu
SQL ServerKöşeli parantez [][users]T-SQL varsayılan stili
OracleÇift tırnak ""users"Büyük harfe zorlar, alıntı büyük/küçük harf korur
Standart SQLÇift tırnak ""users"ANSI SQL standardı

Privacy & Security

Bu SQL dönüştürücünün tüm işlemleri tamamen tarayıcınızda yerel olarak yapılır: SQL ayrıştırma, veri çıkarma, format dönüştürme — hepsi istemci tarafında tarayıcı JavaScript'i aracılığıyla yürütülür, SQL içeriği, yüklenen dosyalar veya dönüştürme sonuçları ağ üzerinden hiçbir sunucuya gönderilmez. Dosya yükleme, dosyaları doğrudan belleğe okumak için tarayıcının native FileReader API'sini kullanır, aracı hizmet yoktur. Takip için Çerez kullanılmaz, hiçbir kullanıcı girişi veya kullanım verisi toplanmaz. Sayfayı kapatma veya yenileme sonrasında tüm girdi ve çıktı içeriği bellekten otomatik temizlenir (geçmiş yalnızca tarayıcının localStorage'ında yerel olarak saklanır). Kullanıcı gizliliği veya ticari olarak hassas bilgiler içeren veritabanı dışa aktarım betiklerini işlemek için uygundur.

Authoritative References