Hướng dẫn select procedure mysql - chọn thủ tục mysql
I. MySQL: Stored Procedure là gì?Stored Procedure được định nghĩa như một tập các khai báo sql được lưu trữ ngay trong cơ sở dữ liệu (database) và sau đó, được triệu gọi bởi một program, một trigger hay thậm chí là một stored procedure khác. được định nghĩa như một tập các khai báo sql được lưu trữ ngay trong cơ sở dữ liệu (database) và sau đó, được triệu gọi bởi một program, một trigger hay thậm chí là một stored procedure khác. Stored Procedured cho phép truyền tham số. cho phép truyền tham số. Ưu điểm của Stored Proccedure trong Mysql
Những nhược điểm của Stored Procudure
Tạo Mysql Stored Procedure đầu tiên
Giải thích:
Sau đó chạy câu SQL này và nó báo thành công tức là bạn đã tạo mới một thủ tục với tên procedureName Cách gọi procedure
** Sửa procedure ** Trong Mysql không cung cấp lệnh sửa Stored nên thông thường chúng ta sẽ chạy lệnh tạo mới. Lệnh Drop để xóa đi Procedure đó và tạo lại:Drop để xóa đi Procedure đó và tạo lại:
** Phân quyền cho procedure ** Khi bạn dùng với quyền User nào thì Store đó sẽ có quyền thực hiện trong phạm vi của User đó. Ví dụ bạn không có quyền edit mà bạn tạo mới một Procedure Edit thì khi chạy sẽ bị báo lỗi . Chính vì vậy thông thường khi edit bạn phải thêm người định nghĩa nó như sau:
DEFINER= 5@ 6 chính là tên người đã tạo.III. Biến (variable) trong MYSQL Stored ProcedureKhai báo biến
Giải thích: DELIMITER $$ dùng để phân cách bộ nhớ lưu trữ thủ tục Cache và mở ra một ô lưu trữ mới.: là từ khóa tạo biến variable_name: là tên biến datatype(size): là kiểu dữ liệu của biến và kích thước của nó DEFAULT default_value: là gán giá trị mặc định cho biến CREATE PROCEDURE procedureName() dùng để khai báo tạo một Procedure mới, trong đó procedureName chính là tên thủ tục còn hai từ đầu là từ khóa.
**BEGIN và END; $$ ** dùng để khai báo bắt đầu của Procedure và kết thúc Procedure
**DELIMITER ; ** đóng lại ô lưu trữ
Sau đó chạy câu SQL này và nó báo thành công tức là bạn đã tạo mới một thủ tục với tên procedureName Cách gọi procedure
** Sửa procedure **Trong Mysql không cung cấp lệnh sửa Stored nên thông thường chúng ta sẽ chạy lệnh tạo mới.IN, tham số OUT và tham số INOUT
Ví dụ bạn không có quyền edit mà bạn tạo mới một Procedure Edit thì khi chạy sẽ bị báo lỗi . Chính vì vậy thông thường khi edit bạn phải thêm người định nghĩa nó như sau: DEFINER= 5@ 6 chính là tên người đã tạo.III. Biến (variable) trong MYSQL Stored Procedure 0Khai báo biến DECLARE: là từ khóa tạo biến variable_name: là tên biến datatype(size): là kiểu dữ liệu của biến và kích thước của nó DEFAULT default_value: là gán giá trị mặc định cho biến
VD: 1Câu lệnh trên nó sẽ thực hiện câu truy vấn SQL đếm tổng số record và sau đó gán vào biến total. Nếu như bạn định nghĩa một biến giữa BEGIN và END thì đó ta gọi là biến cục bộ của Procedure. Bạn có thể định nghĩa nhiều biến trong một Procedure. 2IV Truyền tham số vào Mysql Stored Procedure 3Trong MYSQL thì sẽ tồn tại ba loại Tham số đó là tham số IN, tham số OUT và tham số INOUT 4IN: Đây là chế độ mặc định (nghĩa là nếu bạn không định nghĩa loại nào thì nó sẽ hiểu là IN). OUT: Chế độ này nếu như trong Procedure có tác động thay đổi thì nó sẽ thay đổi theo. Nhưng có điều đặc biệt là dù trước khi truyền vào mà bạn gán giá trị cho biến đó thì vẫn sẽ không nhận được vì mặc định nó luôn hiểu giá trị truyền vào là NULL. INOUT: Đây là sự kết hợp giữa IN và OUT. Nghĩa là có thể gán giá trị trước và có thể bị thay đổi nếu trong Procedure có tác động. Table Products demo: |