SQL फ़ॉर्मेटर कैसे इस्तेमाल करें
- एक या ज़्यादा SQL स्टेटमेंट पेस्ट करें।
- अपने डेटाबेस से मेल खाता डायलेक्ट चुनें और मनपसंद कीवर्ड केस, इंडेंटेशन व कॉमा स्टाइल तय करें।
- फ़ॉर्मेट किया SQL लाइव अपडेट होता है; उसे कॉपी करें या .sql फ़ाइल के रूप में डाउनलोड करें।
SQL फ़ॉर्मेटर की खूबियाँ
- पाँच डायलेक्ट: MySQL/MariaDB, PostgreSQL, SQL Server, Oracle, SQLite
- कीवर्ड केसिंग अपरकेस, लोअरकेस या जस की तस (फ़ंक्शन भी)
- हर clause अलग लाइन पर, इंडेंट की गई SELECT सूची, JOIN और AND/OR शर्तों के साथ
- सबक्वेरी, CTE (WITH … AS), CASE एक्सप्रेशन और VALUES सूचियाँ ब्लॉक की तरह इंडेंट होती हैं
- ट्रेलिंग या लीडिंग कॉमा स्टाइल; 2/4 स्पेस या टैब इंडेंटेशन
- कमेंट, स्ट्रिंग लिटरल, कोट किए identifier और पैरामीटर हूबहू सुरक्षित रहते हैं
- कई स्टेटमेंट अलग-अलग फ़ॉर्मेट होते हैं, बीच में एक खाली लाइन के साथ
SQL फ़ॉर्मेटर का उदाहरण
एक लाइन की क्वेरी को फ़ॉर्मेट करना
इनपुट:
select id, name from users where active = 1 and role in ('admin','editor') order by name limit 10आउटपुट:
SELECT
id,
name
FROM
users
WHERE
active = 1
AND role IN ('admin', 'editor')
ORDER BY
name
LIMIT 10SQL फ़ॉर्मेटर के बारे में अक्सर पूछे जाने वाले सवाल
कौन-कौन से SQL डायलेक्ट समर्थित हैं?
MySQL/MariaDB, PostgreSQL, SQL Server (T-SQL), Oracle और SQLite। डायलेक्ट तय करता है कि स्ट्रिंग, कोट किए identifier, कमेंट और पैरामीटर कैसे टोकनाइज़ होंगे — जैसे MySQL में backtick, SQL Server में [bracket] और PostgreSQL में $$ डॉलर कोट।
क्या फ़ॉर्मेटिंग से क्वेरी का काम बदल जाएगा?
नहीं। सिर्फ़ व्हाइटस्पेस और कीवर्ड केसिंग बदलती है; identifier, स्ट्रिंग लिटरल, संख्याएँ और कमेंट बिल्कुल वैसे ही रहते हैं।
क्या मैं एक साथ कई स्टेटमेंट फ़ॉर्मेट कर सकता हूँ?
हाँ। सेमीकोलन से अलग किए गए स्टेटमेंट अलग-अलग फ़ॉर्मेट होते हैं और उनके बीच एक खाली लाइन रहती है।
सबक्वेरी और CTE कैसे संभाले जाते हैं?
कोष्ठक में लिखी सबक्वेरी अपने अलग इंडेंट किए ब्लॉक में जाती हैं, और WITH … AS (…) clause भी इसी तरह फ़ॉर्मेट होते हैं ताकि मुख्य क्वेरी पढ़ने योग्य बनी रहे।
क्या यह stored procedure या PL/SQL ब्लॉक पर काम करता है?
प्रोसीजरल कोड (BEGIN … END ब्लॉक, IF/LOOP) यथासंभव फ़ॉर्मेट होता है; सादे DML और DDL स्टेटमेंट पर नतीजे सबसे अच्छे आते हैं।
तकनीकी नोट्स
फ़ॉर्मेटर इनपुट को डायलेक्ट-अवेयर lexer से टोकनाइज़ करता है ('' या बैकस्लैश एस्केप वाली स्ट्रिंग, "quoted", `backtick` और [bracket] identifier, $$ डॉलर कोट, -- / # / ब्लॉक कमेंट, ?, :name, @name और $1 पैरामीटर) और फिर एक छोटा लेआउट इंजन लगाता है: टॉप-लेवल clause कीवर्ड नई लाइन शुरू करते हैं और अपने कंटेंट को इंडेंट करते हैं, JOIN/AND/OR नई लाइन से शुरू होते हैं, स्टेटमेंट वाले कोष्ठक इंडेंट किए ब्लॉक बन जाते हैं और इनलाइन कोष्ठक कॉम्पैक्ट रहते हैं।
कई शब्दों वाले कीवर्ड (GROUP BY, LEFT OUTER JOIN, IS NOT NULL, ON DUPLICATE KEY UPDATE …) एक ही वाक्यांश के रूप में पहचाने जाते हैं, इसलिए केसिंग और लाइन ब्रेक एकसमान रूप से लागू होते हैं।