DevToolPal
हि

CSV से SQL कन्वर्टर

CSV को MySQL, PostgreSQL, SQLite या SQL Server के लिए CREATE TABLE और INSERT स्टेटमेंट में बदलें, कॉलम टाइप अपने-आप पहचाने जाते हैं।

लोकल रूप से चलता है, कभी अपलोड नहीं होता

विकल्प

इनपुट

0 कैरेक्टर · 0 B

आउटपुट

0 कैरेक्टर · 0 B

यह क्या करता है

किसी स्प्रेडशीट को डेटाबेस में लोड करने का मतलब अक्सर टेबल की परिभाषा और INSERT स्टेटमेंट की लंबी सूची हाथ से लिखना और हर एपॉस्ट्रॉफ़ी को एस्केप करना होता है। यह टूल यह काम आपके लिए करता है: CSV चिपकाएँ और तुरंत चलाने लायक SQL स्क्रिप्ट पाएँ, जिसमें CREATE TABLE स्टेटमेंट और बैच में बँटे कई-पंक्ति वाले INSERT स्टेटमेंट होते हैं।

यह RFC 4180 का पालन करता है: कोट वाले फ़ील्ड, सेल के अंदर कॉमा और लाइन ब्रेक, और दोहराए गए कोट सही ढंग से संभालता है। स्ट्रिंग चुने गए डेटाबेस के हिसाब से सही ढंग से एस्केप होती हैं, जिनमें MySQL के बैकस्लैश और SQL Server की N'…' यूनिकोड स्ट्रिंग भी शामिल हैं।

इस्तेमाल कैसे करें

  1. CSV चिपकाएँ, .csv या .tsv फ़ाइल अपलोड करें, या उदाहरण पर क्लिक करें।
  2. टेबल का नाम लिखें। स्कीमा के लिए बिंदु लगाएँ, जैसे public.orders या dbo.orders।
  3. डेटाबेस चुनें: MySQL / MariaDB, PostgreSQL, SQLite या SQL Server।
  4. हर INSERT में पंक्तियाँ चुनें, और अगर टेबल पहले से मौजूद है तो CREATE TABLE बंद करें।
  5. SQL कॉपी करें या .sql फ़ाइल के रूप में डाउनलोड करें और अपने डेटाबेस क्लाइंट में चलाएँ।

डिलिमिटर अपने-आप पहचाना जाता है; आप कॉमा, सेमीकोलन, टैब या पाइप स्पष्ट रूप से भी चुन सकते हैं। अगर पहली पंक्ति में कॉलम के नाम नहीं, डेटा है, तो पहली रो हेडर है बंद करें; तब कॉलम के नाम column_1, column_2 इत्यादि होंगे।

उदाहरण

यह CSV:

id,name,price,in_stock
1,Ada's Tea,4.50,true
2,Coffee,,false

PostgreSQL के लिए इस स्क्रिप्ट में बदल जाती है:

CREATE TABLE "products" (
  "id" INTEGER,
  "name" TEXT,
  "price" NUMERIC(3, 2),
  "in_stock" BOOLEAN
);

INSERT INTO "products" ("id", "name", "price", "in_stock") VALUES
  (1, 'Ada''s Tea', 4.50, TRUE),
  (2, 'Coffee', NULL, FALSE);

Ada's की एपॉस्ट्रॉफ़ी दोहरी कर दी जाती है, खाली कीमत NULL बन जाती है, और संख्याएँ व बूलियन बिना कोट के लिखे जाते हैं।

टाइप और डायलेक्ट

  • MySQL / MariaDB: बैकटिक वाले आइडेंटिफ़ायर, INT, DECIMAL, BOOLEAN, DATE, DATETIME, VARCHAR(255) या TEXT; स्ट्रिंग में बैकस्लैश एस्केप होते हैं।
  • PostgreSQL: डबल कोट वाले आइडेंटिफ़ायर, INTEGER, NUMERIC, BOOLEAN, DATE, TIMESTAMP और TEXT।
  • SQLite: डबल कोट वाले आइडेंटिफ़ायर और SQLite की स्टोरेज क्लास INTEGER, REAL और TEXT; बूलियन 1 और 0 के रूप में लिखे जाते हैं।
  • SQL Server: स्क्वेयर ब्रैकेट वाले आइडेंटिफ़ायर, INT, DECIMAL, BIT, DATE, DATETIME2 और NVARCHAR, N'…' स्ट्रिंग और हर INSERT में अधिकतम 1000 पंक्तियाँ।
  • खाली सेल NULL बनते हैं। टेक्स्ट कॉलम में खाली स्ट्रिंग रखने के लिए खाली सेल को NULL लिखें बंद करें।
  • प्रोडक्शन डेटा पर स्क्रिप्ट चलाने से पहले पहचाने गए टाइप जाँच लें: जिस कॉलम में सैंपल में केवल छोटी संख्याएँ हैं, उसे बाद में बड़े टाइप की ज़रूरत पड़ सकती है।

अक्सर पूछे जाने वाले सवाल

› कौन-से डेटाबेस समर्थित हैं?

MySQL (और MariaDB), PostgreSQL, SQLite और Microsoft SQL Server। चुना गया डेटाबेस तय करता है कि टेबल और कॉलम के नाम किस तरह कोट होंगे, स्ट्रिंग कैसे एस्केप होंगी, कौन-से कॉलम टाइप इस्तेमाल होंगे और बूलियन कैसे लिखे जाएँगे।

› कॉलम टाइप कैसे तय होते हैं?

हर कॉलम जाँचा जाता है: पूर्णांक INT या BIGINT बनते हैं, दशमलव संख्याएँ पर्याप्त प्रिसिज़न वाला DECIMAL, true/false BOOLEAN (SQL Server में BIT), ISO तारीखें DATE या DATETIME, और बाकी सब टेक्स्ट। शुरुआत में शून्य वाली संख्याएँ, जैसे पिन कोड, टेक्स्ट ही रहती हैं। सभी कॉलम टेक्स्ट रखने के लिए टाइप पहचानें बंद करें।

› SQL Server में हर INSERT में सिर्फ़ 1000 पंक्तियाँ क्यों?

SQL Server 1000 से ज़्यादा पंक्तियों वाली VALUES सूची स्वीकार नहीं करता, इसलिए इस डायलेक्ट में बड़े बैच 1000 पर सीमित कर दिए जाते हैं। दूसरे डेटाबेस बड़े बैच स्वीकार करते हैं, पर हर स्टेटमेंट में 100 से 1000 पंक्तियाँ गति और आकार के बीच अच्छा संतुलन हैं।

› क्या मेरी CSV अपलोड होती है?

नहीं। पार्सिंग और SQL बनाना पूरी तरह आपके ब्राउज़र में होता है, इसलिए डेटा कभी आपके डिवाइस से बाहर नहीं जाता।