MYSQL Function In Hindi.

हेलो दोस्तों आज के इस ब्लॉग पोस्ट(MYSQL Function In Hindi) में हम आपको mysql stored FUNCTION के बारे जानकारी देने वाले है |

इस ब्लॉग पोस्ट में हम आपको एक example के साथ यह बताएँगे कि mysql में Create FUNCTION statement की मदद से हम FUNCTION को कैसे क्रिएट करते है |MYSQL Function In Hindi|

stored FUNCTION जो होते है वो एक स्पेशल तरह के stored program होते है जो कि एक सिंगल वैल्यू को Return करते है |MYSQL Function In Hindi|

आम तौर पर stored FUNCTION का उपयोग हम उन common formulas और business logics को एक साथ लिखने के लिए करते है जिसे हम sql के अंदर बार बार use कर सकते है |MYSQL Function In Hindi|

यह stored FUNCTION जो है वो stored procedure से डिफ़्फरेंट होते है और इन स्टोर्ड फंक्शन को हम sql एक्सप्रेशन के साथ उपयोग कर सकते है फिर वो चाहे जहाँ पर भी लिखे गए हो | और इसका यही फीचर procedure की readability और maintainability बढ़ाता है |

STORED FUNCTION को क्रिएट करने के लिए हम Create FUNCTION का उपयोग करते है |

MySQL CREATE FUNCTION SYNTAX :

नीचे आप basic stored FUNCTION का syntax देख सकते है |

DELIMITER $$

CREATE FUNCTION function_name(
    param1,
    param2,…
)
RETURNS datatype
[NOT] DETERMINISTIC
BEGIN
 -- statements
END $$

DELIMITER ;

In this syntax: Create FUNCTION स्टेटमेंट के बाद सबसे पहले आप FUNCTION का नाम specify करिये जिसे आप Create करना चाहते है |

parameters , FUNCTION नाम के बाद parantheses का उपयोग करके उसमे सारे parameters को लिखिए | by default सभी पैरामीटर्स IN होते है इसलिए आप IN , OUT , अथवा INOUT पैरामीटर्स को specify नहीं कर सकते है |

तीसरा काम यह है की Return स्टेटमेंट में Return value का डाटा टाइप specify करिये जो कोई भी valid mysql data type में से हो सकता है |

चौथा यह specify करिये कि फंक्शन जो है वो deterministic है या नहीं | इसके लिए आप deterministic keyword का उपयोग कर सकते है |

जो deterministic फंक्शन होता है वो same पैरामीटर्स इनपुट के लिए same रिजल्ट Return करता है और जो non -deterministic फंक्शन होता है वो same input parameters के लिए different रिजल्ट Return करता है |

अगर deterministic अथवा non -deterministic keyword का इस्तेमाल नहीं करते है तो फिर mysql by default non -deterministic को use करता है |

और पांचबे नंबर पर आपको stored FUNCTION की बॉडी में अपना कोड लिखना है और वह कोड आपको BEGIN और END कीवर्ड के बीच में लिखना है |

और बॉडी के अंदर आपको कम से कम एक Return statement जरूर लिखना है | Return statement जो है वो calling program को एक वैल्यू Return करता है | जैसे ही प्रोग्राम Return statement तक पहुँचता है वैसे ही प्रोग्राम तुरंत ही टर्मिनेट हो जाता है |

MySQL CREATE FUNCTION EXAMPLE:

चलिए अब हम एक example की मदद से देखते है कि हम कैसे एक stored FUNCTION को क्रिएट करते है | और यह दिखाने के लिए हम एक डेटाबेस की customer टेबल का use करेंगे|

customer table
customer table:MYSQL Function In Hindi

यहाँ पर Create FUNCTION जो है वो एक stored FUNCTION को क्रिएट कर रहा है और यह फंक्शन जो है वो credit के बेस पर customer level को Return करता है |

DELIMITER $$

CREATE FUNCTION CustomerLevel(
	credit DECIMAL(10,2)
) 
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
    DECLARE customerLevel VARCHAR(20);

    IF credit > 50000 THEN
		SET customerLevel = 'PLATINUM';
    ELSEIF (credit >= 50000 AND 
			credit <= 10000) THEN
        SET customerLevel = 'GOLD';
    ELSEIF credit < 10000 THEN
        SET customerLevel = 'SILVER';
    END IF;
	-- return the customer level
	RETURN (customerLevel);
END$$
DELIMITER ;

अगर आप देखना चाहते है कि किसी specific डेटाबेस में कितने FUNCTION है तो आसानी से आप SHOW FUNCTION STATUS स्टेटमेंट का उपयोग करके यह देख सकते है |

SHOW FUNCTION STATUS 
WHERE db = 'classicmodels';
show function output
show function output

Calling a stored function in an SQL statement

नीचे आप देख सकते है की हम कैसे एक stored FUNCTION को call कर सकते है |

SELECT 
    customerName, 
    CustomerLevel(creditLimit)
FROM
    customers
ORDER BY 
    customerName;
calling stored function output
calling stored function output

Calling a stored function in a stored procedure

यहाँ पर आप यह देख सकते है कि कैसे हम एक stored procedure के अंदर एक फंक्शन को कॉल कर सकते है |

DELIMITER $$

CREATE PROCEDURE GetCustomerLevel(
    IN  customerNo INT,  
    OUT customerLevel VARCHAR(20)
)
BEGIN

	DECLARE credit DEC(10,2) DEFAULT 0;
    
    -- get credit limit of a customer
    SELECT 
		creditLimit 
	INTO credit
    FROM customers
    WHERE 
		customerNumber = customerNo;
    
    -- call the function 
    SET customerLevel = CustomerLevel(credit);
END$$

DELIMITER ;

यहाँ पर देख सकते है कि कैसे हम एक Getcustomerlevel stored procedure को कॉल कर सकते है |

CALL GetCustomerLevel(-131,@customerLevel);
SELECT @customerLevel;

यहाँ पर एक बात नोटिस करने की है की अगर आपके stored FUNCTION में कोई भी ऐसे क्वेरी है जो डाटा टेबल से डाटा को फेच करती है तो फिर आपको इस FUNCTION को किसी और SQL स्टेटमेंट में use नहीं करना चाहिए नहीं तो फिर यह query की speed को स्लो डाउन कर देती है |

इस ब्लॉग(MYSQL Function In Hindi) को लेकर आपके मन में कोई भी प्रश्न है तो आप हमें इस पते [email protected]पर ईमेल लिख सकते है|

आशा करता हूँ, कि आपने इस पोस्ट(MYSQL Function In Hindi) को खूब एन्जॉय किया होगा|

आप स्वतंत्रता पूर्वक अपना बहुमूल्य फीडबैक और कमेंट यहाँ पर दे सकते है|MYSQL Function In Hindi|

आपका समय शुभ हो|

Anurag

I am a blogger by passion, a software engineer by profession, a singer by consideration and rest of things that I do is for my destination.