ตอนที่ 15 : การสร้าง Function บน MySQL Database (MySQL : Function)

มิถุนายน 5, 2018 8:55 am โดย admin
0
14

ตอนที่ 15 : การสร้าง Function บน MySQL Database (MySQL : Function) ปกติแล้ว Function บน MySQL มีอยู่หลายตัวให้เรียกใช้งานได้เลย เช่น SUBSTRING , DATE_ADD , MOD และอื่น ๆ แต่สำหรับ Function บน MySQL ที่เราจะพูดถึง Function ที่จะสร้างขึ้นมาใช้งานเอง โดยจะมีรูปแบบเหมือนกับการเขียน Function บนโปรแกรมทั่ว ๆ ไป คือ ฟังก์ชั่นจะเป็นรูปแบบการทำงานที่เสร็จสิ้นภายในตัวเอง พร้อมกับทำการ Return ค่ากลับไปตามชนิดหรือ Data Type ที่ได้ประกาศไว้

โครงสร้างของตาราง customer

Table : customer

Stored Procedure บน MySQL

Create Function Syntax

1.CREATE FUNCTION function_name(Parameter1 DataType(size), Parameter2 DataType(size))
2.RETURNS DataType(size)
3.BEGIN
4.RETURN Variable;
5.END

Example : ตัวอย่างการสร้าง Function แบบง่าย ๆ

01.DROP FUNCTION IF EXISTS getDiffAmount;
02. 
03.DELIMITER //
04.CREATE FUNCTION getDiffAmount(pAmt1 DECIMAL(18,2),pAmt2 DECIMAL(18,2))
05.RETURNS DECIMAL(18,2)
06.BEGIN
07.DECLARE diffAmt DECIMAL(18,2);
08. 
09.SET diffAmt = pAmt1 - pAmt2;
10. 
11.RETURN diffAmt;
12.END //
13.DELIMITER ;

จากคำสั่งนี้ FUNCTION นี้จะเป็นการรับค่า 2 ค่าแล้วนำมาลบกัน พร้อมกับ Return ค่าที่ได้กลับไป

ทดสอบการทำงาน

1.SELECT getDiffAmount(2000, 500) As DiffAmt

MySQL Function

ผลลัพธ์ที่ได้

MySQL Function

นอกจากนี้ยังสามารถใช้ FUNCTION ร่วมกับ SQL Query ได้เช่นเดียวกัน เช่น จากตาราง customer จะมีคอลัมบ์ BUDGET และ USED เราจะสร้างคอลัมบ์ใหม่โดยเป็นค่าที่มาจากฟังก์ชั้นของ getDiffAmount()

1.SELECT *, getDiffAmount(BUDGET,USED) AS DiffAmount FROM customer

ผลลัพธ์ที่ได้

MySQL Function

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

MySQL Function

เลือกที่เมนู Routines -> Add Routine

MySQL Function

เลือกสร้าง FUNCTION พร้อมกับกำหนดค่าเช่น Parameters และ Return ค่า

MySQL Function

รายการ FUNCTION จะถูกรวมไว้กับ Stored Procedure

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