SQL फ़ॉर्मैटर और वैलिडेटर
SQL को सुंदर ढंग से फ़ॉर्मैट या मिनिफ़ाई करें और सिंटैक्स की गलतियाँ सटीक लाइन व कॉलम के साथ पकड़ें — 20 डायलेक्ट के लिए, पूरी तरह आपके ब्राउज़र में।
सब कुछ आपके ब्राउज़र में चलता है — आपका SQL किसी सर्वर पर अपलोड नहीं होता।
विकल्प
यहाँ .sql या .txt फ़ाइल ड्रॉप करें, पेस्ट करें या सैंपल लोड करें। चलाने के लिए Ctrl+Enter दबाएँ।
सिंटैक्स जाँच
"सही" का मतलब है कि इस ग्रामर के हिसाब से सिंटैक्स ठीक है। चेकर के पास डेटाबेस स्कीमा नहीं होता, इसलिए वह यह नहीं बता सकता कि टेबल या कॉलम मौजूद हैं या नहीं, या क्वेरी चलेगी या नहीं। किसी डायलेक्ट का खास या बहुत नया सिंटैक्स रिजेक्ट हो सकता है, भले ही आपका डेटाबेस उसे मान लेता हो।
अपने ब्राउज़र में SQL फ़ॉर्मैट, मिनिफ़ाई और चेक करें
पढ़ने लायक SQL का रिव्यू, डीबग और तुलना करना आसान होता है। यह टूल क्वेरी को एक जैसी इंडेंटेशन, लाइन ब्रेक और कीवर्ड केस के साथ दोबारा लिखता है और करीब बीस डायलेक्ट की बारीकियाँ समझता है, जिनमें MySQL, PostgreSQL, SQL Server (T-SQL), SQLite, BigQuery, Snowflake, Redshift, Oracle PL/SQL, Hive, Spark, Trino और DB2 शामिल हैं। डायलेक्ट चुनें, 2 या 4 स्पेस या टैब तय करें, चुनें कि कीवर्ड, डेटा टाइप और फ़ंक्शन के नाम UPPERCASE हों, lowercase हों या जैसे हैं वैसे रहें, और अगर आपकी टीम का यही स्टाइल है तो कॉमा को हर लाइन की शुरुआत में ले जाएँ।
सिंटैक्स चेक इसका दूसरा हिस्सा है। स्क्रिप्ट पेस्ट करते ही हर स्टेटमेंट अलग से जाँचा जाता है, ताकि आप देख सकें कि कौन सही है और कौन नहीं। गलती होने पर लाइन और कॉलम, गड़बड़ टोकन, आसपास की कुछ लाइनें और, जहाँ मुमकिन हो, एक संकेत दिखता है, जैसे कीवर्ड की गलत स्पेलिंग, फ़ालतू कॉमा या बंद न किया गया कोष्ठक। स्टेटमेंट बाँटते समय स्ट्रिंग, कमेंट, बैकटिक, स्क्वेयर ब्रैकेट और PostgreSQL के डॉलर-कोटेड ब्लॉक का ध्यान रखा जाता है, इसलिए लिटरल के अंदर का सेमीकोलन कभी किसी स्टेटमेंट को बीच से नहीं काटता।
मिनिफ़ाई फ़ॉर्मैटिंग का उल्टा काम करता है: यह खाली जगह समेट देता है और, आप चाहें तो, कमेंट हटा देता है, ताकि लॉग, कॉन्फ़िग फ़ाइल या कोड में डालने के लिए एक छोटी, एक-लाइन की क्वेरी मिल सके। यह रेगुलर एक्सप्रेशन की जगह टोकन पर काम करता है, इसलिए स्ट्रिंग और कोटेड नामों के अंदर का टेक्स्ट ठीक वैसा ही रहता है जैसा आपने लिखा था।
सीमाओं का ध्यान रखें। हरे चेक का मतलब सिर्फ़ इतना है कि सिंटैक्स चुने हुए ग्रामर से मेल खाता है; इसका मतलब यह नहीं कि आपकी टेबल मौजूद हैं या क्वेरी तेज़ या सही है। कुछ डायलेक्ट, प्रोसीजरल ब्लॉक और सबसे नए फ़ीचर सिर्फ़ आंशिक रूप से समर्थित हैं, और कुछ डायलेक्ट के लिए अलग चेकर है ही नहीं; ऐसे में आप सबसे करीबी ग्रामर खुद चुन सकते हैं। सब कुछ लोकली होता है, इसलिए आप प्रोडक्शन क्वेरी बेफ़िक्र होकर पेस्ट कर सकते हैं, और बहुत बड़ी फ़ाइल होने पर लाइव प्रीव्यू तब तक रुका रहता है जब तक आप कोई बटन नहीं दबाते।
अक्सर पूछे जाने वाले सवाल
क्या "सही" का मतलब है कि मेरी क्वेरी चल जाएगी?
नहीं। चेकर सिर्फ़ सिंटैक्स जाँचता है। उसके पास आपके डेटाबेस की पहुँच नहीं होती, इसलिए वह नहीं जान सकता कि कोई टेबल या कॉलम मौजूद है या नहीं, टाइप आपस में मेल खाते हैं या नहीं, या आपके पास अनुमति है या नहीं। वह अपने ही ग्रामर का इस्तेमाल करता है, इसलिए बिल्कुल नया या किसी वेंडर का खास सिंटैक्स रिजेक्ट हो सकता है, जबकि आपका डेटाबेस उसे मान लेता है। हरे नतीजे को "SQL ठीक बना है" और लाल नतीजे को "इस जगह को देखिए" समझें।
क्या मेरा SQL कहीं अपलोड होता है?
नहीं। फ़ॉर्मैट, मिनिफ़ाई और सिंटैक्स जाँच, सब आपके ब्राउज़र में बैकग्राउंड वर्कर के ज़रिए चलते हैं। कुछ भी सर्वर पर नहीं भेजा जाता। वैकल्पिक ड्राफ़्ट और आपकी सेटिंग सिर्फ़ इसी ब्राउज़र की लोकल स्टोरेज में रहती हैं।
फ़ॉर्मैटर सफल क्यों हो जाता है जबकि चेकर एरर बताता है?
ये दो अलग टूल हैं। फ़ॉर्मैटर को सिर्फ़ टोकन और क्लॉज़ पहचानने होते हैं, इसलिए वह नरम रहता है। चेकर चुने हुए डायलेक्ट का पूरा ग्रामर इस्तेमाल करता है और ज़्यादा सख़्त है। दोनों में फ़र्क़ होने पर चेतावनी दिखती है: नतीजा फिर भी दिखाया जाता है, पर निशान लगी लाइन पर एक नज़र डालना ठीक रहेगा।
क्या मिनिफ़ाई करने से मेरी क्वेरी का काम बदल जाता है?
यह सिर्फ़ स्पेस और कमेंट हटाता है। स्ट्रिंग, कोटेड आइडेंटिफ़ायर, डॉलर-कोटेड ब्लॉक और ऑप्टिमाइज़र हिंट अक्षर-दर-अक्षर वैसे ही कॉपी होते हैं, और जो टोकन सटे थे वे सटे ही रहते हैं। सावधानी के तौर पर ऐसी स्क्रिप्ट मिनिफ़ाई न करें जो लाइन ब्रेक पर निर्भर हों, जैसे MySQL के DELIMITER ब्लॉक।