User-Defined Functions
In this page:
CREATE FUNCTION function_name(param datatype)
RETURNS return_datatype DETERMINISTIC
BEGIN
RETURN value;
END
एक User-Defined Function क्या है?
एक user-defined function reusable logic package करता है जो हमेशा exactly एक value return करता है, जो आपको इसे किसी built-in function जैसे ही सीधे एक SELECT statement की column list या WHERE clause में डालने देता है।
उदाहरण: What is a User-Defined Function?
DELIMITER //
CREATE FUNCTION FullName(first_name VARCHAR(50), last_name VARCHAR(50))
RETURNS VARCHAR(100) DETERMINISTIC
BEGIN
RETURN CONCAT(first_name, ' ', last_name);
END //
DELIMITER ;
SELECT FullName('Amit', 'Sharma');
कई Arguments वाले Functions
Functions built-in functions जैसे ही कई arguments accept कर सकते हैं, जो calculations के लिए उपयोगी है जो कई inputs combine करने पर depend करते हैं, जैसे एक price और एक percentage से discount compute करना।
उदाहरण: Functions with Multiple Arguments
DELIMITER //
CREATE FUNCTION ApplyDiscount(price DECIMAL(10,2), pct INT)
RETURNS DECIMAL(10,2) DETERMINISTIC
BEGIN
RETURN price - (price * pct / 100);
END //
DELIMITER ;
SELECT ApplyDiscount(100, 20);
Functions बनाम Stored Procedures
stored procedures से key distinction यह है कि functions को एक single value return करना ज़रूरी है और उन्हें किसी query के अंदर से call किया जाता है, जबकि procedures को CALL से invoke किया जाता है और वे कई result sets या कोई नहीं return कर सकती हैं।
उदाहरण: Functions vs Stored Procedures
-- A function returns exactly one value and can be used in a SELECT list:
SELECT ApplyDiscount(100, 20);
-- A procedure is invoked with CALL and can return multiple result sets:
CALL GetAllUsers();
एक Function Drop करना
DROP FUNCTION database schema से permanently एक user-defined function हटाता है, बिल्कुल जैसे DROP PROCEDURE एक stored procedure हटाता है।
उदाहरण: Dropping a Function
DROP FUNCTION IF EXISTS ApplyDiscount;
Deterministic और Non-Deterministic
एक deterministic mark किया गया function same inputs के लिए हमेशा same output produce करता है, जबकि एक non-deterministic वाला — जैसे current time पढ़ने वाला — identical arguments के साथ भी हर call पर अलग results return कर सकता है।
उदाहरण: Deterministic and Non-Deterministic
DELIMITER //
CREATE FUNCTION CurrentYear() RETURNS INT NOT DETERMINISTIC
BEGIN
RETURN YEAR(NOW());
END //
DELIMITER ;
SELECT CurrentYear();
RETURNSभूल जाना, या function body के अंदर एकRETURNstatement।DETERMINISTIC(याREADS SQL DATA) छोड़ देना, जो binary logging enabled होने पर एक error का कारण बनता है।- किसी function के लिए
CALLइस्तेमाल करना, जबकि functionsSELECT FullName(...)जैसे expressions के अंदर इस्तेमाल होते हैं।
Chapter Quiz — Complete all 5 topics to unlock
0/5 topics done
Complete these topics first: