MySQL Stored Procedure | Hướng Dẫn Tạo Stored Procedure trong MySQL

MySQL Stored Procedure | Hướng Dẫn Tạo Stored Procedure trong MySQL

Stored Procedure là một tập hợp các câu lệnh SQL được lưu trữ và biên dịch sẵn trong cơ sở dữ liệu, giúp hoàn thành các tác vụ phức tạp. Bài viết này sẽ hướng dẫn bạn cách tạo và sử dụng Stored Procedure trong MySQL.
29/02/2024
7,181 Lượt xem

Giới thiệu về MySQL Stored Procedure

Stored Procedure là một tập hợp các câu lệnh SQL được lưu trữ và biên dịch sẵn trong cơ sở dữ liệu, giúp hoàn thành các tác vụ phức tạp. Khi được gọi, các câu lệnh trong Stored Procedure sẽ được thực thi trên máy chủ cơ sở dữ liệu, thay vì trên máy khách như các câu lệnh SQL truyền thống.

Lợi ích của Stored Procedure

Việc sử dụng Stored Procedure mang lại nhiều lợi ích cho ứng dụng và hệ thống quản lý cơ sở dữ liệu:

  • Tăng hiệu suất: Stored Procedure được biên dịch và tối ưu hóa trên máy chủ cơ sở dữ liệu, giúp giảm tải cho máy khách và mạng.
  • Quản lý dễ dàng: Các tác vụ phức tạp được tổng hợp trong một đơn vị duy nhất, giúp việc quản lý và bảo trì trở nên đơn giản hơn.
  • Bảo mật tốt hơn: Stored Procedure chỉ thực thi trên máy chủ cơ sở dữ liệu, giảm thiểu rủi ro về bảo mật so với việc truyền các câu lệnh SQL trên mạng.
  • Tính nhất quán: Stored Procedure đảm bảo tính nhất quán trong việc xử lý dữ liệu, giúp các ứng dụng khác nhau có thể sử dụng chung các tác vụ.

Tạo Stored Procedure trong MySQL

Để tạo một Stored Procedure trong MySQL, bạn có thể sử dụng câu lệnh CREATE PROCEDURE. Cú pháp cơ bản như sau:

 CREATE PROCEDURE procedure_name(parameter1 datatype, parameter2 datatype, ...) BEGIN -- Câu lệnh SQL đầu tiên -- Câu lệnh SQL thứ hai -- ... END; 

Trong đó:

  • procedure_name: Tên của Stored Procedure bạn muốn tạo.
  • parameter1, parameter2, ...: Các tham số nhận giá trị từ bên ngoài (nếu có).
  • datatype: Kiểu dữ liệu của các tham số.
  • BEGIN và END: Đánh dấu khối lệnh SQL bên trong Stored Procedure.

Ví dụ Stored Procedure đơn giản

Giả sử bạn có một bảng "employees" với các trường "emp_id", "emp_name", "emp_salary" và "emp_department". Để tạo một Stored Procedure đơn giản lấy thông tin nhân viên theo mã nhân viên, bạn có thể làm như sau:

 CREATE PROCEDURE get_employee_info(IN emp_id INT) BEGIN SELECT emp_name, emp_salary, emp_department FROM employees WHERE emp_id = emp_id; END; 

Trong ví dụ trên, "emp_id" là tham số nhận giá trị từ bên ngoài để lọc thông tin nhân viên. Để gọi Stored Procedure này, bạn có thể sử dụng câu lệnh:

 CALL get_employee_info(123); 

Câu lệnh này sẽ trả về thông tin nhân viên có mã nhân viên là 123.

Sử dụng Stored Procedure trong MySQL

Sau khi đã tạo Stored Procedure, bạn có thể sử dụng chúng trong ứng dụng của mình. Tùy thuộc vào ngôn ngữ lập trình và môi trường phát triển, cách gọi Stored Procedure có thể khác nhau.

Gọi Stored Procedure trong MySQL Workbench

Nếu bạn sử dụng MySQL Workbench, bạn có thể gọi Stored Procedure bằng cách nhập câu lệnh "CALL" vào khung lệnh SQL:

 CALL get_employee_info(123); 

Kết quả trả về sẽ hiển thị trong khung kết quả.

Gọi Stored Procedure từ ứng dụng

Trong trường hợp gọi Stored Procedure từ ứng dụng, bạn cần sử dụng các thư viện hoặc API tương ứng với ngôn ngữ lập trình của mình. Ví dụ, nếu bạn sử dụng PHP, bạn có thể gọi Stored Procedure bằng cách:

 $conn = new mysqli("localhost", "username", "password", "database_name"); $stmt = $conn->prepare("CALL get_employee_info(?)"); $stmt->bind_param("i", $emp_id); $emp_id = 123; $stmt->execute(); $result = $stmt->get_result(); 

Trong đoạn mã trên, chúng ta tạo một kết nối đến cơ sở dữ liệu, chuẩn bị câu lệnh CALL, liên kết tham số emp_id, gán giá trị cho tham số và thực thi câu lệnh. Kết quả trả về sẽ được lưu trong biến $result.

Tương tự, nếu bạn sử dụng Java với thư viện JDBC, bạn có thể gọi Stored Procedure như sau:

 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/database_name", "username", "password"); CallableStatement stmt = conn.prepareCall("{call get_employee_info(?)}"); stmt.setInt(1, 123); ResultSet rs = stmt.executeQuery(); 

Đoạn mã trên tạo một kết nối đến cơ sở dữ liệu, chuẩn bị câu lệnh CALL, liên kết tham số emp_id, gán giá trị cho tham số và thực thi câu lệnh. Kết quả trả về sẽ được lưu trong biến rs.

Khi làm việc với Stored Procedure, bạn cũng cần lưu ý đến một số vấn đề như xử lý lỗi, quản lý giao dịch và kiểm soát quyền truy cập. Tuy nhiên, những ví dụ trên sẽ giúp bạn hiểu cơ bản cách tạo và sử dụng Stored Procedure trong MySQL.

Với những kiến thức này, bạn có thể tận dụng Stored Procedure để tối ưu hóa hiệu suất, đơn giản hóa quản lý và bảo trì ứng dụng của mình một cách hiệu quả hơn.

Hashtag:

#mysql #storedprocedure #createdstoredprocedure #mysqltutorial #databasetutorial #sqlprogramming

Các bạn có thể tham khảo thêm nguồn khác:

MySQL Stored Procedure | How to Create Stored Procedure in MySQL? - EDUCBA

Creating the Stored Procedure in MySQL Now, we will create a stored procedure that will return the label numbers whose last transaction date is passed as the parameter to the GetLabelsOfLastTransDate>

MySQL Stored Procedure Tutorial

MySQL Stored Procedures In this section, you will learn how to develop stored programs including stored procedures and stored functions in MySQL. Section 1. Stored procedure basics Introduction to Sto>

MySQL Stored Procedure - w3resource

Aug 19, 2022Stored procedures are fast. MySQL server takes some advantage of caching, just as prepared statements do. The main speed gain comes from reduction of network traffic. If you have a repetit>

6.1.5 Working with Stored Procedures - MySQL

Set the MySqlCommand object to the type of stored procedure, as shown by the following code snippet: string rtn = "country_hos"; MySqlCommand cmd = new MySqlCommand (rtn, conn); cmd.CommandType = Comm>

MySQL STORED PROCEDURE Tutorial With Examples - Software Testing Help

Dec 5, 2022This MySQL STORED PROCEDURE tutorial explains how to create, update, list, delete and call STORED PROCEDURES in MySQL: MySQL Provides STORED PROCEDURES to have a collection of MySQL stateme>

Learn MySQL: The Basics of MySQL Stored Procedures - SQL Shack

Jan 8, 2021The MySQL Stored procedure parameter has three modes: IN, OUT, and INOUT. When we declare an IN type parameter, the application must pass an argument to the stored procedure. It is a defaul>

Create MySQL Stored Procedure [With Examples] - MySQLCode

Let's create a stored procedure in which we will pass the id of a user and display the data of its account. DELIMITER // CREATE PROCEDURE fetch_data_in ( IN uid INT ) BEGIN SELECT * FROM accounts WHER>

SQL Stored Procedures - W3Schools

What is a Stored Procedure? A stored procedure is a prepared SQL code that you can save, so the code can be reused over and over again. So if you have an SQL query that you write over and over again,>

MySQL 存储过程 | 菜鸟教程

MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。 存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。>

In Which Location Are Mysql Compiled Procedures Stored?

1 Answer. Sorted by: 16. In the database mysql there's a table proc which seems to hold all the data for a stored procedure. So the physical files should be /mysql/proc.MYI and /mysq>

MySQL Stored Procedures and Types with Examples - Techieclues

Stored Procedures is the closet we come to making user-defined functions in MySQL. The Basic syntax for creating a stored procedure, DELIMITER $$ CREATE PROCEDURE () Begin

Introduction to Stored Procedure in MySQL - MySQL Tutorial

By definition, a stored procedure is a segment of declarative SQL statements stored inside the MySQL Server. In this example, we have just created a stored procedure with the name GetCustomers (). Onc>

MySQL PROCEDURE - javatpoint

MySQL Stored Procedure A procedure (often called a stored procedure) is a collection of pre-compiled SQL statements stored inside the database. It is a subroutine or a subprogram in the regular comput>

MySQL stored procedure - iditect.com

You can call this stored procedure in the future, and the SQL statement in the stored procedure will be executed in the database. Note: The default statement terminator in MySQL is a semicolon (;). SQ>

Advanced Stored Procedures In MySQL - CoderPad

6 days agoThere are three types of variables in MySQL, all of which can be used in a stored procedure based on scope. These are local variables, user-defined variables and system variables. Scope in M>

MySQL :: MySQL 8.0 Reference Manual :: 13.1.17 CREATE PROCEDURE and ...

MySQL permits routines to contain DDL statements, such as CREATE and DROP. MySQL also permits stored procedures (but not stored functions) to contain SQL transaction statements such as COMMIT. Stored>

SQL Stored Procedures - W3Schools

What is a Stored Procedure? A stored procedure is a prepared SQL code that you can save, so the code can be reused over and over again. So if you have an SQL query that you write over and over again,>

MySQL Stored Procedures (Create, List, Alter, & Drop)

Apr 13, 2021Follow these steps to see stored procedures: Step 1: Double-click the database you want to use in the Navigator section. Step 2: Expand the Stored Procedures drop-down item. This item show>

MySQL Stored Function By Practical Examples - MySQL Tutorial

Typically, you use stored functions to encapsulate common formulas or business rules that are reusable among SQL statements or stored programs. Different from a stored procedure, you can use a stored>

MySQL Stored Procedure Parameters

MySQL Stored Procedures Getting Started with Stored Procedures Changing MySQL Delimiter Creating Stored Procedures Removing Stored Procedures Modifying Stored Procedures Listing Stored Procedures Vari>

MySQL :: MySQL 5.7 Reference Manual :: 13.1.16 CREATE PROCEDURE and ...

In practice, stored functions tend to use compound statements, unless the body consists of a single RETURN statement. MySQL permits routines to contain DDL statements, such as CREATE and DROP. MySQL a>

MySQL CREATE PROCEDURE By Practical Examples

First, launch MySQL Workbench. Second, create a new SQL tab for executing queries: Third, enter the statements in the SQL tab: Fouth, execute the statements. Note that you can select all statements in>

How to create and execute Stored Procedure in MySQL? - BTech Geeks

May 26, 2021Thus, stored procedure methods have their own parameters. The stored procedure parameter has 3 types or modes. IN parameter: IN parameter is used to provide input values. OUT parameter: Th>

A.4 MySQL 8.0 FAQ: Stored Procedures and Functions

A.4 MySQL 8.0 FAQ: Stored Procedures and Functions A.4.1. Does MySQL 8.0 support stored procedures and functions? A.4.2. Where can I find documentation for MySQL stored procedures and stored functions>

Introduction to MySQL Stored Procedure - A Complete Guide

To invoke the stored procedure, the CALL statement is used. Following is the syntax to call the procedure. CALL proc_name ( [ parameters ]) Code language: SQL (Structured Query Language) (sql) Remembe>

A.4 MySQL 5.7 FAQ: Stored Procedures and Functions

MySQL records each DML event that occurs in a stored procedure and replicates those individual actions to a replica. The actual calls made to execute stored procedures are not replicated. Stored funct>

SQL Stored Procedures (With Examples) - Programiz

In SQL, stored procedure is a set of statement (s) that perform some defined actions. We make stored procedures so that we can reuse statements that are used frequently. Stored procedures are similar>

Execute a Stored Procedure - SQL Server | Microsoft Learn

Nov 18, 2022In Object Explorer, connect to an instance of the SQL Server Database Engine, expand that instance, and then expand Databases. Expand the database that you want, expand Programmability, an>

What is Stored Procedures in SQL - GeeksforGeeks

May 26, 2022Stored Procedures are created to perform one or more DML operations on Database. It is nothing but the group of SQL statements that accepts some input in the form of parameters and perform>

View MySQL Stored Procedures using SHOW PROCEDURE STATUS ... - MySQLCode

Follow the given steps-. Open the workbench and make a connection with the MySQL server. On the left side, you will see all the database names. Click on the database name and there you will see the op>


Tags: