Câu hỏi phỏng vấn MySQL
Câu hỏi

Stored Function trong MySQL là gì? Chúng khác với Stored Procedure như thế nào?

Câu trả lời

Stored Function trong MySQL là một tập hợp các câu lệnh SQL được lưu trữ trong cơ sở dữ liệu để thực hiện một tác vụ cụ thể và trả về một giá trị duy nhất. Stored Function thường được sử dụng để đóng gói các công thức hoặc quy tắc kinh doanh phổ biến, làm cho chúng có thể tái sử dụng trong các câu lệnh SQL hoặc các chương trình lưu trữ khác. Khác với Stored Procedure, bạn có thể sử dụng Stored Function trong các câu lệnh SQL ở bất cứ đâu mà bạn có thể sử dụng một biểu thức[5][8].

Stored Function và Stored Procedure trong MySQL có một số điểm khác biệt cơ bản:

  1. Trả về giá trị: Stored Function luôn trả về một giá trị và phải có từ khóa RETURNS trong định nghĩa của nó để chỉ ra kiểu dữ liệu của giá trị trả về. Trong khi đó, Stored Procedure có thể không trả về giá trị hoặc sử dụng các tham số đầu ra để trả về giá trị[3][4].

  2. Cách sử dụng: Stored Function có thể được gọi và sử dụng như một phần của một biểu thức trong câu lệnh SQL. Ngược lại, Stored Procedure được gọi bằng câu lệnh CALL và không thể được sử dụng trực tiếp trong các biểu thức[3][4].

  3. Tham số: Trong Stored Function, tất cả các tham số đều được coi là tham số đầu vào (IN). Trong khi đó, Stored Procedure cho phép sử dụng các tham số đầu vào (IN), đầu ra (OUT), và cả hai (INOUT)[3][4].

  4. Sử dụng trong các câu lệnh SQL: Bạn không thể gọi Stored Procedure trong một câu lệnh SELECT, nhưng bạn có thể gọi Stored Function trong một câu lệnh SELECT[3][4].

  5. Quản lý giao dịch: Stored Procedure có thể quản lý các giao dịch bên trong nó, nhưng Stored Function thì không thể[3].

  6. Mục đích sử dụng: Stored Function thường được sử dụng cho các tác vụ tính toán và trả về kết quả, còn Stored Procedure thường được sử dụng cho các tác vụ phức tạp hơn, có thể bao gồm nhiều câu lệnh S...

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

ENUM có thể được sử dụng như thế nào trong MySQL. Hãy đưa ra một ví dụ.

senior

Replication kiểu master-slave trong MySQL là gì? Nó có những ưu điểm gì?

middle

Làm thế nào để bạn có thể thêm một hoặc nhiều cột sau một cột nhất định trong một bảng MySQL hiện có?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào