प्रक्रियाएं (Procedures) और कार्य (Functions) SQL में दो महत्वपूर्ण प्रोग्रामिंग तत्व हैं, जो डेटाबेस में जटिल कार्यों को निष्पादित करने और कोड को पुन: उपयोग करने की सुविधा प्रदान करते हैं। ये तत्व हमें डेटाबेस में स्टोर किए गए प्रोग्रामेटिक लॉजिक को परिभाषित करने और निष्पादित करने की अनुमति देते हैं। इस अध्याय में, हम प्रक्रियाओं और कार्यों की अवधारणा, उनके निर्माण और उपयोग की प्रक्रिया, और उनके लाभों और सीमाओं को विस्तार से समझेंगे। इस अध्याय के अंत तक, आप SQL में प्रक्रियाओं और कार्यों का प्रभावी ढंग से उपयोग करने में सक्षम हो जाएंगे, जिससे आपके डेटाबेस एप्लिकेशन अधिक मजबूत और कुशल बनेंगे।
प्रक्रियाएं: स्टोर प्रक्रियाओं का परिचय और निर्माण
प्रक्रियाएं (Procedures) SQL में एक महत्वपूर्ण तत्व हैं, जो हमें डेटाबेस में जटिल कार्यों को निष्पादित करने और कोड को पुन: उपयोग करने की सुविधा प्रदान करती हैं। स्टोर प्रक्रियाएं (Stored Procedures) डेटाबेस में संग्रहीत प्रोग्रामेटिक लॉजिक होती हैं, जिन्हें बार-बार निष्पादित किया जा सकता है। यह हमें जटिल क्वेरीज और ऑपरेशन्स को एक बार लिखकर कई बार उपयोग करने की अनुमति देती हैं।
स्टोर प्रक्रियाओं का परिचय (Introduction to Stored Procedures)
स्टोर प्रक्रियाएं डेटाबेस में संग्रहीत होती हैं और सर्वर पर निष्पादित होती हैं। वे एक या एक से अधिक SQL स्टेटमेंट्स का समूह होती हैं, जिन्हें एक नाम के तहत संग्रहीत किया जाता है और आवश्यकता पड़ने पर बुलाया जा सकता है।
लाभ (Benefits):
- प्रदर्शन में सुधार (Improved Performance): स्टोर प्रक्रियाएं सर्वर पर संग्रहीत होती हैं और सीधे सर्वर पर निष्पादित होती हैं, जिससे नेटवर्क ट्रैफिक कम होता है और प्रदर्शन में सुधार होता है।
- सुरक्षा (Security): स्टोर प्रक्रियाएं डेटाबेस स्तर पर सुरक्षा नियंत्रण प्रदान करती हैं, जिससे डेटा की सुरक्षा बढ़ जाती है।
- कोड का पुन: उपयोग (Code Reusability): एक बार लिखी गई स्टोर प्रक्रियाओं को बार-बार उपयोग किया जा सकता है, जिससे कोड का पुन: उपयोग बढ़ता है और विकास का समय कम होता है।
स्टोर प्रक्रियाओं का निर्माण (Creating Stored Procedures)
स्टोर प्रक्रियाएं बनाने के लिए CREATE PROCEDURE
स्टेटमेंट का उपयोग किया जाता है। इसमें प्रक्रिया का नाम, इनपुट और आउटपुट पैरामीटर्स, और प्रक्रिया का शरीर (body) शामिल होता है।
सिंटैक्स (Syntax):
CREATE PROCEDURE procedure_name (parameter1 datatype, parameter2 datatype, ...) BEGIN -- SQL statements END;
उदाहरण (Example): मान लीजिए हम एक स्टोर प्रक्रिया बनाना चाहते हैं जो एक छात्र की जानकारी जोड़ती है।
CREATE PROCEDURE AddStudent (IN studentName VARCHAR(100), IN studentAge INT, IN studentClassID INT) BEGIN INSERT INTO students (name, age, class_id) VALUES (studentName, studentAge, studentClassID); END;
स्टोर प्रक्रियाओं को बुलाना (Calling Stored Procedures)
एक बार जब स्टोर प्रक्रिया बनाई जाती है, तो इसे CALL
स्टेटमेंट का उपयोग करके बुलाया जा सकता है।
सिंटैक्स (Syntax):
CALL procedure_name (parameter1, parameter2, ...);
उदाहरण (Example):
CALL AddStudent('John Doe', 18, 1);
स्टोर प्रक्रियाओं का प्रबंधन (Managing Stored Procedures)
- संशोधन (Modifying): एक स्टोर प्रक्रिया को संशोधित करने के लिए, पहले उसे ड्रॉप करना और फिर उसे पुनः बनाना आवश्यक होता है।
- हटाना (Dropping): एक स्टोर प्रक्रिया को हटाने के लिए
DROP PROCEDURE
स्टेटमेंट का उपयोग किया जाता है।
उदाहरण (Example):
DROP PROCEDURE IF EXISTS AddStudent;
स्टोर प्रक्रियाओं के उदाहरण (Examples of Stored Procedures)
- डेटा अद्यतन करना (Updating Data):
CREATE PROCEDURE UpdateStudentAge (IN studentID INT, IN newAge INT) BEGIN UPDATE students SET age = newAge WHERE id = studentID; END;
- डेटा हटाना (Deleting Data):
CREATE PROCEDURE DeleteStudent (IN studentID INT) BEGIN DELETE FROM students WHERE id = studentID; END;
कार्य: उपयोगकर्ता-परिभाषित कार्यों का परिचय और निर्माण
उपयोगकर्ता-परिभाषित कार्य (User-Defined Functions) SQL में एक शक्तिशाली सुविधा हैं, जो हमें कस्टम कार्यों को परिभाषित करने और उन्हें बार-बार उपयोग करने की अनुमति देती हैं। ये कार्य किसी भी डेटाबेस में संग्रहीत हो सकते हैं और जटिल गणनाओं या डेटा प्रोसेसिंग को सरल और पुन: उपयोग करने योग्य बनाते हैं। इस सेक्शन में, हम उपयोगकर्ता-परिभाषित कार्यों का परिचय और उनके निर्माण की प्रक्रिया को विस्तार से समझेंगे।
उपयोगकर्ता-परिभाषित कार्यों का परिचय (Introduction to User-Defined Functions)
उपयोगकर्ता-परिभाषित कार्य (UDF) एक कस्टम SQL कार्य है जिसे उपयोगकर्ता द्वारा परिभाषित किया जाता है। ये कार्य एक या अधिक इनपुट पैरामीटर्स लेते हैं और एक सिंगल वैल्यू रिटर्न करते हैं। UDF का उपयोग जटिल गणनाओं, डेटा प्रोसेसिंग, और विश्लेषणात्मक कार्यों के लिए किया जाता है।
लाभ (Benefits):
- पुन: उपयोग (Reusability): एक बार परिभाषित किए गए कार्यों को बार-बार उपयोग किया जा सकता है, जिससे कोड का पुन: उपयोग बढ़ता है और विकास का समय कम होता है।
- सरलीकरण (Simplification): जटिल गणनाओं और डेटा प्रोसेसिंग को सरल बनाता है।
- संगति (Consistency): सभी क्वेरीज में एक ही कार्य का उपयोग करके संगति बनाए रखता है।
उपयोगकर्ता-परिभाषित कार्यों का निर्माण (Creating User-Defined Functions)
उपयोगकर्ता-परिभाषित कार्य बनाने के लिए CREATE FUNCTION
स्टेटमेंट का उपयोग किया जाता है। इसमें कार्य का नाम, इनपुट पैरामीटर्स, रिटर्न टाइप, और कार्य का शरीर (body) शामिल होता है।
सिंटैक्स (Syntax):
CREATE FUNCTION function_name (parameter1 datatype, parameter2 datatype, ...) RETURNS return_datatype BEGIN -- SQL statements RETURN return_value; END;
उदाहरण (Example): मान लीजिए हम एक उपयोगकर्ता-परिभाषित कार्य बनाना चाहते हैं जो दो संख्याओं का योग निकालता है।
CREATE FUNCTION AddNumbers (num1 INT, num2 INT) RETURNS INT BEGIN RETURN num1 + num2; END;
उपयोगकर्ता-परिभाषित कार्यों को बुलाना (Calling User-Defined Functions)
एक बार जब कार्य बनाया जाता है, तो इसे SQL क्वेरीज में बुलाया जा सकता है जैसे कि किसी अन्य SQL कार्य को बुलाया जाता है।
सिंटैक्स (Syntax):
SELECT function_name (parameter1, parameter2, ...);
उदाहरण (Example):
SELECT AddNumbers(10, 20) AS SumResult;
उपयोगकर्ता-परिभाषित कार्यों के उदाहरण (Examples of User-Defined Functions)
- सरल गणना (Simple Calculation):
CREATE FUNCTION CalculateSquare (num INT) RETURNS INT BEGIN RETURN num * num; END;
- स्ट्रिंग प्रोसेसिंग (String Processing):
CREATE FUNCTION GetInitials (fullName VARCHAR(100)) RETURNS VARCHAR(10) BEGIN RETURN CONCAT(LEFT(fullName, 1), '.', SUBSTRING_INDEX(fullName, ' ', -1)); END;
- डेटा प्रोसेसिंग (Data Processing):
CREATE FUNCTION CalculateDiscountedPrice (price DECIMAL(10, 2), discountRate DECIMAL(5, 2)) RETURNS DECIMAL(10, 2) BEGIN RETURN price - (price * discountRate / 100); END;
उपयोगकर्ता-परिभाषित कार्यों का प्रबंधन (Managing User-Defined Functions)
- संशोधन (Modifying): एक उपयोगकर्ता-परिभाषित कार्य को संशोधित करने के लिए, पहले उसे ड्रॉप करना और फिर उसे पुनः बनाना आवश्यक होता है।
- हटाना (Dropping): एक उपयोगकर्ता-परिभाषित कार्य को हटाने के लिए
DROP FUNCTION
स्टेटमेंट का उपयोग किया जाता है।
उदाहरण (Example):
DROP FUNCTION IF EXISTS AddNumbers;