एकै लाइनको क्वेरी पढ्न मिल्ने गरी मिलाउनुहोस्
एप्लिकेसनको लग वा ORM बाट कपी गरिएको SQL एउटै लामो लाइनमा आउन सक्छ। SQL formatter ले लाइन छुट्याएर र भित्री भागमा इन्डेन्टेसन थपेर क्वेरीको संरचना देखाउँछ। यसले JOIN को सर्त वा फिल्टर खोज्दा र SQL सिक्दा मद्दत गर्छ।
क्वेरी पेस्ट गरेर त्यसको डायलेक्ट छान्नुहोस्। इन्डेन्टेसनका लागि दुई स्पेस, चार स्पेस वा ट्याब राख्न सकिन्छ। किवर्डका अक्षर ठूला, साना वा मूल रूपमा राख्ने विकल्प छ। फर्म्याट गरेको नतिजा छुट्टै देखिन्छ। इनपुट वा सेटिङ बदलेपछि पुरानो नतिजा हट्छ, त्यसैले फेरि फर्म्याट गरेर मात्र कपी गर्नुहोस्।
क्वेरी लेखिएको डेटाबेसअनुसार छान्नुहोस्
मानक SQL, PostgreSQL, MySQL, MariaDB, SQLite, SQL Server (T-SQL), Oracle SQL, BigQuery र Snowflake गरी नौ विकल्प छन्। सही डायलेक्टले नाम लेख्ने तरिका र डेटाबेसका विशेष किवर्ड चिन्न सहयोग गर्छ।
डायलेक्ट परिवर्तन गर्दा क्वेरी अर्को डेटाबेसका लागि रूपान्तरण हुँदैन। फङ्सन वा तालिकाको संरचना पनि बदलिँदैन। Oracle SQL छान्न मिल्नुको अर्थ सबै भण्डारित प्रोसिजर समर्थित छन् भन्ने होइन।
सफा देखिएको SQL पनि जाँच्नुपर्छ
WHERE र HAVING छुट्टाछुट्टै देखिँदा पङ्क्ति र समूहमा लाग्ने सर्त तुलना गर्न सजिलो हुन्छ। CTE र भित्री क्वेरीका तह पनि इन्डेन्टेसनबाट देखिन्छन्। तर यसले क्वेरीको अर्थ वा त्यसबाट आउने नतिजा सही छ भनेर प्रमाणित गर्दैन।
अक्षरको विकल्प चिनिएका किवर्डमा मात्र लागू हुन्छ। पहिचानकर्ता, फङ्सनका नाम र डेटा टाइपको लेखाइ उही रहन्छ। प्यारामिटरमा मान भरिँदैन। टिप्पणीहरू रहन्छन्, तर तिनको स्थान वा खाली ठाउँ बदलिन सक्छ। नतिजा प्रयोग गर्नुअघि आफ्नो डेटाबेसको सन्दर्भमा जाँच्नुहोस्।
SQL फर्म्याटका उदाहरण
यी उदाहरणमा काल्पनिक डेटा, ठूला अक्षरका किवर्ड र दुई स्पेसको इन्डेन्टेसन छन्। सम्पादकमा उदाहरण खोल्दा मिल्ने डायलेक्ट पनि छानिन्छ।
JOIN र समूहीकरण
भुक्तानी भएका अर्डर ग्राहकअनुसार जोडेर कुल रकममा सर्त लगाउने उदाहरण। जोड्ने सर्त र दुई प्रकारका फिल्टर छुट्टै देखिन्छन्।
SELECT
c.id,
c.name,
count(o.id) AS order_count,
sum(o.total) AS revenue
FROM
customers c
JOIN orders o ON o.customer_id = c.id
WHERE
o.status = 'paid'
GROUP BY
c.id,
c.name
HAVING
sum(o.total) > 1000
ORDER BY
revenue DESC;फर्म्याटरमा फर्कनुहोस् ↑CTE र विन्डो फङ्सन
PostgreSQL को CTE र ROW_NUMBER ले प्रत्येक ग्राहकका अर्डरलाई क्रम दिन्छ। भित्रको SELECT को तह हेर्नुहोस्।
WITH
ranked_orders AS (
SELECT
id,
customer_id,
total,
row_number() OVER (
PARTITION BY
customer_id
ORDER BY
created_at DESC
) AS position
FROM
orders
WHERE
created_at >= date '2024-01-01'
)
SELECT
customer_id,
id,
total
FROM
ranked_orders
WHERE
position = 1
ORDER BY
customer_id;फर्म्याटरमा फर्कनुहोस् ↑INSERT र टिप्पणी
MySQL को ब्याकटिकमा लेखिएका नाम, टिप्पणी र स्ट्रिङभित्रको सेमिकोलन भएको उदाहरण। स्ट्रिङको चिह्न डेटा नै रहन्छ।
-- Fictional seed data
INSERT INTO
`products` (`sku`, `name`, `price`)
VALUES
('DEMO-01', 'Desk lamp; warm light', 29.95),
('DEMO-02', 'Reader''s notebook', 8.50);फर्म्याटरमा फर्कनुहोस् ↑बारम्बार सोधिने प्रश्न
फर्म्याट गरिएको SQL कसरी राख्ने?
कपी बटन प्रयोग गर्नुहोस् वा formatted.sql फाइल डाउनलोड गर्नुहोस्। Ctrl+Enter वा macOS मा Command+Enter बाट पनि फर्म्याट सुरु गर्न सकिन्छ।
मेरो क्वेरी सर्भरमा पठाइन्छ?
फर्म्याट ब्राउजरको Web Worker मा हुन्छ। उपकरणले SQL लाई फर्म्याट गर्ने API मा पठाउँदैन, डेटाबेसमा जोडिँदैन, इनपुट स्थायी रूपमा राख्दैन र URL मा पनि राख्दैन।
यसले SQL को त्रुटि वा गति सुधार गर्छ?
गर्दैन। यसले लाइन, खाली ठाउँ र किवर्डको लेखाइ मिलाउँछ। तालिका, स्तम्भ, डेटा टाइप, अनुमति र कार्यान्वयन योजना जाँच्दैन। प्रमाणीकरण र गति विश्लेषणका लागि डेटाबेसका उपकरण प्रयोग गर्नुहोस्।
धेरै SQL कथन एकैपटक राख्न मिल्छ?
सामान्य SQL कथनलाई सेमिकोलनले छुट्याएर राख्न मिल्छ। चिनिएको स्ट्रिङभित्रको सेमिकोलन डेटा नै रहन्छ। आफ्नै डेलिमिटर, प्रोसिजर र क्लाइन्टका विशेष स्क्रिप्ट यो प्रयोगको दायरामा पर्दैनन्।
फर्म्याट नभए के जाँच्ने?
डायलेक्ट, उद्धरण चिह्न र कोष्ठक मिलेका छन् कि हेर्नुहोस्। टेम्प्लेट वा एप्लिकेसन कोडबाट जोडिएका अभिव्यक्ति नचिनिन सक्छन्। सीमा ५०,००० अक्षर हो र काम दस सेकेन्डपछि रोकिन्छ। लामो स्क्रिप्टलाई भाग लगाउनुहोस्।
टिप्पणी र प्लेसहोल्डर हट्छन्?
टिप्पणी रहन्छ, तर ढाँचा बदलिन सक्छ। समर्थित डायलेक्टका प्लेसहोल्डरमा मान भरिँदैन। फर्म्याट बन्द गर्ने विशेष टिप्पणी भएको भाग मूल ढाँचामै रहन सक्छ।
