Oh MyUtils

JSON से SQL - CREATE TABLE और INSERT स्टेटमेंट जनरेट करें ऑनलाइन

JSON डेटा को MySQL, PostgreSQL, SQLite और SQL Server के लिए CREATE TABLE और INSERT स्टेटमेंट में बदलें — 100% ब्राउज़र में, कोई डेटा सर्वर पर नहीं जाता।

SQL डायलेक्ट
टेबल नाम
आउटपुट मोड
प्राइमरी की
नेस्टेड JSON
फ़्लैग
JSON इनपुट
SQL आउटपुट
 

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

JSON to SQL कन्वर्टर क्या है?

JSON to SQL कन्वर्टर एक उपकरण है जो JSON डेटा को SQL स्टेटमेंट में बदलता है। यह आपके JSON में पाई गई संरचना और प्रकारों के आधार पर डेटाबेस स्कीमा को परिभाषित करने वाले CREATE TABLE स्टेटमेंट (DDL) और टेबल में डेटा भरने वाले INSERT INTO स्टेटमेंट (DML) उत्पन्न करता है। यह उपकरण JSON मानों से SQL कॉलम प्रकारों का स्वचालित रूप से अनुमान लगाता है: स्ट्रिंग VARCHAR या TEXT बनती हैं, संख्याएँ INT या FLOAT बनती हैं, बूलियन डेटाबेस डायलेक्ट के अनुसार BOOLEAN या BIT बनते हैं, और नेस्टेड ऑब्जेक्ट JSON कॉलम के रूप में संग्रहीत होते हैं।

JSON को SQL स्टेटमेंट में कैसे बदलें?

इनपुट फ़ील्ड में अपना JSON डेटा (एक ऑब्जेक्ट या ऑब्जेक्ट की एरे) पेस्ट करें। अपना लक्ष्य SQL डायलेक्ट (MySQL, PostgreSQL, SQLite, या SQL Server) चुनें, टेबल नाम दर्ज करें, और अपना आउटपुट मोड (CREATE TABLE + INSERT, केवल CREATE, या केवल INSERT) चुनें। उपकरण आउटपुट पैनल में तुरंत संबंधित SQL उत्पन्न करता है। परिणाम को क्लिपबोर्ड पर कॉपी करने से पहले आप बैच INSERT मोड, प्राइमरी की चयन, और नेस्टेड JSON हैंडलिंग जैसे विकल्पों को अनुकूलित कर सकते हैं।

टाइप इन्फरेंस कैसे काम करता है?

यह उपकरण सर्वोत्तम SQL कॉलम प्रकार निर्धारित करने के लिए सभी पंक्तियों में प्रत्येक JSON फ़ील्ड के सभी मानों का विश्लेषण करता है। स्ट्रिंग लंबाई के आधार पर VARCHAR(255) या TEXT में, इंटीजर परिमाण के आधार पर INT या BIGINT में, दशमलव FLOAT में, बूलियन डायलेक्ट-विशिष्ट बूलियन प्रकार में (PostgreSQL के लिए BOOLEAN, MySQL के लिए TINYINT(1), SQL Server के लिए BIT), और null मान कॉलम को nullable बनाते हैं। '2026-03-20' जैसी ISO 8601 तारीख स्ट्रिंग का पता लगाया जाता है और DATE या TIMESTAMP प्रकारों में मैप किया जाता है। नेस्टेड ऑब्जेक्ट और एरे JSON/JSONB कॉलम के रूप में संग्रहीत होते हैं।

SQL डायलेक्ट के बीच क्या अंतर हैं?

प्रत्येक SQL डायलेक्ट में आइडेंटिफ़ायर, डेटा प्रकार और सुविधाओं के लिए अनूठा सिंटैक्स होता है। MySQL बैकटिक का उपयोग करता है (जैसे, `column_name`), PostgreSQL डबल कोट्स का, SQLite डबल कोट्स का, और SQL Server ब्रैकेट ([column_name]) का उपयोग करता है। बूलियन प्रकार भिन्न होते हैं: PostgreSQL में नेटिव BOOLEAN है, MySQL TINYINT(1) का उपयोग करता है, SQL Server BIT का उपयोग करता है। ऑटो-इंक्रीमेंट सिंटैक्स भी भिन्न होता है: MySQL AUTO_INCREMENT का, PostgreSQL SERIAL का, SQLite AUTOINCREMENT का, और SQL Server IDENTITY(1,1) का उपयोग करता है। JSON स्टोरेज भी भिन्न है: PostgreSQL में JSONB है, MySQL में JSON है, जबकि SQLite और SQL Server TEXT/NVARCHAR(MAX) का उपयोग करते हैं।

क्या इस उपकरण का उपयोग करते समय मेरा डेटा सुरक्षित है?

हाँ, पूरी तरह से। यह उपकरण क्लाइंट-साइड JavaScript का उपयोग करके आपके ब्राउज़र में सब कुछ प्रोसेस करता है। आपका JSON डेटा कभी भी आपके कंप्यूटर से बाहर नहीं जाता — कोई सर्वर अपलोड नहीं, कोई API कॉल नहीं, और कोई डेटा स्टोरेज नहीं। यह प्रोडक्शन डेटाबेस डेटा, संवेदनशील जानकारी वाले API रिस्पॉन्स, और किसी भी गोपनीय डेटा के साथ उपयोग करने के लिए सुरक्षित बनाता है जिसे आपको SQL में बदलने की आवश्यकता है।

यह उपकरण नेस्टेड JSON ऑब्जेक्ट और एरे को कैसे हैंडल करता है?

यह उपकरण नेस्टेड JSON के लिए दो रणनीतियाँ प्रदान करता है। डिफ़ॉल्ट 'JSON कॉलम' रणनीति नेस्टेड ऑब्जेक्ट और एरे को डेटाबेस में JSON/JSONB कॉलम के रूप में संग्रहीत करती है, मूल संरचना को संरक्षित करते हुए। 'फ़्लैटन' रणनीति फ़ॉरेन की संबंधों के साथ अलग संबंधित टेबल बनाकर डेटा को सामान्यीकृत करती है — नेस्टेड ऑब्जेक्ट प्रीफ़िक्स्ड नामों वाले फ़्लैटन्ड कॉलम बन जाते हैं, और ऑब्जेक्ट के एरे चाइल्ड टेबल बनाते हैं। तेज़ स्टोरेज और लचीली क्वेरी के लिए JSON कॉलम चुनें, या पूरी तरह से सामान्यीकृत रिलेशनल स्कीमा डिज़ाइन के लिए फ़्लैटनिंग चुनें।

बैच INSERT मोड क्या है?

बैच INSERT मोड मल्टी-वैल्यू सिंटैक्स का उपयोग करके कई पंक्तियों को एक INSERT स्टेटमेंट में जोड़ता है: INSERT INTO table VALUES (...), (...), (...)। बड़े डेटासेट आयात करते समय यह व्यक्तिगत INSERT स्टेटमेंट की तुलना में काफ़ी तेज़ होता है क्योंकि यह डेटाबेस तक राउंड ट्रिप की संख्या कम करता है। आप स्टेटमेंट आकार और प्रदर्शन के बीच संतुलन बनाने के लिए बैच आकार (डिफ़ॉल्ट: प्रति स्टेटमेंट 100 पंक्तियाँ) कॉन्फ़िगर कर सकते हैं। सभी प्रमुख डेटाबेस इस सिंटैक्स का समर्थन करते हैं।

कोड उदाहरण

// JSON to SQL converter
function jsonToSql(jsonStr, options = {}) {
  const {
    tableName = 'my_table',
    dialect = 'mysql',
    includeCreate = true,
    includeInsert = true,
  } = options;

  const data = JSON.parse(jsonStr);
  const rows = Array.isArray(data) ? data : [data];
  if (rows.length === 0) return '';

  // Collect all column names
  const columns = [...new Set(rows.flatMap(Object.keys))];

  // Infer types from all rows
  const types = {};
  for (const col of columns) {
    for (const row of rows) {
      const val = row[col];
      if (val === null || val === undefined) continue;
      if (typeof val === 'boolean') types[col] = 'BOOLEAN';
      else if (typeof val === 'number') {
        types[col] = Number.isInteger(val) ? 'INT' : 'FLOAT';
      } else if (typeof val === 'object') types[col] = 'JSON';
      else types[col] = 'VARCHAR(255)';
    }
    if (!types[col]) types[col] = 'VARCHAR(255)';
  }

  const quote = dialect === 'mysql' ? (n) => `\`${n}\``
    : dialect === 'sqlserver' ? (n) => `[${n}]`
    : (n) => `"${n}"`;

  const parts = [];

  if (includeCreate) {
    const colDefs = columns.map(c => `  ${quote(c)} ${types[c]}`);
    parts.push(`CREATE TABLE ${quote(tableName)} (\n${colDefs.join(',\n')}\n);`);
  }

  if (includeInsert) {
    for (const row of rows) {
      const vals = columns.map(c => {
        const v = row[c];
        if (v === null || v === undefined) return 'NULL';
        if (typeof v === 'boolean') return v ? 'TRUE' : 'FALSE';
        if (typeof v === 'number') return String(v);
        if (typeof v === 'object') return `'${JSON.stringify(v).replace(/'/g, "''")}'`;
        return `'${String(v).replace(/'/g, "''")}'`;
      });
      parts.push(
        `INSERT INTO ${quote(tableName)} (${columns.map(quote).join(', ')}) VALUES (${vals.join(', ')});`
      );
    }
  }

  return parts.join('\n\n');
}

// Example usage
const json = '[{"id":1,"name":"Alice","active":true},{"id":2,"name":"Bob","active":false}]';
console.log(jsonToSql(json, { tableName: 'users', dialect: 'postgresql' }));

संबंधित उपकरण