Store Procedure trong Mysql

20 tháng 12, 2023 - 579 lượt xem

Mục đích sử dụng procedure trong MySQL

  1. 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.
  2. 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.
  3. 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

avatar
Nguyễn Hữu Thắng 2023-12-21 11:50:05.232436 +0000 UTC

quá đẳng cấp

Avatar
avatar
Nguyễn Như Huy Hoàng 2023-12-21 11:50:48.340108 +0000 UTC

😎😎😎

Avatar
avatar
Nông Bảo Việt 2023-12-26 11:38:49.152555 +0000 UTC

thầy Đạt là vua âm mưu

 

Avatar
avatar
Nguyễn Hữu Thắng 2023-12-26 12:05:53.736562 +0000 UTC

bài viết hay qua phải vào cmt lần 2

 

Avatar
* Vui lòng trước khi bình luận.
Ảnh đại diện
  0 Thích
0