Thời gian đọc: 8 phút
Stored Procedure (thủ tục lưu trữ) là một tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu và có thể được thực thi dưới dạng một khối lệnh. Thủ tục này thường được sử dụng để thực hiện các tác vụ lặp đi lặp lại và phức tạp mà không cần viết lại mã lệnh SQL nhiều lần.
IF
, WHILE
, LOOP
, CASE
, cho phép thực hiện các tác vụ phức tạp như xử lý dữ liệu, kiểm tra điều kiện, lặp qua kết quả và nhiều hơn nữa.Dưới đây là một ví dụ về stored procedure trong SQL Server để thêm một bản ghi mới vào bảng employees
:
CREATE PROCEDURE AddEmployee
@FirstName NVARCHAR(50),
@LastName NVARCHAR(50),
@BirthDate DATE,
@DepartmentId INT
AS
BEGIN
INSERT INTO employees (FirstName, LastName, BirthDate, DepartmentId)
VALUES (@FirstName, @LastName, @BirthDate, @DepartmentId);
END;
Khi cần thêm một nhân viên mới, bạn chỉ cần gọi thủ tục này:
EXEC AddEmployee 'John', 'Doe', '1980-01-01', 1;
Stored procedure là công cụ mạnh mẽ trong quản lý cơ sở dữ liệu, giúp cải thiện hiệu suất, bảo mật, tính đồng nhất, và tính dễ bảo trì. Tuy nhiên, cũng cần lưu ý rằng việc lạm dụng stored procedure có thể dẫn đến việc mã lệnh khó duy trì và kiểm tra. Do đó, cần sử dụng stored procedure một cách hợp lý để tận dụng được tối đa lợi ích của chúng.
Stored Procedures trong MySQL là các khối mã SQL được lưu trữ trong cơ sở dữ liệu, cho phép bạn thực hiện một chuỗi các lệnh SQL một cách dễ dàng. Câu lệnh INSERT
trong MySQL được sử dụng để thêm dữ liệu mới vào một bảng.
Dưới đây là ví dụ cụ thể và chi tiết về cách sử dụng câu lệnh INSERT
trong MySQL bằng Stored Procedure.
Đầu tiên, chúng ta sẽ tạo một bảng để lưu trữ dữ liệu. Giả sử chúng ta có một bảng tên là students
chứa thông tin về sinh viên.
CREATE TABLE students (
student_id INT AUTO_INCREMENT,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(100),
PRIMARY KEY (student_id)
);
Tiếp theo, chúng ta sẽ tạo một Stored Procedure để thêm sinh viên mới vào bảng students
.
DELIMITER //
CREATE PROCEDURE AddStudent(
IN p_first_name VARCHAR(50),
IN p_last_name VARCHAR(50),
IN p_email VARCHAR(100)
)
BEGIN
INSERT INTO students (first_name, last_name, email)
VALUES (p_first_name, p_last_name, p_email);
END //
DELIMITER ;
Giải thích:
DELIMITER //
: Thay đổi delimiter mặc định của MySQL từ ;
thành //
để MySQL hiểu rằng chúng ta đang định nghĩa một Stored Procedure.CREATE PROCEDURE AddStudent
: Tạo một Stored Procedure có tên là AddStudent
.IN p_first_name VARCHAR(50), IN p_last_name VARCHAR(50), IN p_email VARCHAR(100)
: Khai báo các tham số đầu vào cho Stored Procedure. IN
chỉ ra rằng đây là các tham số đầu vào.BEGIN ... END
: Khối mã bên trong định nghĩa các lệnh SQL cần thực hiện. Trong ví dụ này, chúng ta chỉ sử dụng một lệnh INSERT INTO
để thêm dữ liệu vào bảng students
.DELIMITER ;
: Đặt lại delimiter về dấu chấm phẩy ;
.Sau khi tạo Stored Procedure, bạn có thể gọi nó để thêm một sinh viên mới vào bảng students
.
CALL AddStudent('Nguyen', 'Van A', '[email protected]');
CALL AddStudent('Tran', 'Thi B', '[email protected]');
Khi gọi Stored Procedure AddStudent
, bạn cung cấp các giá trị cho các tham số p_first_name
, p_last_name
, và p_email
. Các giá trị này sẽ được chèn vào bảng students
.
Sau khi gọi Stored Procedure, bạn có thể kiểm tra dữ liệu trong bảng students
bằng câu lệnh sau:
SELECT * FROM students;
Kết quả sẽ hiển thị các hàng dữ liệu đã được thêm vào bảng students
.
Stored Procedure trong MySQL giúp bạn quản lý và thực thi các câu lệnh SQL phức tạp một cách dễ dàng và hiệu quả. Ví dụ trên minh họa cách sử dụng câu lệnh INSERT
trong Stored Procedure để thêm dữ liệu vào một bảng trong MySQL.