Professional Documents
Culture Documents
Stored Procedure
Stored Procedure
DEFINISI
ADVANTAGES
DISADVANTAGES
Difficult to debug.
Not easy to write and maintain.
STORED PROCEDURE
1 DELIMITER //
2 CREATE PROCEDURE GetAllProducts()
3 BEGIN
4 SELECT * FROM products;
5 END //
6 DELIMITER ;
INVOKE
1 CALL STORED_PROCEDURE_NAME();
1 CALL GetAllProducts();
DECLARING VARIABLES
ASSIGNING VARIABLES
The name must not be the same as the column name of tables and following
naming convention.
1 DELIMITER //
2 CREATE PROCEDURE
ObyC(IN cName VARCHAR(255))
3
BEGIN
4
SELECT city, phone
5
FROM offices
6
WHERE country = cName;
7
END //
8 DELIMITER ;
1 CALL ObyC('USA')
01 DELIMITER $$
02 CREATE PROCEDURE CountObyS (
03
IN orderStatus VARCHAR(25),
04
OUT total INT)
05
BEGIN
06
SELECT count(orderNumber)
07
INTO total
08
FROM orders
09
WHERE status = orderStatus;
10
END$$
11 DELIMITER ;
11. CALL
mhs(1,@ss);
12. SELECT @ss
CONDITIONAL
Several combinations.
1.
DELIMITER $$
1 CASE case_expression
2 WHEN when_expression THEN commands
3 WHEN when_expression THEN commands
4 ...
5 ELSE commands
6 END CASE;
DELIMITER $$
CREATE PROCEDURE `ktm`.`mhs`(
IN prod VARCHAR(25),
OUT msg VARCHAR(55))
BEGIN
DECLARE total INT DEFAULT 0;
SELECT COUNT(id_mahasiswa) INTO total FROM tb_mahasiswa
WHERE id_prodi = prod;
CASE total
WHEN total<5 THEN SET msg='Walah, cuman dikit';
WHEN total>=5 THEN SET msg='Lumayan';
END CASE;
END $$
DELIMITER ;
LOOPS
WHILE loop
1 WHILE expression DO
2 Statements
3 END WHILE;
DELIMITER $$
2. CREATE PROCEDURE `ktm`.`WhileLoopProc`()
3.
BEGIN
4.
DECLARE s INT;
5.
DECLARE str VARCHAR(255);
6.
SET s = 1;
7.
SET str = '';
8.
WHILE s <= 5 DO
9.
SET str = CONCAT(str,s,',');
10.
SET s = s + 1;
11.
END WHILE;
12.
SELECT str;
13.
END$$
14. DELIMITER ;
1.
REPEAT loop
DELIMITER $$
2. CREATE PROCEDURE `ktm`.`WhileLoopProc`()
3.
BEGIN
4.
DECLARE s INT;
5.
DECLARE str VARCHAR(255);
6.
SET s = 1;
7.
SET str = '';
8.
REPEAT
9.
SET str = CONCAT(str,x,',');
10.
SET x = x + 1;
11.
UNTIL x > 5
12.
END REPEAT;
13.
SELECT str;
14.
END$$
15. DELIMITER ;
1.