Làm cách nào để chạy một chức năng trong mysql?

Câu lệnh CREATE FUNCTION được sử dụng để tạo một hàm được lưu trữ và các hàm do người dùng định nghĩa. Hàm được lưu trữ là một tập hợp các câu lệnh SQL thực hiện một số thao tác và trả về một giá trị

Một hàm được lưu trữ trong MySQL là một tập hợp các câu lệnh SQL thực hiện một số tác vụ/thao tác và trả về một giá trị duy nhất. Nó là một trong những loại chương trình được lưu trữ trong MySQL. Khi bạn tạo một hàm được lưu trữ, hãy đảm bảo rằng bạn có đặc quyền cơ sở dữ liệu CREATE ROUTINE. Nói chung, chúng tôi đã sử dụng chức năng này để đóng gói các quy tắc hoặc công thức kinh doanh phổ biến có thể tái sử dụng trong các chương trình hoặc câu lệnh SQL được lưu trữ

Hàm được lưu trữ gần giống với thủ tục trong MySQL, nhưng nó có một số điểm khác biệt như sau

  • Tham số hàm có thể chỉ chứa tham số IN nhưng không được phép chỉ định tham số này, trong khi thủ tục có thể cho phép tham số IN, OUT, INOUT
  • Hàm được lưu trữ chỉ có thể trả về một giá trị duy nhất được xác định trong tiêu đề hàm
  • Hàm được lưu trữ cũng có thể được gọi trong các câu lệnh SQL
  • Nó có thể không tạo ra một tập kết quả

Vì vậy, chúng ta sẽ xem xét hàm được lưu trữ khi mục đích của chương trình là tính toán và chỉ trả về một giá trị duy nhất hoặc tạo một hàm do người dùng định nghĩa

Cú pháp tạo hàm lưu trữ trong MySQL như sau

Tham số được sử dụng

Cú pháp hàm được lưu trữ sử dụng các tham số sau được thảo luận bên dưới

Tham số NameDescriptionsfun_nameĐó là tên của chức năng được lưu trữ mà chúng tôi muốn tạo trong cơ sở dữ liệu. Không được trùng với tên hàm có sẵn của MySQL. fun_parameterNó chứa danh sách các tham số được sử dụng bởi thân hàm. Nó không cho phép chỉ định các thông số IN, OUT, INOUT. datatypeLà kiểu dữ liệu giá trị trả về của hàm. Nó nên bất kỳ loại dữ liệu MySQL hợp lệ. đặc điểmCâu lệnh CREATE FUNCTION chỉ được chấp nhận khi các đặc điểm [XÁC ĐỊNH, KHÔNG CÓ SQL hoặc ĐỌC DỮ LIỆU SQL] được xác định trong khai báo. fun_body Tham số này có một tập hợp các câu lệnh SQL để thực hiện các thao tác. Nó yêu cầu ít nhất một câu lệnh RETURN. Khi câu lệnh return được thực thi, chức năng sẽ tự động kết thúc. Thân hàm được đưa ra dưới đây. BEGIN -- Các câu lệnh SQL END $$ DELIMITER

Ví dụ hàm lưu trữ MySQL

Hãy cho chúng tôi hiểu cách chức năng lưu trữ hoạt động trong MySQL thông qua ví dụ. Giả sử cơ sở dữ liệu của chúng tôi có một bảng tên là "khách hàng" chứa dữ liệu sau

Bây giờ, chúng ta sẽ tạo một hàm trả về nghề nghiệp của khách hàng dựa trên độ tuổi bằng cách sử dụng câu lệnh bên dưới

Thực hiện câu lệnh trên trên công cụ dòng lệnh, như hình bên dưới

Khi việc tạo chức năng thành công, chúng ta có thể thấy nó trong bàn làm việc của MySQL trong phần Chức năng như hình ảnh bên dưới

Chúng ta cũng có thể thấy tất cả các chức năng được lưu trữ có sẵn trong cơ sở dữ liệu hiện tại bằng cách sử dụng câu lệnh sau

Sau khi thực hiện lệnh trên, chúng ta sẽ nhận được đầu ra như dưới đây

Cuộc gọi chức năng được lưu trữ

Bây giờ, chúng ta sẽ xem cách hàm lưu trữ được gọi với câu lệnh SQL. Câu lệnh sau sử dụng hàm lưu trữ customer_occupation để nhận kết quả

Nó sẽ cho đầu ra như dưới đây

Chúng ta cũng có thể gọi hàm trên trong một chương trình được lưu trữ khác, chẳng hạn như thủ tục, hàm hoặc trình kích hoạt hoặc bất kỳ hàm tích hợp sẵn nào khác của MySQL

Gọi hàm lưu trữ trong thủ tục

Ở đây, chúng ta sẽ xem làm thế nào chức năng này có thể được gọi trong một thủ tục được lưu trữ. Câu lệnh này tạo một thủ tục trong cơ sở dữ liệu sử dụng hàm được lưu trữ Customer_Occupation[]

Giống như bạn có thể tạo các hàm bằng các ngôn ngữ khác, bạn có thể tạo các hàm của riêng mình trong MySQL. Hãy xem xét kỹ hơn

cú pháp

Cú pháp để tạo một hàm trong MySQL là

CREATE FUNCTION function_name [ [parameter datatype [, parameter datatype]] ]
RETURNS return_datatype

BEGIN

   declaration_section

   executable_section

END;
function_nameTên để gán cho chức năng này trong MySQL. tham sốMột hoặc nhiều tham số được truyền vào hàm. Khi tạo một hàm, tất cả các tham số được coi là tham số IN [không phải tham số OUT hoặc INOUT] trong đó các tham số có thể được tham chiếu bởi hàm nhưng không thể bị hàm ghi đè. return_datatypeKiểu dữ liệu của giá trị trả về của hàm. khai báo_phầnVị trí trong hàm mà bạn khai báo các biến cục bộ. executable_sectionVị trí trong hàm mà bạn nhập mã cho hàm

Thí dụ

Hãy xem một ví dụ cho thấy cách tạo một hàm trong MySQL

DELIMITER //

CREATE FUNCTION CalcIncome [ starting_value INT ]
RETURNS INT

BEGIN

   DECLARE income INT;

   SET income = 0;

   label1: WHILE income 

Chủ Đề