ตอนที่ 2 : การสร้าง Parameters บน MySQL (MySQL

พฤษภาคม 11, 2018 7:07 am โดย admin
0
6

ตอนที่ 2 : การสร้าง Parameters บน MySQL (MySQL : Stored Procedure) ในการเขียน MySQL กับ Stored Procedure สิ่งที่ขาดไม่ได้เลยคือ Parameters ซึ่งความหมายของ Parameters ก็จะเหมือนกับการเขียนโปรแกรมในภาษาอื่น ๆ ในรูปแบบของ Method หรือ Function คือ Parameters จะเป็นเหมือนค่าตัวแปรที่รอรับและจำเป็นจะต้องส่งมาพร้อมกับการเรียกใช้งาน Stored Procedure และภายใน Stored Procedure ก็จะนำค่า Parameters หรือตัวแปรเหล่านี้ไปใช้งานต่อไป

โครงสร้างของตาราง customer และ country

Table : customer

Stored Procedure บน MySQL

Syntax Parameters รูปแบบการสร้าง Parameters บน Stored Procedure

1.DROP PROCEDURE IF EXISTS Procedure_Name;
2. 
3.DELIMITER //
4.CREATE PROCEDURE Procedure_Name(IN Param1 DataType(size),IN Param2 DataType(size),)
5.BEGIN
6. 
7.END //
8.DELIMITER ;

Example 1 : การสร้าง Parameters และการส่งค่า Parameters ไปยัง Stored Procedure

1.DROP PROCEDURE IF EXISTS getCustomer;
2. 
3.DELIMITER //
4.CREATE PROCEDURE getCustomer(IN pCountryCode VARCHAR(2))
5.BEGIN
6.SELECT FROM customer WHERE COUNTRY_CODE = pCountryCode;
7.END //
8.DELIMITER ;

ในตัอย่างนี้สร้าง Parameters ชือว่า pCountryCode กำหนดชนิดแบบ VARCHAR(2) 

1.CALL getCustomer('US');

และนำค่าไป COUNTRY_CODE = pCountryCode

Result
Stored Procedure บน MySQL

Example 2 : การสร้าง Parameters ที่มากกว่า 1 ค่า และการส่งค่า Parameters ไปยัง Stored Procedure

1.DROP PROCEDURE IF EXISTS getCustomer;
2. 
3.DELIMITER //
4.CREATE PROCEDURE getCustomer(IN pCountryCode VARCHAR(2),IN pUsed DECIMAL(18,2))
5.BEGIN
6.SELECT FROM customer WHERE COUNTRY_CODE = pCountryCode AND USED >= pUsed;
7.END //
8.DELIMITER ;

ในตัอย่างนี้สร้าง Parameters ชือว่า pCountryCode กำหนดชนิดแบบ VARCHAR(2) และ pUsed แบบ DECIMAL

1.CALL getCustomer('US','500000');

และนำค่าไป COUNTRY_CODE = pCountryCode และ USED >= pUsed

Result
Stored Procedure บน MySQL

Example 3 : การสร้าง Parameters และการแบบ PREPARE ตัว SQL Statement ก่อนที่จะ Query

01.DROP PROCEDURE IF EXISTS getCustomer;
02. 
03.DELIMITER //
04.CREATE PROCEDURE getCustomer(IN pCountryCode VARCHAR(2),IN pUsed DECIMAL(18,2))
05.BEGIN
06. 
07.SET @sCountryCode = pCountryCode;
08.SET @sUsed = pUsed;
09.PREPARE id FROM
10.'SELECT * FROM customer WHERE COUNTRY_CODE = ? AND USED >= ?';
11.EXECUTE id USING @sCountryCode,@sUsed;
12.DEALLOCATE PREPARE id;
13. 
14.END //
15.DELIMITER ;
1.CALL getCustomer('US','500000');

การสร้าง Parameters บน phpMyAdmin

Stored Procedure บน MySQL

เลือก Routines -> add routine

Stored Procedure บน MySQL

จะเห็นว่าบน phpMyAdmin สามารถทำการ Add Parameters ผ่านหน้าจอนี้ได้เลย

1.BEGIN
2.SELECT FROM customer
3.WHERE COUNTRY_CODE = pCountryCode
4.AND USED >=pUsed;
5.END

เมื่อทำการ Add Parameters แล้วสามารถนำมา Where ที่ Statement ได้เลย

แหล่งที่มา : thaicreate.com/tutorial