Hướng dẫn how do i execute a stored procedure with parameters in mysql? - làm cách nào để thực hiện một thủ tục được lưu trữ với các tham số trong mysql?
Trong bài viết này, chúng tôi sẽ tìm hiểu về các quy trình được lưu trữ trong MySQL. Trong bài viết này, tôi đang trình bày những điều cơ bản của quy trình được lưu trữ bao gồm Show
Quy trình được lưu trữ là các câu lệnh SQL được bao bọc trong câu lệnh Creat Creating. Quy trình được lưu trữ có thể chứa một câu lệnh có điều kiện như nếu hoặc trường hợp hoặc các vòng lặp. Quy trình được lưu trữ cũng có thể thực hiện một quy trình được lưu trữ khác hoặc một hàm mô đun hóa mã.CREATE PROCEDURE statement. The stored procedure may contain a conditional statement like IF or CASE or the Loops. The stored procedure can also execute another stored procedure or a function that modularizes the code. Sau đây là những lợi ích của một thủ tục được lưu trữ:
Cú pháp để tạo quy trình lưu trữ MySQL là như sau: Tạo quy trình [Tên thủ tục] ([Tham số 1], [Tham số 2], [Tham số 3]) Bắt đầu truy vấn SQL .. Kết thúc Trong cú pháp:
Để thực hiện quy trình lưu trữ, bạn có thể sử dụng từ khóa cuộc gọi. Dưới đây là cú pháp: Gọi [Tên thủ tục] ([Tham số] ..) Trong cú pháp:
Các truy vấn và mã SQL phải được viết giữa các từ khóa bắt đầu và kết thúcsakila database. Để thực hiện quy trình lưu trữ, bạn có thể sử dụng từ khóa cuộc gọi. Dưới đây là cú pháp:Gọi [Tên thủ tục] ([Tham số] ..)
Tạo một thủ tục được lưu trữ đơn giảnMySQL workbench Connect to the MySQL Database copy-paste the code in the query editor window click on Execute.
Giả sử bạn muốn điền vào danh sách các bộ phim. Đầu ra phải chứa film_id, tiêu đề, mô tả, năm phát hành và cột xếp hạng. Mã của thủ tục là như sau:
Tạo quy trình sp_getmovies () BẮT ĐẦU
& nbsp; & nbsp; & nbsp; & nbsp; chọn tiêu đề, mô tả, phát hành_year, xếp hạng từ phim;Để tạo quy trình lưu trữ MySQL, hãy mở kết nối Workbench MySQL với cơ sở dữ liệu MySQL sao chép mã trong cửa sổ Trình soạn thảo truy vấn, nhấp vào thực thi.sakila schema Right-click on Stored Procedures Select Create a Stored procedure.
Bạn có thể xem thủ tục theo thủ tục được lưu trữ. Xem ảnh chụp màn hình dưới đây.sp_getCustomers. In the code block, enter the following query
Dưới đây là ảnh chụp màn hình một phần của đầu ra:
Thủ tục đảo Crete bằng cách sử dụng trình hướng dẫn Workbench MySQLsp_GetCustomer has been created successfully.
Chúng ta có thể sử dụng Trình hướng dẫn Workbench MySQL để tạo quy trình được lưu trữ. Giả sử bạn muốn lấy danh sách khách hàng từ cơ sở dữ liệu Sakila. Để làm điều đó, hãy mở rộng Lược đồ Sakila Nhấp chuột phải vào các quy trình được lưu trữ chọn Tạo quy trình được lưu trữ.Stored Procedures folder of the sakila schema.
Trong cửa sổ thủ tục mới, một mẫu tạo đã được tạo. Trong mẫu, thay thế tên thủ tục bằng sp_getcustomers. Trong khối mã, nhập truy vấn sauChọn Store_ID, First_Name, Last_Name, Email, create_date, last_update từ khách hàng Khi chúng tôi tạo một quy trình được lưu trữ, các tham số phải được chỉ định trong dấu ngoặc đơn. Cú pháp đang theo sau:
Trong cú pháp:
Ví dụ về tham sốGiả sử chúng tôi muốn có được danh sách các bộ phim dựa trên xếp hạng. Param_rating là một tham số đầu vào và kiểu dữ liệu là varchar. Mã của thủ tục là như sau:param_rating is an input parameter, and the data type is varchar. The code of the procedure is the following:
Để điền vào danh sách các bộ phim có xếp hạng NC-17, chúng tôi chuyển giá trị NC-17 cho quy trình SP_GetMoviesByRating ().NC-17 rating, we pass the NC-17 value to the sp_getMoviesByRating() procedure.
Đầu ra:
Ví dụ về tham số raGiả sử chúng ta muốn có được số lượng các bộ phim có xếp hạng PG-13. Total_Movies là một tham số đầu ra và kiểu dữ liệu là một số nguyên. Số lượng của các bộ phim được gán cho biến ra (Total_Movies) bằng cách sử dụng từ khóa. Mã của thủ tục là như sau:PG-13 rating. The Total_Movies is an output parameter, and the data type is an integer. The count of the movies is assigned to the OUT variable (Total_Movies) using the INTO keyword. The code of the procedure is the following:
Để điền vào danh sách các bộ phim có xếp hạng NC-17, chúng tôi chuyển giá trị NC-17 cho quy trình SP_GetMoviesByRating ().@PGRatingMovies.
Ví dụ về tham số raGiả sử chúng ta muốn có được số lượng các bộ phim có xếp hạng PG-13. Total_Movies là một tham số đầu ra và kiểu dữ liệu là một số nguyên. Số lượng của các bộ phim được gán cho biến ra (Total_Movies) bằng cách sử dụng từ khóa. Mã của thủ tục là như sau:, and the data type is varchar(10). The output parameter is Movies_count, and the data type is an integer. Tạo quy trình SP_CountMoviesByRating (Out Total_Movies Int)
Để điền vào danh sách các bộ phim có xếp hạng NC-17, chúng tôi chuyển giá trị NC-17 cho quy trình SP_GetMoviesByRating ().CALL keyword and save the output in session variable named @MoviesCount
Đầu ra:Ví dụ về tham số rastored procedure created in a sakila database, run the following query. Moreover, it also provides the owner, created date, security type, and SQL data access to the stored procedures.
Tạo quy trình SP_CountMoviesByRating (Out Total_Movies Int)& nbsp; & nbsp; & nbsp; & nbsp; chọn số lượng (tiêu đề) vào Total_movies từ Film WHERE xếp hạng = 'PG-13'; Để lưu trữ giá trị được trả về theo quy trình, hãy truyền một biến phiên có tên @pgratingmovies. Gọi SP_CountMoviesByRating (@pgratingmovies)Drop Procedure keyword. If you want to drop the sp_getCustomers procedure from the sakila database, you can run the following query.
Ví dụ về một tham số inout Giả sử chúng ta muốn có được tổng số lượng phim dựa trên xếp hạng. Tham số đầu vào là param_rating trong quy trình và kiểu dữ liệu là varchar (10). Tham số đầu ra là phim_count và kiểu dữ liệu là một số nguyên. Mã thủ tục: Tạo quy trình sp_countmoviesbyrating_inout (inout film_count int, inparam_rating varchar (10)) & NBSP;Thực hiện quy trình bằng cách sử dụng từ khóa cuộc gọi và lưu đầu ra trong biến phiên có tên @MoviesCountsakila schema Expand Stored Procedures Right-click on sp_GetMovies Click on Drop Stored Procedure.
Gọi sp_countmoviesbyrating_inout (@t, 'pg-13');
Xem danh sách thủ tục được lưu trữ trong cơ sở dữ liệu bằng cách sử dụng truy vấnReview SQL Code to Execute dialog box, you can review the drop statement and the object name.
Để xem danh sách thủ tục được lưu trữ, bạn có thể truy vấn bảng thông tin_schema.routines. Nó chứa danh sách các quy trình được lưu trữ và các chức năng được lưu trữ được tạo trên cơ sở dữ liệu. Để xem danh sách thủ tục được lưu trữ được tạo trong cơ sở dữ liệu Sakila, hãy chạy truy vấn sau. Hơn nữa, nó cũng cung cấp cho chủ sở hữu, ngày được tạo, loại bảo mật và truy cập dữ liệu SQL cho các quy trình được lưu trữ. chọn thói quen_name, thường trình_type, definer, được tạo, bảo mật_type, sql_data_access từ thông tin_schema.routines wherThả một thủ tục được lưu trữ
Trong bài viết tiếp theo, chúng ta sẽ tìm hiểu về các quan điểm MySQL. Mục lục
Nisarg Upadhyay là quản trị viên cơ sở dữ liệu SQL Server và Microsoft Certified Professional, người có hơn 8 năm kinh nghiệm với quản trị SQL Server và 2 năm với quản trị cơ sở dữ liệu Oracle 10G. Ông có chuyên môn về thiết kế cơ sở dữ liệu, điều chỉnh hiệu suất, sao lưu và phục hồi, thiết lập HA và DR, di chuyển cơ sở dữ liệu và nâng cấp. Ông đã hoàn thành B.Tech từ Đại học Ganpat. Anh ấy có thể đạt được Làm cách nào để gọi một thủ tục với các tham số trong MySQL?Quy trình này chấp nhận ID của khách hàng là trong tham số và trả về tên sản phẩm (chuỗi), tên khách hàng (chuỗi) và, giá (int) giá trị dưới dạng tham số từ bảng bán hàng. Để gọi thủ tục với các tham số, hãy vượt qua @parameter_name làm tham số, trong các tham số này, các giá trị đầu ra được lưu trữ.pass @parameter_name as parameters, in these parameters the output values are stored.
Làm thế nào để bạn gọi một thủ tục được lưu trữ với các tham số?Mở rộng cơ sở dữ liệu mà bạn muốn, mở rộng khả năng lập trình và sau đó mở rộng các quy trình được lưu trữ.Nhấp chuột phải vào quy trình được lưu trữ do người dùng xác định mà bạn muốn và chọn thực thi thủ tục được lưu trữ.Trong hộp thoại Quy trình thực thi, chỉ định giá trị cho từng tham số và liệu nó có nên truyền giá trị null hay không.
Làm cách nào để chạy một quy trình được lưu trữ trong MySQL Workbench với các tham số?Cách thực hiện thủ tục được lưu trữ trong MySQL Workbench.. Mở Workbench MySQL .. Tạo tab mới để chạy các câu lệnh SQL..... Nhập các câu lệnh SQL cho quy trình được lưu trữ trong tab mới của bạn .. Thực hiện các câu lệnh Quy trình lưu trữ bằng cách nhấp vào biểu tượng 'Lightning' được hiển thị bên dưới..... Mở rộng nút thủ tục được lưu trữ ở khung bên phải .. Làm cách nào để thực hiện một quy trình được lưu trữ trong mysql?Tạo một thủ tục được lưu trữ đơn giản.Phân định;Để tạo quy trình lưu trữ MySQL, hãy mở kết nối Workbench MySQL với cơ sở dữ liệu MySQL sao chép mã trong cửa sổ Trình soạn thảo truy vấn, nhấp vào thực thi.Bạn có thể xem thủ tục theo thủ tục được lưu trữ.open the MySQL workbench Connect to the MySQL Database copy-paste the code in the query editor window click on Execute. You can view the procedure under stored procedures. |