Thời gian đọc: 5 phút
Trong MySQL, hàm (function) là một tập hợp các câu lệnh SQL được tổ chức lại để thực hiện một tác vụ cụ thể và có thể trả về một giá trị. Hàm được sử dụng để đơn giản hóa và tự động hóa các tác vụ thường lặp lại hoặc phức tạp.
Dưới đây là hướng dẫn chi tiết về cách tạo và sử dụng hàm trong MySQL:
Cú pháp cơ bản để tạo một hàm trong MySQL như sau:
CREATE FUNCTION function_name (parameters)
RETURNS return_datatype
BEGIN
-- Function body
-- SQL statements
RETURN value;
END;
function_name
: Tên của hàm.parameters
: Danh sách các tham số mà hàm nhận vào. Mỗi tham số bao gồm tên và kiểu dữ liệu.return_datatype
: Kiểu dữ liệu mà hàm sẽ trả về (ví dụ: INT
, VARCHAR
, DATE
, v.v.).BEGIN ... END
: Khối lệnh chứa các câu lệnh SQL sẽ được thực hiện khi hàm được gọi.RETURN
: Câu lệnh dùng để trả về giá trị từ hàm.Giả sử bạn muốn tạo một hàm tính tổng hai số nguyên. Dưới đây là cách viết hàm đó:
DELIMITER //
CREATE FUNCTION add_two_numbers(a INT, b INT)
RETURNS INT
BEGIN
RETURN a + b;
END //
DELIMITER ;
Giải thích:
DELIMITER //
: Thay đổi ký tự phân cách câu lệnh từ dấu chấm phẩy (;
) sang dấu gạch chéo kép (//
). Điều này cần thiết vì MySQL mặc định coi dấu ;
là kết thúc một câu lệnh, nhưng chúng ta cần nó để kết thúc các câu lệnh bên trong hàm.CREATE FUNCTION add_two_numbers(a INT, b INT)
: Khai báo hàm có tên add_two_numbers
nhận vào hai tham số a
và b
đều là số nguyên (INT
).RETURNS INT
: Hàm này sẽ trả về một giá trị kiểu số nguyên (INT
).BEGIN ... END
: Khối lệnh chính của hàm. Ở đây chỉ có một câu lệnh RETURN a + b;
để trả về tổng của hai tham số a
và b
.DELIMITER ;
: Đặt lại ký tự phân cách câu lệnh về mặc định là dấu chấm phẩy (;
).Sau khi tạo hàm, bạn có thể gọi nó như sau:
SELECT add_two_numbers(10, 20);
Kết quả sẽ trả về 30
.
Giả sử bạn muốn tạo một hàm tính diện tích hình tròn từ bán kính cung cấp:
DELIMITER //
CREATE FUNCTION circle_area(radius DOUBLE)
RETURNS DOUBLE
BEGIN
DECLARE area DOUBLE;
SET area = PI() * radius * radius;
RETURN area;
END //
DELIMITER ;
Giải thích:
DECLARE area DOUBLE;
: Khai báo một biến area
kiểu DOUBLE
để lưu trữ kết quả tạm thời.SET area = PI() * radius * radius;
: Gán giá trị diện tích của hình tròn vào biến area
.RETURN area;
: Trả về giá trị của biến area
.Để xem danh sách các hàm đã tạo trong cơ sở dữ liệu hiện tại, bạn có thể sử dụng câu lệnh sau:
SHOW FUNCTION STATUS WHERE Db = 'your_database_name';
Nếu bạn muốn xóa hàm, sử dụng câu lệnh:
DROP FUNCTION IF EXISTS function_name;
Ví dụ:
DROP FUNCTION IF EXISTS add_two_numbers;
CREATE ROUTINE
hoặc DROP
).Trên đây là hướng dẫn chi tiết cách tạo và sử dụng hàm trong MySQL. Hy vọng những thông tin này sẽ giúp bạn làm việc hiệu quả hơn với cơ sở dữ liệu của mình.