सीधे कंटेंट पर जाएं
SPCXTools

SQL फ़ॉर्मेटर

लंबी और अव्यवस्थित SQL को साफ़, पढ़ने योग्य और सही इंडेंट वाली क्वेरीज़ में बदलें।

लोकली चलता है — फ़ाइलें कभी आपकी डिवाइस से बाहर नहीं जातीं

टूल लोड हो रहा है…

SQL फ़ॉर्मेटर का इस्तेमाल कैसे करें

  1. 1अपनी SQL क्वेरी को Input बॉक्स में पेस्ट करें, या उदाहरण देखने के लिए Sample पर क्लिक करें।
  2. 2अपना SQL dialect चुनें ताकि डेटाबेस-विशिष्ट सिंटैक्स की सही पहचान हो सके।
  3. 3चुनें कि कीवर्ड्स कैसे दिखने चाहिए — UPPER, lower या जैसे लिखे गए हैं — और अपना इंडेंटेशन सेट करें।
  4. 4फ़ॉर्मेट की गई क्वेरी को कॉपी करें या इसे .sql फ़ाइल के रूप में डाउनलोड करें।

SQL को पढ़ने में आसान बनाएं

लॉग्स से कॉपी की गई, ORM द्वारा जनरेट की गई या जल्दी में लिखी गई क्वेरीज़ अक्सर एक लंबी लाइन में बदल जाती हैं, जिन्हें पढ़ना और डिबग करना बहुत मुश्किल होता है। यह SQL फ़ॉर्मेटर आपकी क्वेरी को स्पष्ट क्लॉज़ (clauses) — SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY — में बांटता है, हर कॉलम और कंडीशन को अलग लाइन में रखता है और सबक्वेरीज़ (subqueries) तथा CASE एक्सप्रेशन्स को सही तरीके से इंडेंट (indent) करता है। इसका रिज़ल्ट रिव्यू करने, वर्ज़न कंट्रोल में तुलना करने और साथियों के साथ शेयर करने में बहुत आसान हो जाता है।

फ़ीचर्स

  • 12 SQL डायलेक्ट्स, स्टैंडर्ड SQL से लेकर MySQL, PostgreSQL, SQL Server, Oracle, BigQuery और Snowflake तक।
  • कीवर्ड केस: UPPER, lower या बिल्कुल वैसे ही जैसे लिखा गया है; यह कीवर्ड्स, डेटा टाइप्स और फ़ंक्शन्स पर लागू होता है।
  • इंडेंटेशन 2 स्पेस, 4 स्पेस या टैब्स के साथ।
  • सेमीकोलन द्वारा अलग किए गए मल्टीपल स्टेटमेंट्स।
  • कमेंट्स सुरक्षित रहते हैं — -- लाइन कमेंट्स और /* */ ब्लॉक कमेंट्स दोनों।
  • रिज़ल्ट को एक .sql फ़ाइल के रूप में कॉपी या डाउनलोड करें।
  • प्राइवेट: यह फ़ॉर्मेटर आपके ब्राउज़र में लोकली (locally) रन होता है।

पहले और बाद में

इस तरह की एक क्वेरी:

select u.id, u.name, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.status = 'active' group by u.id, u.name order by orders desc;

ऐसी बन जाती है:

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
WHERE
  u.status = 'active'
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC;

SQL स्टाइल टिप्स

  • एक लाइन में एक क्लॉज़। हर मुख्य क्लॉज़ को नई लाइन से शुरू करने से क्वेरी का स्ट्रक्चर एक नज़र में ही समझ आ जाता है।
  • मीनिंगफुल एलियास का इस्तेमाल करें। छोटी क्वेरीज़ के लिए u और o जैसे छोटे एलियास ठीक हैं, लेकिन लंबी रिपोर्ट्स में वर्णनात्मक (descriptive) एलियास ज़्यादा मददगार होते हैं।
  • जॉइन्स में कॉलम के नाम स्पष्ट करें (user_id के बजाय orders.user_id) ताकि कोई कंफ्यूज़न न हो।
  • पूरे प्रोजेक्ट में फॉर्मेटिंग एक जैसी रखें ताकि diffs में खाली स्पेस (whitespace) के बजाय असली बदलाव दिखाई दें।

संबंधित टूल्स

क्वेरी रिज़ल्ट्स के साथ काम कर रहे हैं? एक्सपोर्ट किए गए डेटा को CSV to JSON से कन्वर्ट करें, JSON Formatter के साथ API रिस्पॉन्स को प्रीटी-प्रिंट करें, या Diff Checker का इस्तेमाल करके क्वेरी के दो वर्ज़न की तुलना करें।

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

कौन-से SQL dialects सपोर्ट किए जाते हैं?
Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL और IBM Db2. सही dialect चुनना डेटाबेस-विशिष्ट सिंटैक्स के लिए ज़रूरी है, जैसे backtick identifiers, square brackets, dollar-quoted strings या स्पेशल ऑपरेटर्स।
क्या फॉर्मेट करने से मेरी क्वेरी का काम बदल जाता है?
नहीं। फॉर्मेटर केवल whitespace, line breaks और, यदि आप चाहें तो, कीवर्ड्स, डेटा टाइप्स और फ़ंक्शन नामों के लेटर केस को बदलता है। टेबल के नाम, कॉलम के नाम, स्ट्रिंग्स और कमेंट्स में कोई बदलाव नहीं होता है।
मुझे एरर क्यों आ रहा है?
फॉर्मेटर को आपकी क्वेरी का स्ट्रक्चर समझना ज़रूरी है। एरर का मतलब आमतौर पर टाइपिंग की गलती (typo), बंद न किया गया कोट (quote) या ब्रैकेट, या किसी अन्य डेटाबेस का सिंटैक्स होता है — कोई दूसरा dialect चुनकर देखें। {{ name }} जैसे टेम्पलेटिंग प्लेसहोल्डर्स भी पार्सर को कंफ्यूज कर सकते हैं।
क्या मैं एक साथ कई स्टेटमेंट्स को फॉर्मेट कर सकता हूँ?
हाँ। स्टेटमेंट्स को सेमीकोलन से अलग करें; हर स्टेटमेंट अलग से फॉर्मेट हो जाएगा और उनके बीच एक खाली लाइन आ जाएगी।
क्या मेरा SQL किसी सर्वर पर भेजा जाता है?
नहीं। फॉर्मेटिंग पूरी तरह से आपके ब्राउज़र में ही होती है, इसलिए आप उन क्वेरीज़ को सुरक्षित रूप से फॉर्मेट कर सकते हैं जिनमें इंटरनल टेबल के नाम या सैंपल डेटा शामिल हैं।
क्या SQL कीवर्ड्स अपरकेस में होने चाहिए?
SQL कीवर्ड्स case-insensitive होते हैं, इसलिए यह आपकी पसंद (style) पर निर्भर करता है। अपरकेस कीवर्ड्स (SELECT, FROM, WHERE) का इस्तेमाल एक पुरानी परंपरा है क्योंकि ये टेबल और कॉलम के नामों से अलग दिखाई देते हैं, जबकि आजकल कई टीमें लोअरकेस (lowercase) का इस्तेमाल करना पसंद करती हैं। कोई एक तरीका चुनें और हमेशा उसी का इस्तेमाल करें।