Your Page Title
🔍

    SQL Stored Procedures

    A Stored Procedure in SQL is a precompiled set of SQL statements stored in the database. Instead of writing and executing SQL queries repeatedly, you can store them as a procedure and call them whenever needed.

    It is like a function in programming languages but for databases. Once created, you can execute it by just calling its name.


    Key Features of Stored Procedures

    • Precompiled – The procedure is compiled once and stored, making execution faster.
    • Reusable – Write once, use multiple times.
    • Secure – You can control which users can execute the procedure without giving them direct access to the underlying tables.
    • Parameter Support – Accepts input values and can return output values.

    Syntax of Stored Procedure

    CREATE PROCEDURE procedure_name
    AS
    BEGIN
        -- SQL statements
    END;
    

    In MySQL, the syntax is slightly different:

    DELIMITER //
    
    CREATE PROCEDURE procedure_name()
    BEGIN
        -- SQL statements
    END //
    
    DELIMITER ;
    

    Example 1: Simple Stored Procedure

    DELIMITER //
    
    CREATE PROCEDURE GetAllStudents()
    BEGIN
        SELECT * FROM students;
    END //
    
    DELIMITER ;
    

    Execution:

    CALL GetAllStudents();
    

    Example 2: Stored Procedure with Parameters

    DELIMITER //
    
    CREATE PROCEDURE GetStudentByID(IN student_id INT)
    BEGIN
        SELECT * FROM students WHERE id = student_id;
    END //
    
    DELIMITER ;
    

    Execution:

    CALL GetStudentByID(3);
    

    Here:

    • IN – Input parameter (value passed when calling).
    • OUT – Output parameter (value returned).
    • INOUT – Can be used for both input and output.

    Advantages of Stored Procedures

    1. Improved Performance
      • Stored procedures are compiled once and run faster than writing SQL every time.
    2. Code Reusability
      • No need to rewrite queries; just call the procedure.
    3. Security
      • Restrict users to run only specific procedures instead of giving direct table access.
    4. Reduced Network Traffic
      • Instead of sending multiple SQL queries, a single call to the stored procedure can handle the work.
    5. Maintainability
      • If a query changes, update it in one place (procedure), not in every application code.

    Disadvantages of Stored Procedures

    1. Complex Debugging
      • Troubleshooting can be harder than debugging application code.
    2. Database Dependency
      • Logic is stored inside the database, making migration to another DBMS more difficult.
    3. Version Control Issues
      • Keeping track of procedure versions can be challenging without proper tools.

    When to Use Stored Procedures

    • Repeatedly executed queries (like monthly reports).
    • Complex business logic that runs entirely on the database.
    • Data security and controlled access requirements.
    • Performance optimization for large queries.

    In short: A Stored Procedure in SQL is a powerful tool to store, secure, and reuse queries efficiently. It helps in improving performance, reducing repetitive code, and keeping your database operations organized.