Ví dụ thủ tục lưu trữ mysql

Stored Procedure tương tự như thủ tục hoặc phương thức trong ngôn ngữ lập trình nhưng giới hạn trong thao tác truy vấn dữ liệu mà câu lệnh SQL của hệ thống quản trị cơ sở dữ liệu cung cấp

Cơ chế của Stored Procedure là các câu truy vấn sẽ được biên dịch và lưu trữ sẵn trong bộ nhớ của hệ thống quản trị cơ sở dữ liệu, các ứng dụng thay vì gửi câu truy vấn vào thời điểm muốn thực hiện câu truy vấn thì gửi tên

Vì sao cần Stored Procedure?

Tính năng hiển thị đối tượng

Stored Procedure cung cấp một lớp đối tượng cho các ứng dụng và ngôn ngữ thiết lập trình thao tác với hệ thống quản trị cơ sở dữ liệu. Việc thực hiện cùng 1 thao tác giống nhau đến cơ sở dữ liệu trên 2 ứng dụng (hoặc nhiều hơn) hoặc ngôn ngữ lập trình khác nhau không yêu cầu người thiết lập chương trình phải viết lại hoàn toàn các thao tác đó

Ví dụ. có thể tạo 1 Stored Procedure tên tổng để đếm tổng số dòng trên 1 bảng và gọi đến Stored Procedure từ các ngôn ngữ lập trình khác nhau như PHP, Node. js, C#,…

Lập trình viên không cần quan tâm đến các thao tác này hoạt động như thế nào mà chỉ cần quan tâm đến mục đích của họ được tạo ra và kết quả mà họ mong muốn nhận về

Hiệu lực

Stored Procedure được cung cấp bởi hệ thống quản trị cơ sở dữ liệu, được biên dịch và lưu lại 1 lần duy nhất, được gọi đến và thao tác trực tiếp bởi hệ thống quản trị cơ sở dữ liệu đó. Vì vậy, hiệu năng đạt được ở mức cao nhất mà hệ thống quản trị cơ sở dữ liệu có thể thực hiện mà không phụ thuộc vào tính chất của ngôn ngữ lập trình bậc cao nào

bảo mật

Nếu người quản lý cơ sở dữ liệu được tùy chỉnh để chỉ có thể thực hiện thao tác gọi đến Thủ tục được lưu sẵn có sẵn cho 1 số người dùng cụ thể, thì chắc chắn sẽ đảm bảo tính toàn vẹn của dữ liệu đối với những người dùng này. Việc phân quyền này đảm bảo người dùng chỉ có quyền hạn thay đổi dữ liệu ở mức cho phép của người quản trị cơ sở dữ liệu mà không thể thâm nhập sâu hơn vào dữ liệu đó

Sử dụng Stored Procedure trong MySQL

Cấu hình câu lệnh tạo Stored Procedure

CREATE PROCEDURE [procedure_name] ([param1, param2,…])
	BEGIN
		[sql_statements]
   	END

in which

  • CALL procedure_name ([param1, param2,…]);
    8 là câu lệnh được sử dụng để khai báo Stored Procedure trong MySQL
  • CALL procedure_name ([param1, param2,…]);
    0 is name of Stored Procedure
  • CALL procedure_name ([param1, param2,…]);
    1 là các tham số truyền vào Stored Procedure. Constructor báo cáo các tham số
    • CALL procedure_name ([param1, param2,…]);
      2, with 
      CALL procedure_name ([param1, param2,…]);
      3 only tham số đầu vào (
      CALL procedure_name ([param1, param2,…]);
      4) hoặc đầu ra (
      CALL procedure_name ([param1, param2,…]);
      5)
    • Ví dụ.
      CALL procedure_name ([param1, param2,…]);
      6
  • CALL procedure_name ([param1, param2,…]);
    7 báo cáo phần thân của Stored Procedure, kể từ câu lệnh này trở đi, định nghĩa những thao tác mà Stored Procedure sẽ thực hiện khi được gọi

Stored Procedure đã được khai báo

CALL procedure_name ([param1, param2,…]);

Ví dụ

CALL procedure_name ([param1, param2,…]);
0

Môi trường thực tế

  • cửa sổ 10
  • Cộng đồng MySQL 5
  • Bàn làm việc MySQL 6

Create data sample

Tạo cơ sở dữ liệu & các bảng

CALL procedure_name ([param1, param2,…]);
1

Thử nghiệm mô hình cơ sở dữ liệu

Ví dụ thủ tục lưu trữ mysql

Create data sample

CALL procedure_name ([param1, param2,…]);
2
Ví dụ thủ tục lưu trữ mysql

Tạo Stored Procedure để đếm tổng số sản phẩm trong bảng san_pham

CALL procedure_name ([param1, param2,…]);
3

Trong đoạn mã trên, sử dụng lệnh

CALL procedure_name ([param1, param2,…]);
8 để chỉ ký tự kết thúc cho đoạn lệnh SQL. Mặc định, ký tự chấm phẩy
CALL procedure_name ([param1, param2,…]);
9 được sử dụng để chỉ việc hiển thị câu lệnh SQL đã kết thúc

Trong đoạn lệnh SQL trên, để sử dụng nhiều câu lệnh SQL khác nhau trong phần thân của Thủ tục lưu trữ, hãy sử dụng dấu chấm phẩy

CALL procedure_name ([param1, param2,…]);
9 để phân tách các câu lệnh riêng biệt. Do đó, hãy sử dụng ký tự
CALL procedure_name ([param1, param2,…]);
01 để thông báo cho MySQL biết rằng phần khai báo cho Thủ tục lưu trữ chỉ chấm dứt khi gặp ký tự này, và dấu phân cách câu lệnh được sử dụng để chỉ định điều này