MySQL में अनेक अंतर्निहित फलन (built-in functions) उपलब्ध हैं, जो डेटा पर गणितीय, स्ट्रिंग, दिनांक और अन्य संक्रियाएं करते हैं। इन फलनों का उपयोग SELECT क्वेरी में किया जाता है। फलन मूलतः दो प्रकार के होते हैं — एग्रीगेट फलन (जो समूह पर एक मान लौटाते हैं, जैसे COUNT, SUM) और स्केलर फलन (जो प्रत्येक पंक्ति पर एकल मान लौटाते हैं, जैसे ROUND, UCASE)। इस अध्याय में हम गणितीय, स्ट्रिंग और दिनांक फलनों का विस्तार से अध्ययन करेंगे।
गणितीय फलन संख्यात्मक मानों पर संक्रियाएं करते हैं:
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();
ROUND(x, d) — x को d दशमलव स्थानों तक गोल करता है।POWER(x, y) — x की y घात।SQRT(x) — वर्गमूल।MOD(a, b) — a का b से भाग देने पर शेषफल।ABS(x) — निरपेक्ष मान (ऋणात्मक धनात्मक में)।GREATEST(a, b, ...) — अधिकतम मान।LEAST(a, b, ...) — न्यूनतम मान।RAND() — 0 और 1 के बीच यादृच्छिक संख्या।स्ट्रिंग (वर्ण) फलन वर्ण शृंखलाओं पर संक्रियाएं करते हैं:
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');
UCASE(str) / UPPER(str) — सभी अक्षर बड़े।LOWER(str) — सभी अक्षर छोटे।LENGTH(str) — वर्णों की संख्या।LEFT(str, n) — बाएं से n वर्ण।RIGHT(str, n) — दाएं से n वर्ण।SUBSTR(str, start, len) — निर्दिष्ट स्थान से वर्णों का भाग।CONCAT(str1, str2, ...) — स्ट्रिंग जोड़ना।TRIM(str) — दोनों ओर के रिक्त स्थान हटाना।REVERSE(str) — स्ट्रिंग उलटना।INSTR(str, substr) — पहली बार उपस्ट्रिंग की स्थिति।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');
NOW() — वर्तमान दिनांक और समय।CURDATE() — वर्तमान दिनांक।CURTIME() — वर्तमान समय।DAY(), MONTH(), YEAR() — दिनांक के भाग।DAYNAME(), MONTHNAME() — दिन/माह का नाम।DATEDIFF(d1, d2) — दो दिनांकों के बीच दिनों का अंतर।SELECT IF(अंक >= 80, 'उत्तीर्ण', 'अनुत्तीर्ण') FROM छात्र;
SELECT IFNULL(NULL, 'डिफ़ॉल्ट');
SELECT COALESCE(NULL, NULL, 'पहला मान');
SELECT NULLIF(5, 5);
IF(शर्त, सत्य_मान, असत्य_मान) — शर्त पर आधारित मान।IFNULL(m, प्रतिस्थापन) — NULL होने पर प्रतिस्थापन मान।COALESCE(...) — पहला गैर-NULL मान।NULLIF(a, b) — a = b होने पर NULL अन्यथा a।एग्रीगेट फलन पंक्तियों के समूह पर कार्य करते हैं:
SELECT COUNT(*) FROM छात्र;
SELECT SUM(अंक) FROM छात्र;
SELECT AVG(अंक) FROM छात्र;
SELECT MAX(अंक) FROM छात्र;
SELECT MIN(अंक) FROM छात्र;
ये फलन GROUP BY के साथ प्रत्येक समूह पर अलग-अलग भी लागू होते हैं। इनमें NULL मानों को अनदेखा किया जाता है (COUNT(*) को छोड़कर)।
फलनों को नेस्ट भी किया जा सकता है:
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 का अनिवार्य अंग हैं।
MySQL फलनों का उपयोग केवल चयन क्वेरी में ही नहीं, बल्कि WHERE, ORDER BY और GROUP BY जैसे क्लॉज़ों के साथ भी किया जाता है। उदाहरण के लिए, WHERE शर्त में SELECT * FROM छात्र WHERE MONTH(जन्मदिन) = 1; से जनवरी माह में जन्मे छात्रों की सूची प्राप्त होती है। इसी प्रकार ORDER BY LENGTH(नाम) DESC से सबसे लंबे नाम वाले छात्र पहले आते हैं। गणितीय फलनों का उपयोग वेतन, मार्कशीट और लेन-देन जैसे डेटा की गणना में होता है। स्ट्रिंग फलन डेटा की सफाई में सहायक होते हैं, जैसे TRIM() से अनावश्यक रिक्त स्थान हटाना और UPPER() से नामों को एक समान प्रारूप में लाना। दिनांक फलन रिपोर्ट तैयार करने में महत्वपूर्ण भूमिका निभाते हैं, जैसे YEAR() से वर्षवार रिकॉर्ड की गणना करना। नेस्टेड फलनों से जटिल गणनाएं एक ही क्वेरी में पूरी की जा सकती हैं, जिससे क्वेरी की दक्षता बढ़ती है। वास्तविक डेटाबेस परियोजनाओं में इन फलनों का नियमित उपयोग होता है, इसलिए विद्यार्थियों को इनके संयोजन का अभ्यास करना चाहिए। परीक्षा में प्रायः फलनों के आउटपुट की गणना करने और सही फलन चुनने से संबंधित प्रश्न पूछे जाते हैं।
| फलन | कार्य | उदाहरण |
|---|---|---|
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 के बीच |
| फलन | कार्य |
|---|---|
UCASE() / UPPER() |
बड़े अक्षर |
LOWER() |
छोटे अक्षर |
LENGTH() |
वर्ण संख्या |
LEFT() / RIGHT() |
बाएं/दाएं वर्ण |
SUBSTR() |
भाग निकालना |
CONCAT() |
स्ट्रिंग जोड़ना |
TRIM() |
रिक्त स्थान हटाना |
| फलन | कार्य |
|---|---|
NOW() |
दिनांक + समय |
CURDATE() |
केवल दिनांक |
YEAR()/MONTH()/DAY() |
दिनांक भाग |
DAYNAME() |
दिन का नाम |
DATEDIFF() |
दिनों का अंतर |
IF फलन शर्त के अनुसार दो में से एक मान लौटाता है।इस अध्याय में हमने 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 जैसे क्लॉज़ों के साथ संयोजित करने से जटिल रिपोर्टें भी आसानी से तैयार की जा सकती हैं। एग्रीगेट फलनों की समझ समूहीकृत डेटा के विश्लेषण में विशेष रूप से उपयोगी है। प्रत्येक फलन के आउटपुट की गणना का अभ्यास परीक्षा के दृष्टिकोण से अत्यंत लाभदायक है, क्योंकि ऐसे प्रश्न नियमित रूप से पूछे जाते हैं। अगले अध्याय में हम कंप्यूटर नेटवर्क की अवधारणाओं का अध्ययन करेंगे।