कक्षा ९ · एकाइ ३: जिल्ला डेटामा SQL को आधार¶
अङ्ग्रेजी संस्करण:
chapter.md। SQL का कुञ्जीशब्द (SELECT, WHERE …) अङ्ग्रेजीमै रहन्छन्। ट्र्याक: ख (कोड: SQL/SQLite) · साधन: Python भित्र SQLite (JupyterLite, Jupyter वा Colab) · पाठ: ५ डेटा:census-districts— कृत्रिम (SYNTHETIC): सङ्ख्या काल्पनिक छन्, जिल्लाका नाम (जस्तैHill-07) पनि काल्पनिक हुन्।
मुख्य विचार। SQL ले तालिकालाई लगभग सरल भाषामा प्रश्न सोध्न दिन्छ: स्तम्भ रोज्ने, पङ्क्ति छान्ने, क्रमबद्ध गर्ने, समूह बनाउने र तालिकाहरू जोड्ने।
यो एकाइपछि म सक्नेछु
- SELECT … FROM … WHERE … ORDER BY … LIMIT क्वेरी लेख्न।
- COUNT, SUM, AVG र GROUP BY ले समूहको सारांश निकाल्न।
- दुई तालिका जोडेर (JOIN) दर निकाल्न।
नोटबुक: notebooks/census_sql.ipynb (अफलाइन चल्छ, कृत्रिम तालिकामा)।
पाठ १: SELECT र WHERE¶
सुरुआत। ‘७० % भन्दा बढी साक्षरता भएका तराईका जिल्लाको सूची दिनुहोस्’ भन्ने कुरा डेटाबेसलाई कसरी भन्ने?
अवधारणा। क्वेरीका भाग हुन्छन्: SELECT (स्तम्भ) FROM (तालिका) WHERE (पङ्क्तिको सर्त)। पाठ मानलाई एकल उद्धरण चिह्नमा लेखिन्छ।
क्रियाकलाप (PRIMM)। पहिले अनुमान गर्नुहोस्, त्यसपछि चलाउनुहोस्: SELECT * FROM districts; → SELECT district, literacy_pct … → WHERE ecological_belt = 'Terai' AND literacy_pct > 70।
जाँच। १. कुन खण्डले स्तम्भ रोज्छ? (SELECT) २. कुनले केही पङ्क्ति मात्र राख्छ? (WHERE) ३. पहाडी जिल्लाको सर्त लेख्नुहोस्। (WHERE ecological_belt = 'Hill')
पाठ २: ORDER BY र LIMIT¶
सुरुआत। सबैभन्दा बढी जनसङ्ख्या भएका पाँच जिल्ला कुन-कुन हुन्?
अवधारणा। ORDER BY ले क्रमबद्ध गर्छ (ASC सानोदेखि ठूलो, DESC ठूलोदेखि सानो); LIMIT ले पहिलो n पङ्क्ति मात्र राख्छ।
क्रियाकलाप। जनसङ्ख्या र साक्षरताको शीर्ष–५ र तल–५ क्वेरी लेख्नुहोस्; साथीको नतिजासँग तुलना गर्नुहोस्।
जाँच। १. ‘क्षेत्रफल सबैभन्दा सानो ३ जिल्ला’ को क्वेरी? २. DESC को अर्थ? ३. LIMIT १० ले के गर्छ?
पाठ ३: GROUP BY र सङ्ख्यात्मक सारांश¶
सुरुआत। प्रत्येक पेटी (belt) को कुल जनसङ्ख्या कति छ? कतिवटा जिल्ला छन्?
अवधारणा। COUNT, SUM, AVG, MIN, MAX ले धेरै पङ्क्तिलाई प्रति समूह एक सङ्ख्यामा बदल्छन्। GROUP BY ले कुन समूह भन्छ।
क्रियाकलाप। पेटीअनुसार जिल्ला गन्नुहोस्, जनसङ्ख्या जोड्नुहोस्, साक्षरताको औसत निकाल्नुहोस्। नतिजामा कति पङ्क्ति आउँछन् अनुमान गर्नुहोस् (३)।
जाँच। १. ३ पेटी भए GROUP BY ले कति पङ्क्ति फर्काउँछ? (३) २. AVG(literacy_pct) ले के निकाल्छ? (समूहको औसत साक्षरता) ३. पङ्क्ति गन्ने aggregate? (COUNT(*))
पाठ ४: JOIN — तालिका जोड्ने¶
सुरुआत। जनसङ्ख्या एउटा तालिकामा, विद्यालय सङ्ख्या अर्कोमा। दुवैलाई एकैसाथ कसरी हेर्ने?
अवधारणा। JOIN ले साझा कुञ्जी (district_id) मिलाएर दुई तालिकाका पङ्क्ति जोड्छ। नामले जोड्नु जोखिमपूर्ण छ (हिज्जे फरक पर्न सक्छ) — कुञ्जी सुरक्षित हुन्छ।
क्रियाकलाप। districts र schools जोड्नुहोस्; प्रति विद्यालय जनसङ्ख्या निकाल्नुहोस्; सबैभन्दा बढी भएका ५ जिल्ला देखाउनुहोस्।
जाँच। १. हाम्रो JOIN को कुञ्जी? (district_id) २. नामले किन जोड्नु हुँदैन? (हिज्जे फरक पर्दा मेल खाँदैन) ३. ७७ + ७७ पङ्क्तिको एक-एकको JOIN ले कति पङ्क्ति दिन्छ? (७७)
पाठ ५: छोटो SQL प्रतिवेदन¶
सुरुआत। प्रधानाध्यापकले सोध्नुभयो: ‘जिल्ला र विद्यालयबारे हामीले के जान्नुपर्छ?’ तीन तथ्य दिनुहोस्।
अवधारणा। प्रतिवेदन = क्वेरी + प्रत्येक नतिजाको सरल वाक्य + एउटा सीमा।
क्रियाकलाप। एउटै विषयमा (जस्तै प्रति १,००,००० जनसङ्ख्या विद्यालय) तीनवटा क्वेरी लेख्नुहोस्, चलाउनुहोस्, र प्रत्येकको निष्कर्ष तथा सीमा लेख्नुहोस्।
जाँच। १. प्रत्येक निष्कर्षमा कुन तीन कुरा हुन्छन्? (सङ्ख्या, सरल अर्थ, सीमा) २. ‘तालिका कृत्रिम हो’ भनेर किन लेख्ने? (काल्पनिक सङ्ख्यालाई साँचो तथ्य नठानियोस् भनेर) ३. क्वेरी कसरी पुनः प्रयोगयोग्य बनाउने? (टिप्पणीसहित नोटबुकमा राख्ने)
एकाइ परियोजना: कुन जिल्ला परिवर्तन हुँदैछन्?¶
समस्या · योजना · डेटा · विश्लेषण · निष्कर्ष। एउटा सूचक रोज्नुहोस् (जस्तै प्रति १,००० मा विदेशमा रहेका, छात्राको भर्ना हिस्सा); सङ्ख्या होइन, दर प्रयोग गर्नुहोस्; कम्तीमा एउटा GROUP BY र एउटा JOIN सहित तीन SQL क्वेरी; पोस्टरमा दाबी, प्रमाण, तर्क, एउटा सीमा र डेटाको स्रोत।