मुख्य सामग्री पर जाएं
SQL

SQL में उपयोगकर्ता-परिभाषित स्टोर्ड प्रोसिजर

SQL में स्टोर्ड प्रोसिजर के अलग-अलग प्रकारों की जाँच करते हुए उपयोगकर्ता-परिभाषित स्टोर्ड प्रोसिजर का उपयोग और अनुप्रयोग करना सीखें।
Olivia Smith
अपडेट किया गया · 5 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

अपना निःशुल्क खाता बनाएँ

अभ्यास और ट्रैक अपनी प्रगति को।

Google के साथ जारी रखें
जारी रखने पर, आप हमारी उपयोग की शर्तें, हमारी गोपनीयता नीति को स्वीकार करते हैं और यह भी कि आपका डेटा संयुक्त राज्य अमेरिका में संग्रहीत किया जाता है।

आप डेटाबेस के रूप में Microsoft SQL Server का उपयोग करेंगे। इस ट्यूटोरियल में शामिल अवधारणा अधिकांश Relational Database Management Systems के लिए समान है, लेकिन इनके सिंटैक्स अलग होते हैं। फिर भी यहाँ जिस विचार का उपयोग किया गया है, वह सभी डेटाबेस पर अच्छी तरह लागू होता है।

Stored Procedure, Relational Database Management System (RDBMS) में SQL कथनों का एक ब्लॉक होता है, जिसे आमतौर पर प्रोग्रामर, डेटाबेस प्रशासक (Database Administrator), डेटा विश्लेषक लिखते हैं, और इसे सहेजकर कई प्रोग्रामों में पुन: उपयोग किया जाता है। विभिन्न RDBMS के अनुसार इसके अलग-अलग प्रकार भी हो सकते हैं। हालांकि किसी भी RDBMS में पाए जाने वाले दो सबसे महत्वपूर्ण Stored Procedures निम्नलिखित हैं:

  • यूज़र-परिभाषित स्टोर्ड प्रोसिजर
  • सिस्टम स्टोर्ड प्रोसिजर

Stored Procedure एक पूर्व-संकलित (precompiled) कोड होता है जिसे संग्रहीत या कैश किया जाता है और फिर पुन: उपयोग किया जाता है। आप पुन: उपयोग के लिए कैश किया हुआ कोड रख सकते हैं, जिससे अनुरक्षण (maintainability) काफी आसान हो जाता है; यानी इसे बार-बार बदलने की ज़रूरत नहीं पड़ती, जिससे सुरक्षा बनाए रखना संभव होता है।

तालिका बनाना

अब आप table_Employees नामक तालिका निम्नानुसार बनाएंगे।

CREATE TABLE table_Employees
(
    EmployeeId INT PRIMARY KEY NOT NULL,
    EmployeeFirstName VARCHAR(25) NOT NULL,
    EmployeeLastName VARCHAR(25) NOT NULL,
    EmployeeGender VARCHAR(25) NOT NULL,
    EmployeeDepartmentID INT

)

यह तालिका किसी विशेष कंपनी के कर्मचारियों की जानकारी रखती है और इसमें निम्नलिखित कॉलम शामिल हैं:

  1. EmployeeId: यह प्राथमिक कुंजी (primary key) है जो अद्वितीय होती है और integer डेटा प्रकार की होती है, जहाँ मान स्वतः-वृद्धि (auto-increment) होते हैं।
  2. EmployeeFirstName: यह कर्मचारी का प्रथम नाम है, जो character डेटा प्रकार का है और खाली नहीं छोड़ा जा सकता।
  3. EmployeeLast Name: यह कर्मचारी का अंतिम नाम है, जो character डेटा प्रकार का है और खाली नहीं छोड़ा जा सकता।
  4. EmployeeGender: यह कर्मचारी का लिंग (Gender) दर्शाता है और यह भी character प्रकार का है।
  5. EmployeeDepartmentId: यह कर्मचारी के विभाग का आईडी है, जो integer डेटा प्रकार का है।

आप तालिका में मान दर्ज करने के लिए क्वेरी लिख सकते हैं। तालिका में मान जोड़ने की क्वेरी है:

    INSERT INTO <TABLE_NAME>(<COLUMNS_OF_TABLE>) VALUES(<CORRESPONDING_VALUES_TO_MATCH_COLUMN>)

तालिका में मान डालने के बाद, table_Employees बन जाती है।

table_Employees

यूज़र-परिभाषित स्टोर्ड प्रोसिजर बनाना

Stored Procedure आपको एक बार क्वेरी लिखने देता है, और उस क्वेरी को एक नाम दिया जाता है जिसे सहेजा जा सकता है और आवश्यकता पड़ने पर कई बार चलाया जा सकता है। क्वेरियों को निष्पादित करने पर Programmabilty->Stored Procedure नाम का एक फ़ोल्डर बनता है, और उसमें dbo.uprocGetEmployees नामक फ़ाइल होती है।

Stored Procedure बनाने का सिंटैक्स है:

CREATE PROCEDURE <<<procedure_name>>>
AS
BEGIN

   '''Required SQL Queries'''

END

आप निम्नलिखित SQL कथनों का उपयोग करके Stored Procedure बना सकते हैं।

  • CREATE PROCEDURE procedure_name
  • CREATE PROC procedure_name

साथ ही, आपको "sp_." के अलावा किसी अन्य नामकरण शैली के साथ Stored Procedure बनाना चाहिए। उदाहरण में Stored Procedure का नाम है: uprocGetEmployees।

Stored Procedure example

स्टोर्ड प्रोसिजर चलाना

Stored Procedure को चलाने के लिए आप तीन में से किसी एक तरीके का उपयोग कर सकते हैं, और इसे इस प्रकार चलाएँ:

  • EXEC <>
  • EXECUTE <>
  • <>

ऊपर दिए प्रोग्राम में, आप uprocGetEmployees नामक प्रोसिजर का उपयोग कर सकते हैं और उसे चुनकर क्वेरी चला सकते हैं।

पैरामीटर्स के साथ स्टोर्ड प्रोसिजर

Stored Procedure एकल और एकाधिक पैरामीटर्स स्वीकार कर सकता है। यदि आप पहले एकाधिक पैरामीटर्स समझ लें, तो एकल पैरामीटर्स समझना आसान होगा।

एकाधिक पैरामीटर्स के साथ Stored Procedure बनाने का सिंटैक्स:

CREATE PROCEDURE <<procedure_name>> <<procedure_parameter>>
AS
    BEGIN
            <<sql_query>>
    END

उदाहरण से दिखता है कि नीचे दिए फ़ोल्डर में परिवर्तन हुआ है।
EMPLOYEE->Programmability->Stored Procedures->dbo.uprocGetEmployessGenderAndDepartment

Stored Procedures with multiple parameters

यहाँ की अवधारणा, सामान्य प्रोग्रामिंग भाषाओं जैसे Python, Java आदि में फ़ंक्शन के समान है। ऊपर दिए प्रोग्राम में फ़ंक्शन या प्रोसिजर का नाम "uprocGetEmployeesGenderAndDepartment" है, जिसके पैरामीटर @EmployeeGender और @EmployeeDepartmentId हैं। इन्हें हमारी प्रोसिजर को आवश्यक मान पास करके "कॉल" किया जाता है, जो दो तरीकों में से किसी एक से किया जा सकता है, और नीचे समझाया गया है।

इस प्रोग्राम के पैरामीटर @EmployeeGender और @EmployeeDepartmentId हैं, जिन्हें पैरामीटर को मान पास करके "कॉल" किया जाता है।

मान निर्दिष्ट करने के दो तरीके हो सकते हैं। आप इनमें से किसी एक का उपयोग करके बहु-पैरामीटर वाले Stored Procedure को चला सकते हैं।

  • क्वेरी में पैरामीटर नाम निर्दिष्ट करके और आवश्यक मान पास करके:

मान निर्दिष्ट करना 1

  • स्थिति के आधार पर, जहाँ आपकी क्वेरी के मान Stored Procedure के पैरामीटर्स से मेल खाते हों, और आवश्यक मान पास करें:

मान निर्दिष्ट करना 2

स्टोर्ड प्रोसिजर में संशोधन

आप ALTER PROCEDURE कमांड का उपयोग करके Stored Procedure में संशोधन भी कर सकते हैं।

    ALTER PROCEDURE uprocGetEmployeesGenderAndDepartment
@EmployeeGender nvarchar(25),
@EmployeeDepartmentId int
BEGIN
    SELECT EmployeeFirstName,EmployeeGender,EmployeeDepartmentId FROM table_Employees WHERE
    EmployeeGender = @EmployeeGender AND EmployeeDepartmentId = @EmployeeDepartmentId
END

स्टोर्ड प्रोसिजर मिटाना

Stored Procedures को निम्नलिखित कमांड्स का उपयोग करके जल्दी से मिटाया जा सकता है:

DROP PROC <> DROP PROCEDURE <>

एन्क्रिप्शन के माध्यम से सुरक्षा जोड़ना

नीचे बाईं ओर दी गई तस्वीर में दिखाया गया लॉक प्रतीक बताता है कि Stored Procedure एन्क्रिप्टेड है, जिससे केवल अधिकृत लोग ही इसे एक्सेस कर सकते हैं।

एन्क्रिप्टेड Stored Procedure

निष्कर्ष

आपने अभी-अभी यूज़र स्टोर्ड प्रोसिजर की मूल बातें सीख ली हैं और यहाँ शामिल विषय अवधारणात्मक रूप से किसी भी RDBMS के समान हैं। आप DataCamp पर उनका Intermediate SQL Server कोर्स लेकर और सीख सकते हैं। साथ ही, निम्नलिखित Stored Procedures ट्यूटोरियल भी आपके सीखने में सहायक होगा।

विषय
SQL

SQL पाठ्यक्रम

कोर्स

SQL में Data Manipulation

4 घंटा
338.4K
जटिल SQL क्वेरियों में महारत हासिल करें, डेटा विज्ञान के विविध प्रश्नों के उत्तर दें और PostgreSQL में विश्लेषण के लिए मजबूत डेटा सेट तैयार करें।
विवरण देखेंपाठ्यक्रम शुरू करें

कोर्स

SQL Server परिचय

4 घंटा
173.8K
SQL Server का उपयोग करके सामान्य डेटा मैनिपुलेशन कार्य करना सीखें और इस डेटाबेस सिस्टम से सामान्य डेटा मैनिपुलेशन कार्यों में महारत हासिल करें।

अपना निःशुल्क खाता बनाएँ

अभ्यास और ट्रैक अपनी प्रगति को।

Google के साथ जारी रखें
जारी रखने पर, आप हमारी उपयोग की शर्तें, हमारी गोपनीयता नीति को स्वीकार करते हैं और यह भी कि आपका डेटा संयुक्त राज्य अमेरिका में संग्रहीत किया जाता है।
और देखें