07/09/2018, 11:05

MySQL: Stored Procedure là gì?

Stored Procedure là một tập hợp các câu lệnh SQL dùng để thực thi một nhiệm vụ nhất định. Nó hoạt động giống như một hàm trong các ngôn ngữ lập trình khác. Stored procedure là một khái niệm khá phổ biến và được hầu hết các hệ quản trị cơ sở dữ liệu (DBMS) hỗ trợ, tuy nhiên không phải tất cả ...

Stored Procedure là một tập hợp các câu lệnh SQL dùng để thực thi một nhiệm vụ nhất định. Nó hoạt động giống như một hàm trong các ngôn ngữ lập trình khác.

Stored procedure là một khái niệm khá phổ biến và được hầu hết các hệ quản trị cơ sở dữ liệu (DBMS) hỗ trợ, tuy nhiên không phải tất cả đều hỗ trợ Stored Procedure.

Hãy tham khảo một ví dụ cụ thể để làm rõ hơn khái niệm này.

Trước hết, giả sử trên DB có một bảng employees với dữ liệu như sau:

ID Name Age Mobile
001 Sidheswar 25 9938885469
002 Pritish 32 9178542436

Cú pháp để tạo một Stored Procedure có dạng như sau:

DELIMITER //
BEGIN
CREATE PROCEDURE  stored_procedure_name
/*** SQL for stored procedure ***/
END //
DELIMITER ;

Trong MySQL, chúng ta sử dụng delimiter và khi bắt đầu và kết thúc nội dung của một Stored Procedure. Dilimeter là một chuỗi các ký tự tùy ý chúng không có ý nghĩa gì đặc biệt và được MySQL dùng để đánh dấu sự bắt đầu và kết thúc của một Stored Procedure. Ở trên chúng ta sử dụng chuỗi ký tự để làm delimiter:

delimiter //
//
delimiter ;

Tiếp theo, bên trong cặp delimiter này là nội dung của Stored Procedure, và chúng được đặt bên trong cặp từ khóa BEGIN và END.

delimiter //
BEGIN
CREATE PROCEDURE  stored_procedure_name
/*** SQL for stored procedure ***/
END //
delimiter ;

ở đây `stored_procedure_name` là tên của **Stored Procedure** sẽ được tạo và phần SQL comment là câu lệnh SQL để **Stored Procedure** thực thi. Bây giờ, tạo một *Stored Procedure* với cú pháp như sau:

```sql
DELIMITER //
CREATE PROCEDURE  all_employees
BEGIN
SELECT * FROM employees
END //
DELIMITER ;

Với câu lệnh trên MySQL sẽ tạo ra một Stored Procedure với tên là all_employees. Để chạy Stored Procedure này, trên MySQL client chạy câu lệnh sau:

CALL all_employees;

Bạn có thể thấy cách một Stored Procedure hoạt động không khác gì một hàm trong lập trình. Như vậy, kết thúc bài học này bạn đã học được cách tạo một Stored Procedure trong MySQL.

0