Hướng dẫn are there stored procedures in mysql? - có các thủ tục được lưu trữ trong mysql không?
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 Các thủ tục được lưu trữ được gọi trong MySQL là gì?Các thủ tục được lưu trữ là các thói quen phụ, phân đoạn các câu lệnh SQL được lưu trữ trong danh mục SQL. Các thủ tục này chứa các tham số trong và ngoài, hoặc cả hai. Họ có thể trả về các bộ kết quả trong trường hợp bạn sử dụng các câu lệnh Chọn; Họ có thể trả về nhiều bộ kết quả.sub routines, segment of SQL statements which are stored in SQL catalog. These procedures contain IN and OUT parameters, or both. They may return result sets in case you use SELECT statements; they can return multiple result-sets.
Chúng ta có thể viết các thủ tục trong mysql không?Trong trường hợp của MySQL, các quy trình được viết trong MySQL và được lưu trữ trong cơ sở dữ liệu/máy chủ của MySQL.Quy trình MySQL có tên, danh sách tham số và (các) câu lệnh SQL.procedures are written in MySQL and stored in the MySQL database/server. A MySQL procedure has a name, a parameter list, and SQL statement(s).
Làm cách nào để thực hiện một quy trình được lưu trữ trong mysql?Chúng ta có thể sử dụng câu lệnh CALL để gọi một thủ tục được lưu trữ.Câu lệnh này trả về các giá trị cho người gọi của nó thông qua các tham số của nó (IN, OUT hoặc INOUT).Cú pháp sau được sử dụng để gọi quy trình được lưu trữ trong MySQL: Gọi Quy trình_Name (tham số)
Làm cách nào để xem các thủ tục được lưu trữ trong MySQL?Để hiển thị tất cả các thủ tục được lưu trữ:.. Hiển thị trạng thái thủ tục ;. Hiển thị trạng thái chức năng ;. Hiển thị trạng thái thủ tục trong đó db = 'db_name' ;. Hiển thị trạng thái chức năng trong đó db = 'db_name' ;. |