What is a Stored Procedure
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
- User Procedure को Call करता है।
- Database Procedure को Execute करता है।
- Procedure के अंदर मौजूद SQL Statements Run होती हैं।
- 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.
💬 Leave a Comment & Rating