💻
⌨️
🖱️
🖥️
💾
← डैशबोर्ड पर वापस जाएँ
Font Size:

1. परिचय

MySQL में अनेक अंतर्निहित फलन (built-in functions) उपलब्ध हैं, जो डेटा पर गणितीय, स्ट्रिंग, दिनांक और अन्य संक्रियाएं करते हैं। इन फलनों का उपयोग SELECT क्वेरी में किया जाता है। फलन मूलतः दो प्रकार के होते हैं — एग्रीगेट फलन (जो समूह पर एक मान लौटाते हैं, जैसे COUNT, SUM) और स्केलर फलन (जो प्रत्येक पंक्ति पर एकल मान लौटाते हैं, जैसे ROUND, UCASE)। इस अध्याय में हम गणितीय, स्ट्रिंग और दिनांक फलनों का विस्तार से अध्ययन करेंगे।

2. गणितीय फलन (Mathematical Functions)

गणितीय फलन संख्यात्मक मानों पर संक्रियाएं करते हैं:

SELECT ROUND(15.678, 2);
SELECT POWER(2, 3);
SELECT SQRT(81);
SELECT MOD(17, 5);
SELECT ABS(-25);
SELECT GREATEST(10, 20, 15);
SELECT LEAST(10, 20, 15);
SELECT RAND();

3. स्ट्रिंग फलन (String Functions)

स्ट्रिंग (वर्ण) फलन वर्ण शृंखलाओं पर संक्रियाएं करते हैं:

SELECT UCASE('राम');
SELECT LOWER('RAMA');
SELECT LENGTH('Informatic Practices');
SELECT LEFT('कंप्यूटर', 4);
SELECT RIGHT('कंप्यूटर', 3);
SELECT SUBSTR('कंप्यूटर विज्ञान', 2, 5);
SELECT CONCAT('जय', ' ', 'हिंद');
SELECT TRIM('   हेलो   ');
SELECT REVERSE('अभ्यास');
SELECT INSTR('Informatic', 'form');

4. दिनांक और समय फलन (Date and Time Functions)

SELECT NOW();
SELECT CURDATE();
SELECT CURTIME();
SELECT DATE('2024-01-15 10:30:00');
SELECT DAY('2024-01-15');
SELECT MONTH('2024-01-15');
SELECT YEAR('2024-01-15');
SELECT DAYNAME('2024-01-15');
SELECT MONTHNAME('2024-01-15');
SELECT DATEDIFF('2024-02-01', '2024-01-15');

5. अन्य उपयोगी फलन

SELECT IF(अंक >= 80, 'उत्तीर्ण', 'अनुत्तीर्ण') FROM छात्र;
SELECT IFNULL(NULL, 'डिफ़ॉल्ट');
SELECT COALESCE(NULL, NULL, 'पहला मान');
SELECT NULLIF(5, 5);

6. एग्रीगेट फलन पुनरावलोकन

एग्रीगेट फलन पंक्तियों के समूह पर कार्य करते हैं:

SELECT COUNT(*) FROM छात्र;
SELECT SUM(अंक) FROM छात्र;
SELECT AVG(अंक) FROM छात्र;
SELECT MAX(अंक) FROM छात्र;
SELECT MIN(अंक) FROM छात्र;

ये फलन GROUP BY के साथ प्रत्येक समूह पर अलग-अलग भी लागू होते हैं। इनमें NULL मानों को अनदेखा किया जाता है (COUNT(*) को छोड़कर)।

7. फलनों का संयोजन

फलनों को नेस्ट भी किया जा सकता है:

SELECT ROUND(AVG(अंक), 1) FROM छात्र;
SELECT CONCAT(UCASE(नाम), ' - ', शहर) FROM छात्र;
SELECT YEAR(NOW());

नेस्टेड फलनों में सबसे भीतरी फलन पहले कार्य करता है। यह जटिल गणनाओं के लिए उपयोगी होता है। उदाहरण के लिए, ROUND(AVG(अंक), 1) में पहले AVG फलन सभी पंक्तियों का औसत निकालता है और फिर ROUND उस औसत को एक दशमलव स्थान तक गोल करता है। इसी प्रकार CONCAT(UCASE(नाम), ' - ', शहर) में पहले नाम को बड़े अक्षरों में बदला जाता है और फिर उसे शहर के नाम के साथ जोड़ा जाता है। नेस्टेड फलनों का उपयोग करते समय कोष्ठकों का सही मिलान अनिवार्य होता है, अन्यथा त्रुटि उत्पन्न होती है। फलनों को क्लॉज़ों के साथ भी संयोजित किया जा सकता है, जैसे SELECT * FROM छात्र WHERE YEAR(जन्मदिन) = 2005; जिससे 2005 में जन्मे छात्रों की सूची प्राप्त होती है। इसी तरह GROUP BY के साथ SELECT शहर, MAX(अंक) FROM छात्र GROUP BY शहर; प्रत्येक शहर का उच्चतम अंक दर्शाता है। यह संयोजन डेटा रिपोर्ट तैयार करने में अत्यंत सहायक है और परीक्षा में ऐसे प्रश्नों का अभ्यास अवश्य करना चाहिए। दिनांक फलनों का उपयोग जन्मदिन, भर्ती तिथि या लेन-देन की तिथि जैसे डेटा के विश्लेषण में होता है, जहां YEAR, MONTH और DAY से विशिष्ट अवधि के रिकॉर्ड निकाले जा सकते हैं। स्ट्रिंग फलनों की सहायता से नामों के प्रारूप को समान किया जा सकता है और डेटा में छिपी सूचना, जैसे किसी पते का भाग, आसानी से प्राप्त किया जा सकता है। इस प्रकार फलनों की व्यापक उपयोगिता के कारण ये MySQL का अनिवार्य अंग हैं।

8. फलनों के व्यावहारिक उपयोग

MySQL फलनों का उपयोग केवल चयन क्वेरी में ही नहीं, बल्कि WHERE, ORDER BY और GROUP BY जैसे क्लॉज़ों के साथ भी किया जाता है। उदाहरण के लिए, WHERE शर्त में SELECT * FROM छात्र WHERE MONTH(जन्मदिन) = 1; से जनवरी माह में जन्मे छात्रों की सूची प्राप्त होती है। इसी प्रकार ORDER BY LENGTH(नाम) DESC से सबसे लंबे नाम वाले छात्र पहले आते हैं। गणितीय फलनों का उपयोग वेतन, मार्कशीट और लेन-देन जैसे डेटा की गणना में होता है। स्ट्रिंग फलन डेटा की सफाई में सहायक होते हैं, जैसे TRIM() से अनावश्यक रिक्त स्थान हटाना और UPPER() से नामों को एक समान प्रारूप में लाना। दिनांक फलन रिपोर्ट तैयार करने में महत्वपूर्ण भूमिका निभाते हैं, जैसे YEAR() से वर्षवार रिकॉर्ड की गणना करना। नेस्टेड फलनों से जटिल गणनाएं एक ही क्वेरी में पूरी की जा सकती हैं, जिससे क्वेरी की दक्षता बढ़ती है। वास्तविक डेटाबेस परियोजनाओं में इन फलनों का नियमित उपयोग होता है, इसलिए विद्यार्थियों को इनके संयोजन का अभ्यास करना चाहिए। परीक्षा में प्रायः फलनों के आउटपुट की गणना करने और सही फलन चुनने से संबंधित प्रश्न पूछे जाते हैं।

त्वरित पुनरावृत्ति तालिकाएं

तालिका 1: गणितीय फलन

फलन कार्य उदाहरण
ROUND(x, d) गोल करना ROUND(15.678, 2) = 15.68
POWER(x, y) घात POWER(2, 3) = 8
SQRT(x) वर्गमूल SQRT(81) = 9
MOD(a, b) शेषफल MOD(17, 5) = 2
ABS(x) निरपेक्ष मान ABS(-25) = 25
RAND() यादृच्छिक संख्या 0 से 1 के बीच

तालिका 2: स्ट्रिंग फलन

फलन कार्य
UCASE() / UPPER() बड़े अक्षर
LOWER() छोटे अक्षर
LENGTH() वर्ण संख्या
LEFT() / RIGHT() बाएं/दाएं वर्ण
SUBSTR() भाग निकालना
CONCAT() स्ट्रिंग जोड़ना
TRIM() रिक्त स्थान हटाना

तालिका 3: दिनांक फलन

फलन कार्य
NOW() दिनांक + समय
CURDATE() केवल दिनांक
YEAR()/MONTH()/DAY() दिनांक भाग
DAYNAME() दिन का नाम
DATEDIFF() दिनों का अंतर

माइंड मैप

graph TD A["MySQL फंक्शन"] --> B["गणितीय"] A --> C["स्ट्रिंग"] A --> D["दिनांक/समय"] A --> E["अन्य"] B --> B1["ROUND, POWER, SQRT, MOD, ABS, RAND"] C --> C1["UCASE, LOWER, LENGTH, SUBSTR, CONCAT, TRIM"] D --> D1["NOW, CURDATE, YEAR, MONTH, DAY, DATEDIFF"] E --> E1["IF, IFNULL, COALESCE, NULLIF"] A --> F["एग्रीगेट: COUNT, SUM, AVG, MAX, MIN"]

महत्वपूर्ण आरेख (SVG)

गणितीय फलन उदाहरण ROUND(15.678, 2) = 15.68 POWER(2, 3) = 8 MOD(17, 5) = 2 (शेषफल) SQRT(81) = 9 Golden Rule ROUND d दशमलव स्थानों तक गोल करता है
स्ट्रिंग फलन: SUBSTR SUBSTR('कंप्यूटर विज्ञान', 2, 5) वर्ण: कं प् य ू ट र (वि...) स्थिति: 1 2 3 4 5 6 परिणाम: 'प्यूटर' अन्य उदाहरण UCASE('राम') = राम | LEFT('कंप्यूटर', 4) = कंप्यू CONCAT('जय', 'हिंद') = जयहिंद | LENGTH('abc') = 3 स्वर्ण नियम SUBSTR में स्थिति 1 से प्रारंभ होती है

सामान्य गलतियां

  1. SUBSTR की स्थिति: SUBSTR में वर्ण स्थिति 1 से प्रारंभ होती है, 0 से नहीं। इसे भूलना सामान्य गलती है।
  2. MOD और % में भ्रम: MOD(17, 5) शेषफल लौटाता है, भागफल नहीं। कई विद्यार्थी भागफल लिख देते हैं।
  3. ROUND के दूसरे तर्क का अर्थ: ROUND(15.678, 2) में 2 का अर्थ दशमलव स्थानों की संख्या है, न कि कुल अंक।
  4. LENGTH सोचना कि यह केवल अंग्रेजी के लिए है: LENGTH बाइट्स में गिनता है; Devanagari वर्णों में यह प्रति वर्ण अधिक बाइट गिन सकता है। परीक्षा में ASCII स्ट्रिंग अधिक सामान्य है।
  5. UCASE और LOWER का गलत उपयोग: UCASE से बड़े अक्षर होते हैं, LOWER से छोटे। दोनों को उलटना आम गलती है।
  6. CURDATE और NOW में भ्रम: CURDATE केवल दिनांक देता है, NOW दिनांक और समय दोनों।
  7. DATEDIFF के तर्कों का क्रम: DATEDIFF(d1, d2) में पहला तर्क बाद की दिनांक रखने पर धनात्मक परिणाम मिलता है।

परीक्षा युक्तियां

  1. नेस्टेड फलनों में भीतर से बाहर की ओर मूल्यांकन होता है — पहले आंतरिक फलन।
  2. गणितीय फलनों के मान याद रखें — POWER(2,3)=8, SQRT(81)=9, MOD(17,5)=2।
  3. स्ट्रिंग फलनों के परिणाम याद रखें — LEFT('कंप्यूटर', 4) = 'कंप्यू'।
  4. दिनांक फलन YEAR, MONTH, DAY दिनांक के भाग निकालते हैं।
  5. IF फलन शर्त के अनुसार दो में से एक मान लौटाता है।
  6. एग्रीगेट फलन NULL को अनदेखा करते हैं, COUNT(*) को छोड़कर।

निष्कर्ष

इस अध्याय में हमने MySQL के विभिन्न अंतर्निहित फलनों का अध्ययन किया। गणितीय फलन (ROUND, POWER, SQRT, MOD, ABS, RAND) संख्यात्मक गणनाओं में, स्ट्रिंग फलन (UCASE, LOWER, LENGTH, SUBSTR, CONCAT, TRIM) वर्ण शृंखला के प्रसंस्करण में और दिनांक फलन (NOW, CURDATE, YEAR, MONTH, DATEDIFF) दिनांकों के विश्लेषण में सहायक होते हैं। इसके अलावा IF, IFNULL, COALESCE जैसे फलन डेटा को सशर्त रूप से संसाधित करते हैं। इन फलनों का सही उपयोग डेटा प्रश्नों को तेजी से हल करने में महत्वपूर्ण भूमिका निभाता है। फलनों को WHERE, ORDER BY और GROUP BY जैसे क्लॉज़ों के साथ संयोजित करने से जटिल रिपोर्टें भी आसानी से तैयार की जा सकती हैं। एग्रीगेट फलनों की समझ समूहीकृत डेटा के विश्लेषण में विशेष रूप से उपयोगी है। प्रत्येक फलन के आउटपुट की गणना का अभ्यास परीक्षा के दृष्टिकोण से अत्यंत लाभदायक है, क्योंकि ऐसे प्रश्न नियमित रूप से पूछे जाते हैं। अगले अध्याय में हम कंप्यूटर नेटवर्क की अवधारणाओं का अध्ययन करेंगे।