← Back to Questions
SQL

What is a stored procedure in SQL?

Learn What is a stored procedure in SQL? with simple explanations, real-time examples, interview tips and practical use cases.

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


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.

Why this SQL question is important?

This interview question helps candidates understand real-time backend development concepts, practical problem solving, coding fundamentals, system design basics and production-ready application behavior.

Practice this question carefully for Java backend roles, Spring Boot developer interviews, microservices interviews, company interviews and full-stack developer preparation.

About the Author

Naresh Kumar is a Senior Java Backend Engineer with experience building enterprise applications using Java, Spring Boot, Microservices, Docker, Kubernetes and Cloud technologies.