Các hàm tự định nghĩa và thủ tục lưu trữ trong SQL
Các hàm tự định nghĩa và thủ tục lưu trữ trong SQL là những thành phần quan trọng trong SQL cho phép chúng ta mở rộng khả năng của ngôn ngữ truy vấn và tạo ra các tác vụ phức tạp hơn. Hàm tự định nghĩa cho phép chúng ta tạo ra các tập lệnh có thể tái sử dụng và trả về kết quả dựa trên đầu vào. Trong khi đó, thủ tục lưu trữ là những khối mã SQL có thể được gọi và thực thi theo yêu cầu.
Bài viết này, Test Mentor sẽ giới thiệu về cú pháp CREATE FUNCTION và CREATE PROCEDURE trong SQL. Chúng ta cũng sẽ so sánh sự khác nhau giữa hàm và thủ tục lưu trữ và xem xét ưu điểm và hạn chế của từng loại. Thông qua việc tìm hiểu về các hàm tự định nghĩa và thủ tục lưu trữ trong SQL, chúng ta sẽ nắm vững cách tạo và sử dụng chúng để giải quyết các vấn đề phức tạp trong quá trình làm việc với cơ sở dữ liệu.
>>> Xem thêm: Các hàm ngày tháng và xử lý thời gian trong SQL
Nội Dung Bài Viết
Hàm tự định nghĩa trong SQL
Cú pháp CREATE FUNCTION để tạo hàm trong SQL
Hàm tự định nghĩa trong SQL là một khối mã có thể tái sử dụng, cho phép chúng ta thực hiện các công việc phức tạp và trả về kết quả dựa trên đầu vào. Chúng ta có thể tạo các hàm để thực hiện tính toán, xử lý chuỗi, thao tác với ngày tháng, và nhiều tác vụ khác.
Cú pháp CREATE FUNCTION được sử dụng để tạo hàm trong SQL. Cú pháp cơ bản của CREATE FUNCTION như sau:
CREATE FUNCTION function_name ([parameter1 datatype1 [, parameter2 datatype2, ...]])
RETURNS return_datatype
[LANGUAGE {SQL | language_name}]
[DETERMINISTIC | NOT DETERMINISTIC]
[SQL DATA ACCESS {CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA}]
[COMMENT 'string']
BEGIN
-- Mã thực thi hàm
-- RETURN giá trị
END;
Tham số và kiểu dữ liệu trong hàm
Hàm có thể nhận tham số đầu vào để thực hiện các phép tính và xử lý. Mỗi tham số được định nghĩa bởi tên và kiểu dữ liệu. Kiểu dữ liệu có thể là kiểu dữ liệu cơ sở (int, varchar, …) hoặc kiểu dữ liệu do người dùng định nghĩa.
Lời gọi hàm và trả về giá trị
Sau khi tạo hàm, chúng ta có thể gọi nó trong các truy vấn SQL như một phần của câu lệnh SELECT, INSERT, UPDATE hoặc DELETE. Hàm sẽ được thực thi và trả về giá trị tương ứng.
Ví dụ về việc tạo và sử dụng hàm tự định nghĩa trong SQL
Ví dụ: Tạo một hàm trong SQL để tính tổng của hai số
CREATE FUNCTION calculate_sum(a INT, b INT)
RETURNS INT
BEGIN
DECLARE sum INT;
SET sum = a + b;
RETURN sum;
END;
Sau khi tạo hàm trên, chúng ta có thể gọi nó trong một truy vấn như sau:
SELECT calculate_sum(5, 10) AS sum_result;
Kết quả trả về sẽ là 15.
Thủ tục lưu trữ trong SQL
Thủ tục lưu trữ SQL là một khối mã SQL có thể được gọi và thực thi theo yêu cầu. Nó thường được sử dụng để thực hiện các tác vụ phức tạp, xử lý dữ liệu và thực hiện các thao tác cập nhật trên cơ sở dữ liệu.
Cú pháp CREATE PROCEDURE để tạo thủ tục lưu trữ trong SQL
Cú pháp cơ bản của CREATE PROCEDURE như sau:
CREATE PROCEDURE procedure_name ([parameter1 datatype1 [, parameter2 datatype2, ...]])
[LANGUAGE {SQL | language_name}]
[COMMENT 'string']
BEGIN
-- Mã thực thi thủ tục
END;
Tham số và kiểu dữ liệu trong thủ tục lưu trữ
Thủ tục lưu trữ có thể nhận tham số đầu vào để thực hiện các phép tính và xử lý. Mỗi tham số được định nghĩa bởi tên và kiểu dữ liệu. Kiểu dữ liệu có thể là kiểu dữ liệu cơ sở (int, varchar, …) hoặc kiểu dữ liệu do người dùng định nghĩa.
Cách thực thi thủ tục lưu trữ
Thủ tục lưu trữ có thể được gọi và thực thi bằng cách sử dụng câu lệnh EXECUTE hoặc CALL trong SQL. Chúng ta có thể truyền các tham số cần thiết cho thủ tục và thực thi nó để thực hiện các tác vụ mong muốn.
Ví dụ về việc tạo và sử dụng thủ tục lưu trữ trong SQL
Tạo một thủ tục lưu trữ trong SQL để hiển thị tất cả các khách hàng trong bảng “Customers”:
CREATE PROCEDURE get_customers()
BEGIN
SELECT * FROM Customers;
END;
Sau khi tạo thủ tục trên, chúng ta có thể gọi nó để hiển thị tất cả các khách hàng như sau:
EXECUTE get_customers();
Kết quả sẽ là tất cả các hàng trong bảng “Customers”.
So sánh hàm và thủ tục lưu trữ
Sự khác nhau về cú pháp và mục đích sử dụng
- Hàm: Dùng để tính toán và trả về giá trị.
- Thủ tục lưu trữ: Dùng để thực hiện các tác vụ phức tạp, xử lý dữ liệu và thao tác trên cơ sở dữ liệu.
Điểm mạnh và điểm yếu của hàm và thủ tục lưu trữ
- Hàm:
- Điểm mạnh: Tái sử dụng, tính toán, trả về giá trị.
- Điểm yếu: Hạn chế trong việc thay đổi dữ liệu, thao tác trực tiếp với cơ sở dữ liệu.
- Thủ tục lưu trữ:
- Điểm mạnh: Thực hiện các tác vụ phức tạp, xử lý dữ liệu, thao tác trực tiếp với cơ sở dữ liệu.
- Điểm yếu: Gây ảnh hưởng đến hiệu suất, không trả về kết quả.
Lựa chọn hợp lý giữa hàm và thủ tục lưu trữ
- Sử dụng hàm khi cần tính toán và trả về giá trtrị.
- Sử dụng thủ tục lưu trữ khi cần thực hiện các tác vụ phức tạp, xử lý dữ liệu và thao tác trực tiếp với cơ sở dữ liệu.
Kết luận
Thủ tục lưu trữ và hàm trong SQL được dùng để tạo các khối lệnh tái sử dụng mã hóa và thực hiện các tác vụ phức tạp. Cú pháp và mục tiêu sử dụng của hàm và thủ tục lưu trữ có sự khác nhau. Hàm thích hợp cho công việc tính toán và trả về giá trị, trong khi thủ tục lưu trữ SQL được sử dụng để thực hiện các tác vụ phức tạp và thao tác trực tiếp với cơ sở dữ liệu. Lựa chọn giữa hàm và thủ tục lưu trữ phụ thuộc vào công cụ yêu cầu của nhiệm vụ và mục tiêu sử dụng.
Lan Hoàng
Leave a Comment