Categories

Advertisement
⏱️ 5 min read

What is a Stored Procedure

N
By NotesMind
Advertisement

A Stored Procedure is a pre-written SQL program that is stored inside the database. It contains one or more SQL statements that can be executed whenever required.

Instead of writing the same SQL queries repeatedly, you create a Stored Procedure once and simply call it whenever you need it.

आसान भाषा में (Hindi)

Stored Procedure Database के अंदर Save किया गया एक SQL Program होता है। इसमें एक या एक से अधिक SQL Statements होती हैं।

एक बार Procedure बना देने के बाद, बार-बार वही SQL Query लिखने की ज़रूरत नहीं होती। आपको केवल Procedure को Call करना होता है।

Simple Definition:
Stored Procedure = Saved SQL Program + Reusable SQL Code


Why Do We Need Stored Procedures?

मान लीजिए किसी Company में रोज़ Employee की Information निकालनी होती है।

हर बार यह Query लिखना पड़े:

SELECT * FROM Employee WHERE EmployeeID = 101;

अगर यही Query 500 बार चलानी हो, तो बार-बार लिखना समय की बर्बादी होगी।

इस समस्या का समाधान है Stored Procedure

Procedure एक बार बनाइए और फिर केवल Call कीजिए।


Real-Life Example

मान लीजिए एक Bank में हर दिन Customer का Balance Check करना होता है।

Without Stored Procedure

Employee

↓

Writes SQL Query

↓

Database

↓

Result

हर बार Query लिखनी पड़ेगी।


With Stored Procedure

Employee

↓

CALL CheckBalance()

↓

Stored Procedure

↓

Database

↓

Result

अब केवल Procedure Call होगा और Database Result दे देगा।


How Stored Procedure Works


 
             User / Application
                     │
                     ▼
          CALL Stored Procedure
                     │
                     ▼
          Stored Procedure Executes
                     │
                     ▼
          SQL Statements Run
                     │
                     ▼
              Return Result

Working Process

  1. User Procedure को Call करता है।
  2. Database Procedure को Execute करता है।
  3. Procedure के अंदर मौजूद SQL Statements Run होती हैं।
  4. Result User को वापस मिल जाता है।

Syntax of Stored Procedure (MySQL)

DELIMITER $$

CREATE PROCEDURE ProcedureName()

BEGIN

-- SQL Statements

END $$

DELIMITER ;

Explanation

  • CREATE PROCEDURE → नया Procedure बनाता है।
  • ProcedureName() → Procedure का नाम।
  • BEGIN → Procedure की शुरुआत।
  • END → Procedure का अंत।
  • DELIMITER → MySQL को बताता है कि Procedure कहाँ समाप्त होगा।

Example 1: Create a Simple Stored Procedure

Employee Table

EmployeeID EmployeeName Department Salary
101 Rahul IT 50000
102 Aman HR 45000
103 Neha Sales 60000

Create Procedure


 
DELIMITER $$

CREATE PROCEDURE GetEmployees()

BEGIN

SELECT *
FROM Employee;

END $$

DELIMITER ;

Explanation

इस Procedure के अंदर केवल एक Query लिखी गई है।

SELECT *
FROM Employee;

अब जब भी Employee Table का पूरा Data चाहिए होगा, Query दोबारा नहीं लिखनी पड़ेगी।


Execute Stored Procedure

Procedure Execute करने के लिए:

CALL GetEmployees();

Output

EmployeeID EmployeeName Salary
101 Rahul 50000
102 Aman 45000
103 Neha 60000

Example 2: Stored Procedure with IN Parameter

अब मान लीजिए हमें किसी एक Employee की Information चाहिए।

Create Procedure

DELIMITER $$

CREATE PROCEDURE GetEmployeeByID
(
IN EmpID INT
)

BEGIN

SELECT *
FROM Employee
WHERE EmployeeID = EmpID;

END $$

DELIMITER ;

Call Procedure

CALL GetEmployeeByID(102);

Output

EmployeeID EmployeeName Salary
102 Aman 45000

Explanation

यहाँ 102 Parameter के रूप में Procedure को भेजा गया।

Procedure उसी Employee की जानकारी Return करेगा।


Types of Parameters

Stored Procedure में तीन प्रकार के Parameters होते हैं।

1. IN Parameter

IN Parameter का उपयोग Procedure के अंदर Value भेजने के लिए किया जाता है।

IN EmpID INT

Example

CALL GetEmployeeByID(101);

यहाँ 101 IN Parameter है।


2. OUT Parameter

OUT Parameter Procedure से Value वापस Return करता है।

Example


 
DELIMITER $$

CREATE PROCEDURE GetEmployeeCount
(
OUT TotalEmployee INT
)

BEGIN

SELECT COUNT(*)
INTO TotalEmployee
FROM Employee;

END $$

DELIMITER ;

Execute

CALL GetEmployeeCount(@Total);

SELECT @Total;

Output

3

3. INOUT Parameter

यह Input भी लेता है और Output भी Return करता है।

INOUT Salary INT

Variables in Stored Procedure

Procedure के अंदर Local Variables भी बनाए जा सकते हैं।

Declare Variable

DECLARE TotalSalary INT;

Assign Value

SET TotalSalary = 50000;

IF Statement

अगर Condition True है तो एक Statement Execute होगी, नहीं तो दूसरी।

IF Salary > 50000 THEN

SELECT 'High Salary';

ELSE

SELECT 'Normal Salary';

END IF;

CASE Statement

Multiple Conditions के लिए CASE का उपयोग किया जाता है।

CASE

WHEN Salary >70000 THEN 'Excellent'

WHEN Salary >50000 THEN 'Good'

ELSE 'Average'

END;

WHILE Loop

जब तक Condition True है, Loop चलता रहेगा।

WHILE Counter <=5 DO

SET Counter = Counter +1;

END WHILE;

REPEAT Loop

कम से कम एक बार Execute होता है।


 
REPEAT

SET Counter = Counter +1;

UNTIL Counter =5

END REPEAT;

LOOP Statement

Infinite Loop होता है, जिसे LEAVE Statement से रोका जाता है।

LOOP

IF Counter =5 THEN

LEAVE;

END IF;

END LOOP;

Drop Stored Procedure

Procedure Delete करने के लिए:

DROP PROCEDURE GetEmployees;

FAQ (Schema-Ready)

Q1. What is a Stored Procedure in SQL?
A Stored Procedure is a reusable SQL program stored in the database that executes one or more SQL statements when called.

Q2. What is the difference between a Stored Procedure and a Function?
A Stored Procedure can perform database operations and return one or more result sets, while a Function typically returns a single value and is used within SQL expressions.

Q3. Why are Stored Procedures used?
Stored Procedures improve code reusability, enhance security, reduce repetitive SQL code, and simplify complex database operations.

 

Advertisement

💬 Leave a Comment & Rating