Mục đích sử dụng procedure trong MySQL
- Tập trung logic: Procedure có thể được sử dụng để tập trung logic vào một vị trí duy nhất. Điều này giúp cho mã dễ đọc và bảo trì hơn.
- Tăng hiệu suất: Procedure có thể được sử dụng để tăng hiệu suất bằng cách thực hiện nhiều câu lệnh SQL cùng một lúc.
- Tăng tính bảo mật: Procedure có thể được sử dụng để tăng tính bảo mật bằng cách giới hạn quyền truy cập vào các bảng và cột cụ thể.
Cú pháp tạo procedure trong MySQL
Cú pháp tạo procedure trong MySQL như sau:
CREATE PROCEDURE [procedure_name] ([parameter_name] [data_type], ...)
BEGIN
statement;
...
END;
Trong đó:
procedure_name: Tên của procedure.
parameter_name: Tên của parameter.
data_type: Kiểu dữ liệu của parameter.
statement: Câu lệnh SQL được thực thi trong procedure.
Ví dụ:
SQL
CREATE PROCEDURE add_customer (
customer_name VARCHAR(255),
customer_email VARCHAR(255)
)
BEGIN
INSERT INTO customers (customer_name, customer_email)
VALUES (customer_name, customer_email);
END;
Cú pháp gọi procedure trong MySQL
Cú pháp gọi procedure trong MySQL như sau:
CALL procedure_name ([parameter_value], ...);
Trong đó:
procedure_name: Tên của procedure.
parameter_value: Giá trị của parameter.
Ví dụ:
CALL add_customer(‘John Doe’, ‘johndoe@example.com’);
Các loại tham số trong store procedure
| Loại tham số | Mô tả |
| -------- | -------- | -------- |
| In | Truyền dữ liệu vào store procedure |
| Out | Truyền dữ liệu từ store procedure ra ngoài |
| Inout | Truyền dữ liệu vào và truyền ra khỏi store procedure |
– Stored procedure sử dụng tham số IN
DELIMITER //
CREATE PROCEDURE get_product_name(IN product_id INT)
BEGIN
SELECT product_name FROM products WHERE id = product_id;
END //
DELIMITER;
Ví dụ:
– Stored procedure sử dụng tham số OUT
DELIMITER //
CREATE PROCEDURE generate_random_number(OUT random_number INT)
BEGIN
SET random_number = FLOOR(RAND() * 1000);
END //
DELIMITER;
– Stored procedure sử dụng tham số INOUT
DELIMITER //
CREATE PROCEDURE increment_counter(INOUT counter INT)
BEGIN
SET counter = counter + 1;
END //
DELIMITER;
Bình luận
quá đẳng cấp
😎😎😎
thầy Đạt là vua âm mưu
bài viết hay qua phải vào cmt lần 2