Stored Procedure¶
๐ง What is a Stored Procedure?¶
A stored procedure is a pre-written SQL program stored inside the database that can be executed whenever needed.
It is like a function inside the database.
Instead of writing SQL again and again, you store it once and call it whenever required.
Stored Procedure = saved SQL logic inside database.
๐๏ธ Why Stored Procedures are Used?¶
Stored procedures are used to:
- Reuse SQL code
- Improve performance
- Reduce network traffic
- Add business logic in DB
- Increase security
- Automate tasks
Example: Instead of running 5 queries separately โ create one stored procedure.
๐ Advantages¶
1. Reusability¶
Write once, use many times.
2. Faster execution¶
Stored in compiled form inside DB.
3. Security¶
Users can execute procedure without direct table access.
4. Less network traffic¶
Call procedure once instead of sending multiple queries.
5. Business logic inside DB¶
Used in banking, payroll, billing systems.
๐งพ Basic Syntax (PostgreSQL)¶
CREATE OR REPLACE PROCEDURE procedure_name()
LANGUAGE plpgsql
AS $$
BEGIN
-- SQL statements
END;
$$;
๐งช Example 1 โ Simple stored procedure¶
Increase salary of all employees by 10%.
CREATE OR REPLACE PROCEDURE increase_salary()
LANGUAGE plpgsql
AS $$
BEGIN
UPDATE employees
SET salary = salary * 1.10;
END;
$$;
Call procedure:
๐งช Example 2 โ Procedure with parameters¶
Increase salary for specific employee.
CREATE OR REPLACE PROCEDURE update_salary(
emp INT,
new_sal INT
)
LANGUAGE plpgsql
AS $$
BEGIN
UPDATE employees
SET salary = new_sal
WHERE emp_id = emp;
END;
$$;
Call:
๐งช Example 3 โ Insert data using procedure¶
CREATE OR REPLACE PROCEDURE add_employee(
eid INT,
ename TEXT,
sal INT,
dept INT
)
LANGUAGE plpgsql
AS $$
BEGIN
INSERT INTO employees(emp_id,name,salary,dept_id)
VALUES(eid,ename,sal,dept);
END;
$$;
Call:
๐ Stored Procedure with IF condition¶
CREATE OR REPLACE PROCEDURE bonus_proc(emp INT)
LANGUAGE plpgsql
AS $$
DECLARE sal INT;
BEGIN
SELECT salary INTO sal FROM employees WHERE emp_id=emp;
IF sal > 70000 THEN
UPDATE employees SET salary = salary + 5000 WHERE emp_id=emp;
ELSE
UPDATE employees SET salary = salary + 2000 WHERE emp_id=emp;
END IF;
END;
$$;
Call:
๐ง Procedure vs Function¶
| Feature | Procedure | Function |
|---|---|---|
| Return value | Not required | Must return value |
| Call method | CALL proc() | SELECT func() |
| Use case | Business logic | Calculations |
โ Delete procedure¶
๐ Real-world usage¶
Stored procedures used in:
- Banking transactions
- Payroll systems
- E-commerce orders
- Batch processing
- Data migration
- Reporting systems
Every enterprise DB uses stored procedures.
โ ๏ธ Disadvantages¶
- Hard to debug
- DB dependent (MySQL/Postgres syntax differs)
- Complex logic becomes messy
- Version control difficult
๐งช Practice Tasks¶
- Create procedure to add employee
- Create procedure to delete employee
- Increase salary of all employees
- Give bonus if salary < 50000
- Count total employees using procedure
๐ง Interview Questions¶
Q1: What is stored procedure? Precompiled SQL stored in database.
Q2: Difference between function and procedure? Function returns value, procedure may not.
Q3: Why use stored procedure? Performance, security, reuse.
Q4: How to call procedure? Using CALL statement.
๐ฏ Summary¶
Stored Procedure:
- saved SQL program
- runs inside database
- reusable and fast
- used for business logic
- widely used in real production
Learning stored procedures makes you strong backend/database developer.