Stored Procedures và Functions trong SQL
Stored Procedures và Functions là hai khái niệm quan trọng trong SQL, chúng giúp tạo ra các tác vụ và logic có thể sử dụng lại trong quản lý cơ sở dữ liệu. Chúng ta sẽ cùng tìm hiểu về chúng trong bài viết này.
1. Stored Procedures (Thủ Tục Lưu Trữ):
a. Khái Niệm:
- Stored Procedure là một khối mã SQL có thể được lưu trữ trong cơ sở dữ liệu.
- Nó có thể chứa một hoặc nhiều lệnh SQL, thậm chí có thể chứa cả lệnh điều kiện và vòng lặp.
- Stored Procedure được tạo ra một lần và sau đó có thể được gọi nhiều lần mà không cần viết lại mã.
b. Cách Sử Dụng:
- Để tạo Stored Procedure, bạn sử dụng câu lệnh
CREATE PROCEDURE
. - Để gọi Stored Procedure, bạn sử dụng câu lệnh
EXECUTE
hoặcCALL
.
Ví dụ về tạo và sử dụng Stored Procedure:
-- Tạo Stored Procedure
CREATE PROCEDURE GetEmployeeByID (@EmployeeID INT)
AS
BEGIN SELECT * FROM Employees WHERE EmployeeID = @EmployeeID;
END; -- Gọi Stored Procedure
EXECUTE GetEmployeeByID 101;
2. Functions (Hàm):
a. Khái Niệm:
- Function là một khối mã SQL có thể được gọi từ trong câu truy vấn hoặc từ trong Stored Procedure.
- Nó trả về một giá trị duy nhất.
- Functions thường được sử dụng để tính toán và trả về một giá trị cụ thể.
b. Cách Sử Dụng:
- Để tạo Function, bạn sử dụng câu lệnh
CREATE FUNCTION
. - Để gọi Function trong câu truy vấn, bạn sử dụng nó như một phần của biểu thức.
Ví dụ về tạo và sử dụng Function:
-- Tạo Function
CREATE FUNCTION CalculateTotalSalary (@DepartmentID INT)
RETURNS DECIMAL
AS
BEGIN DECLARE @TotalSalary DECIMAL; SELECT @TotalSalary = SUM(Salary) FROM Employees WHERE DepartmentID = @DepartmentID; RETURN @TotalSalary;
END; -- Sử dụng Function trong câu truy vấn
SELECT DepartmentName, dbo.CalculateTotalSalary(DepartmentID) AS TotalSalary FROM Departments;
Lợi Ích của Stored Procedures và Functions:
-
Tích hợp Logic: Stored Procedures và Functions cho phép bạn tích hợp logic phức tạp trong cơ sở dữ liệu mà không cần truyền logic này vào ứng dụng.
-
Bảo Mật: Chúng giúp bảo mật dữ liệu bằng cách kiểm soát quyền truy cập vào các tác vụ cụ thể.
-
Tái Sử Dụng: Stored Procedures và Functions có thể sử dụng lại ở nhiều nơi trong ứng dụng hoặc các ứng dụng khác.
-
Hiệu Suất: Chúng có thể tối ưu hóa hiệu suất bằng cách tránh truyền dữ liệu giữa ứng dụng và cơ sở dữ liệu một cách không cần thiết.
Stored Procedures và Functions là công cụ quan trọng trong việc quản lý cơ sở dữ liệu, giúp bạn tổ chức mã SQL của mình một cách hiệu quả và bảo vệ dữ liệu của bạn.