एसक्यूएल प्रशिक्षण की योजना
विश्लेषणात्मक SQL सीखने की योजना चरण 1: डेटा प्रदर्शित करना और उसका बुनियादी परिचय उद्देश्य: यह सीखना कि किसी टेबल में "कैसे देखना" है और उससे जानकारी कैसे निकालनी है। आप क्या करना चाहते हैं?
SQL कमांड (उदाहरण) व्याख्या सब कुछ देखना SELECT * FROM users; * का मतलब "सभी कॉलम" है। आप पूरा डेटा प्राप्त करते हैं। विशिष्ट कॉलम चुनना SELECT first_name, email, country FROM users; * के बजाय, आप उन कॉलमों के नाम देते हैं जिनमें आपकी रुचि है। परिणामों की संख्या सीमित करना SELECT * FROM users LIMIT 10; LIMIT बहुत उपयोगी है ताकि तुरंत लाखों पंक्तियाँ न निकालनी पड़ें। अभ्यास कार्य: टेबल में पहले 20 उपयोगकर्ताओं के लिए नाम, उपनाम और शहर ( first_name , last_name , city ) प्रदर्शित करें। चरण 2: डेटा फ़िल्टर करना – विशिष्ट जानकारी खोजना उद्देश्य: यह सीखना कि प्रश्न कैसे पूछना है और केवल उन पंक्तियों को निकालना है जो निर्दिष्ट शर्तों को पूरा करती हैं। आप क्या करना चाहते हैं?
एसक्यूएल कमांड (उदाहरण) स्पष्टीकरण पोलैंड के उपयोगकर्ताओं को ढूंढना SELECT * FROM users WHERE country = 'Poland'; = तुलना करने के लिए उपयोग किया जाता है। टेक्स्ट हमेशा एकल उद्धरण चिह्नों ('' ' ) में डालें। 30 वर्ष से अधिक आयु के उपयोगकर्ताओं को ढूंढना SELECT first_name, age FROM users WHERE age > 30; ऑपरेटर , , >= , संख्याओं पर काम करते हैं। शर्तों को जोड़ना (AND) SELECT * FROM users WHERE country = 'Poland' AND age > 30; AND के लिए दोनों शर्तों का पूरा होना आवश्यक है। टेक्स्ट में पैटर्न खोजना (LIKE) SELECT email FROM users WHERE email LIKE '%@gmail.com'; % किसी भी वर्ण स्ट्रिंग को दर्शाता है। यह टेक्स्ट के अंशों की खोज के लिए उपयोगी है। खाली मान जांचना (NULL) SELECT * FROM users WHERE postal_code IS NULL; खाली (अपरिभाषित) मानों की जांच करने के लिए IS NULL का उपयोग किया जाता है। अभ्यास के लिए कार्य: सभी उपयोगकर्ताओं को ढूंढें जो जर्मनी ( Germany ) से हैं और जिनकी आयु ( age ) 25 से 45 वर्ष के बीच है। चरण 3: डेटा का एकत्रीकरण और सॉर्टिंग – सारांश बनाना उद्देश्य: डेटा को समूहित करना सीखना ताकि सांख्यिकी प्राप्त की जा सके (उदाहरण के लिए कि किसी विशेष देश में कितने उपयोगकर्ता हैं) और परिणामों को सॉर्ट करना। आप क्या करना चाहते हैं?
SQL कमांड (उदाहरण) विवरण उपयोगकर्ताओं को सॉर्ट करें SELECT * FROM users ORDER BY created_at DESC; ORDER BY परिणामों को सॉर्ट करता है। DESC घटते क्रम का सॉर्टिंग है, और ASC बढ़ते क्रम का है। पंक्तियों की गणना करना (COUNT) SELECT COUNT(id) FROM users; COUNT() समूह में या पूरी तालिका में पंक्तियों को गिनता है। डेटा समूहीकृत करना (GROUP BY) SELECT country, COUNT(*) FROM users GROUP BY country; GROUP BY समान मान वाली पंक्तियों को एक में "समेट" देता है, जिससे एग्रीगेशन संभव होता है। औसत की गणना करना (AVG) SELECT AVG(age) FROM users; AVG() (औसत), SUM() (योग), MAX() (अधिकतम), और MIN() (न्यूनतम) एग्रीगेट फ़ंक्शन हैं। एग्रीगेशन के बाद फ़िल्टर करना (HAVING) SELECT country, COUNT(*) FROM users GROUP BY country HAVING COUNT(*) > 100; HAVING का काम WHERE की तरह होता है, लेकिन यह ग्रुपिंग के बाद परिणामों को फ़िल्टर करता है। अभ्यास कार्य: गणना करें कि प्रत्येक स्रोत ( traffic_source ) से कितने उपयोगकर्ता पंजीकृत हुए हैं। केवल उन स्रोतों को प्रदर्शित करें जहाँ 50 से अधिक उपयोगकर्ता आए हैं, और परिणाम को सबसे लोकप्रिय स्रोत से सॉर्ट करें। चरण 4: दिनांक और समय के साथ काम करना लक्ष्य: डेटा को दिनांक/समय कॉलम, जैसे कि created_at , के आधार पर हेरफेर (manipulate) और फ़िल्टर करना सीखना। कार्य उपयोग का उदाहरण किसी विशिष्ट तिथि के अनुसार फ़िल्टर करना SELECT * FROM users WHERE created_at >= '2025-01-01'; तिथि के अंश निकालना (जैसे वर्ष) SELECT EXTRACT(YEAR FROM created_at) AS rok, COUNT(*) FROM users GROUP BY rok; पूरे दिन के अनुसार समूहीकरण SELECT DATE(created_at) AS dzien, COUNT(*) FROM users GROUP BY dzien; चरण 5: तालिकाओं को जोड़ना (JOIN) उद्देश्य: यह समझना कि कई तालिकाओं से डेटा को कैसे जोड़ा जाए, जो जटिल रिपोर्ट बनाने के लिए SQL में एक महत्वपूर्ण कौशल है। आपकी तालिका users एक है, लेकिन कल्पना कीजिए कि आपके पास order_id और user_id कॉलम वाली दूसरी तालिका orders है। यह देखने के लिए कि किस उपयोगकर्ता ने कौन सा ऑर्डर दिया, आपको उन्हें जोड़ना होगा। SELECT u.first_name, u.email, o.order_id FROM users AS u JOIN orders AS o ON u.id = o.user_id; स्पष्टीकरण: कमांड JOIN तालिकाओं को जोड़ता है, और शर्त ON बताता है कि वे कहाँ जुड़ी हुई हैं (इस मामले में उपयोगकर्ता आईडी द्वारा)। चरण 6: उन्नत विषय (विकास के क्षेत्र) उद्देश्य: उन्नत अवधारणाओं से परिचित होना जो नई विश्लेषणात्मक संभावनाएँ खोलती हैं और स्वच्छ, अधिक कुशल कोड लिखने की अनुमति देती हैं। विषय स्पष्टीकरण और उपयोग का उदाहरण विंडो फ़ंक्शंस (Window Functions) ये GROUP BY की तरह पंक्तियों को "संक्षिप्त किए बिना" डेटा के उपसमूहों पर गणना करने की अनुमति देते हैं। उदाहरण: जॉइनिंग तिथि के आधार पर प्रत्येक देश में उपयोगकर्ताओं की रैंकिंग। CTE (कॉमन टेबल एक्सप्रेशंस) जटिल प्रश्नों को एक अस्थायी, नामित परिणाम बनाने के लिए `WITH` कीवर्ड का उपयोग करके संरचित करने के लिए उपयोग किया जाता है। उदाहरण: WITH PolscyUzytkownicy AS (SELECT * FROM users WHERE country = 'Poland') SELECT AVG(age) FROM PolscyUzytkownicy; भौगोलिक डेटा (GEOGRAPHY) कॉलम user_geom स्थानिक प्रश्नों की अनुमति देता है। उदाहरण: "किसी दिए गए बिंदु से 5 किमी के दायरे में सभी उपयोगकर्ताओं को खोजें" (इसके लिए ST_Distance जैसे विशेष फ़ंक्शन की आवश्यकता होती है)।