What is a Stored Procedure in SQL?
A Stored Procedure in SQL is a precompiled collection of SQL statements stored inside the database.
In simple words:
A stored procedure is a reusable SQL program that performs specific database operations.
Why Stored Procedures are Important
In enterprise applications:
- Same SQL queries are executed repeatedly
- Business logic is reused across applications
- Complex database operations are common
Stored procedures help:
- Reuse SQL logic
- Improve performance
- Reduce network traffic
- Increase security
- Centralize business logic
Simple Real-Life Example
Think about:
- A calculator function
Instead of:
- Writing same calculation repeatedly
You:
- Create reusable function once
Same concept applies to:
Stored Procedures
What Does Stored Procedure Contain?
Stored procedure may contain:
- SELECT statements
- INSERT statements
- UPDATE statements
- DELETE statements
- Conditional logic
- Loops
- Error handling
Stored Procedure Internal Architecture
Application Request
|
v
Call Stored Procedure
|
v
Database Executes Stored Logic
|
v
Return Result
How Stored Procedure Works
Database:
- Stores SQL logic permanently
- Compiles procedure
- Executes procedure when called
Why Stored Procedures are Faster
Because:
- Execution plans are precompiled
- Less SQL parsing required
Basic Stored Procedure Syntax
CREATE PROCEDURE procedure_name()
BEGIN
SQL statements;
END;
Simple Example
CREATE PROCEDURE GetStudents()
BEGIN
SELECT *
FROM students;
END;
How to Execute Stored Procedure
CALL GetStudents();
Result
| Student ID | Name |
|---|---|
| 1 | Naresh |
| 2 | Rahul |
| 3 | Arjun |
Stored Procedure with Parameters
Stored procedures can accept:
- Input parameters
Example
CREATE PROCEDURE GetStudentById(
IN studentId INT
)
BEGIN
SELECT *
FROM students
WHERE student_id = studentId;
END;
Execution
CALL GetStudentById(2);
Result
| Student ID | Name |
|---|---|
| 2 | Rahul |
Stored Procedure Query Flow
User Calls Procedure
|
v
Database Receives Request
|
v
Execute Precompiled SQL Logic
|
v
Return Result
Types of Parameters in Stored Procedure
- IN Parameter
- OUT Parameter
- INOUT Parameter
1. IN Parameter
Used to:
- Pass values into procedure
Example
IN studentId INT
2. OUT Parameter
Used to:
- Return values from procedure
Example
CREATE PROCEDURE GetStudentCount(
OUT totalStudents INT
)
BEGIN
SELECT COUNT(*)
INTO totalStudents
FROM students;
END;
3. INOUT Parameter
Used for:
- Both input and output
Stored Procedure with INSERT Example
CREATE PROCEDURE AddStudent(
IN studentName VARCHAR(100)
)
BEGIN
INSERT INTO students(name)
VALUES(studentName);
END;
Execution
CALL AddStudent('David');
Stored Procedure with UPDATE Example
CREATE PROCEDURE UpdateCourse(
IN studentId INT,
IN courseName VARCHAR(100)
)
BEGIN
UPDATE students
SET course = courseName
WHERE student_id = studentId;
END;
Stored Procedure with DELETE Example
CREATE PROCEDURE DeleteStudent(
IN studentId INT
)
BEGIN
DELETE FROM students
WHERE student_id = studentId;
END;
Conditional Logic in Stored Procedure
Stored procedures support:
- IF conditions
- CASE statements
- Loops
Example
CREATE PROCEDURE CheckMarks(
IN marks INT
)
BEGIN
IF marks >= 35 THEN
SELECT 'PASS';
ELSE
SELECT 'FAIL';
END IF;
END;
Loop Example
WHILE condition DO
SQL statements;
END WHILE;
Error Handling in Stored Procedures
Stored procedures support:
- Exception handling
- Error management
Example
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
END;
Advantages of Stored Procedures
1. Better Performance
Because:
- Precompiled execution plans are reused
2. Code Reusability
Same logic reused across:
- Applications
- Reports
- APIs
3. Improved Security
Applications can:
- Call procedures without direct table access
4. Reduced Network Traffic
Instead of sending:
- Large SQL queries repeatedly
Applications send:
- Procedure call only
5. Centralized Business Logic
Business rules managed:
- Inside database
Disadvantages of Stored Procedures
- Database dependency increases
- Difficult debugging
- Vendor-specific syntax differences
- Complex maintenance in huge systems
Stored Procedures vs Functions
| Feature | Stored Procedure | Function |
|---|---|---|
| Returns Value | Optional | Mandatory |
| Can Modify Data | Yes | Usually No |
| Called Using | CALL | SELECT |
| Complex Logic | Supported | Limited |
Stored Procedures vs Views
| Feature | Stored Procedure | View |
|---|---|---|
| Stores Logic | Yes | Query Only |
| Parameters Supported | Yes | No |
| Can Modify Data | Yes | Limited |
Real-Time Banking Example
Banking systems use stored procedures for:
- Money transfer
- Balance updates
- Transaction processing
Example
Transfer Amount Between Accounts
Why Stored Procedures?
- Transaction safety
- Atomic operations
- Centralized validation
Real-Time E-Commerce Example
E-commerce platforms use stored procedures for:
- Order processing
- Inventory updates
- Payment handling
Example
Place Order Procedure
Real-Time Learning Platform Example
Learning platforms use stored procedures for:
- Student enrollment
- Course completion updates
- Certificate generation
Stored Procedures in Microservices
Microservices sometimes use stored procedures for:
- High-performance database operations
- Complex reporting
- Transactional workflows
Example
CALL ProcessMonthlyReport();
Performance Consideration
Stored procedures improve:
- Execution efficiency
But excessive business logic inside database may:
- Reduce maintainability
Best Practices
- Use meaningful procedure names
- Keep procedures modular
- Use proper exception handling
- Optimize SQL queries inside procedures
- Document business logic clearly
Common Interview Mistake
Many developers think:
- Stored procedures are only for SELECT queries
Reality
Stored procedures support:
- INSERT
- UPDATE
- DELETE
- Transactions
- Loops
- Conditions
Related Learning Topics
- What is a Function in SQL?
- What is a Trigger in SQL?
- What is a View in SQL?
- MySQL Performance Optimization
- What is Transaction Management in SQL?
Professional Interview Answer
A Stored Procedure in SQL is a precompiled collection of SQL statements stored inside the database and executed as a single unit. Stored procedures are used to encapsulate reusable business logic, improve performance, enhance security, reduce network traffic, and centralize database operations. They support parameters, conditional logic, loops, transactions, and error handling. Stored procedures are widely used in enterprise applications such as banking systems, e-commerce platforms, reporting systems, and microservices architectures for high-performance and secure database processing.
Why Interviewers Like This Answer
- Clearly explains reusable database logic
- Includes performance optimization concepts
- Shows transaction and security understanding
- Provides enterprise-level examples
- Explains real-world usage scenarios
Frequently Asked Questions
What is a stored procedure?
A stored procedure is a precompiled collection of SQL statements stored inside the database.
Why stored procedures are used?
Stored procedures improve performance, security, and code reusability.
Can stored procedures accept parameters?
Yes, stored procedures support IN, OUT, and INOUT parameters.
Can stored procedures modify data?
Yes, stored procedures can perform INSERT, UPDATE, and DELETE operations.
How are stored procedures executed?
Stored procedures are executed using the CALL statement.