Home >Database >Mysql Tutorial >An article explaining the stored procedures in mysql

An article explaining the stored procedures in mysql

PHPz
PHPzOriginal
2023-04-17 15:26:04618browse

Stored procedure is a technology commonly used in database systems. Its essence is to improve the performance of database application systems, reduce the difficulty of application system development, and improve security. MySQL is a popular relational database management system that supports stored procedures.

Introduction to MySQL stored procedures
MySQL stored procedure is a SQL statement that is pre-compiled and stored on the MySQL server. It can accept parameters, use variables, contain control structures, and implement complex logic. Operations can return results. The advantages of stored procedures include:

  1. Improve application performance: Stored procedures are compiled and stored in the database and can be called repeatedly by multiple applications, reducing the time for repeated compilation and interpretation of the program.
  2. Improve application security: Stored procedures can restrict access to tables and only allow access to users who use stored procedures.
  3. Simplify the writing of applications: Applications do not need to write complex SQL statements, they only need to call stored procedures.
  4. Reduce server load: The stored process is executed on the server side, which can reduce the pressure of network data transmission and reduce the load on the client.

The syntax format of MySQL stored procedures
The syntax format of MySQL stored procedures is as follows:

CREATE PROCEDURE procedure_name ([IN | OUT | INOUT] parameter_name datatype[(size)]) [NOT DEMETER] routine_body

Among them:

CREATE PROCEDURE means creating a stored procedure.

procedure_name is the name of the stored procedure and must be unique.

IN | OUT | INOUT is the parameter passing method, optional parameters. IN represents input parameters (default), OUT represents output parameters, and INOUT represents both input parameters and output parameters.

parameter_name is the name of the parameter and must be unique.

datatype[(size)] is the data type and length of the parameter and can be omitted.

NOT DEMETER is optional, indicating that the stored procedure cannot use data in other transactions.

routine_body is the main body of the stored procedure, including SQL statements and control structures.

Example of MySQL stored procedure
The following is an example of a MySQL stored procedure. Its function is to implement insertion, deletion, modification and query operations of student information.

CREATE PROCEDURE student_info(IN s_add INT, IN s_name VARCHAR(20), IN s_age INT, IN s_gender VARCHAR(10), IN s_id INT, OUT result INT)
BEGIN
DECLARE flag INT DEFAULT 0;
IF(s_add = 1) THEN
    INSERT INTO students VALUES(s_id, s_name, s_age, s_gender);
ELSEIF(s_add = 2) THEN
    UPDATE students SET name = s_name, age = s_age, gender = s_gender WHERE id = s_id;
ELSEIF(s_add = 3) THEN
    DELETE FROM students WHERE id = s_id;
ELSEIF(s_add = 4) THEN
    SELECT * FROM students WHERE name = s_name;
ELSE
    SET flag = 1;
END IF;
IF(flag = 0) THEN
    SET result = 0;
ELSE
    SET result = 1;
END IF;
END

Through the above storage process, the addition, deletion, modification and query of student information can be realized. When calling the stored procedure, you need to pass in the parameters s_add (operation type), s_name (name), s_age (age), s_gender (gender), s_id (student ID), and obtain the output parameter result (execution result).

Summary
MySQL stored procedure is an efficient database application technology that can improve the performance and security of applications, simplify application writing, and reduce server load. Through the above introduction, we can understand the basic syntax and use of MySQL stored procedures. I hope it can be helpful to everyone.

The above is the detailed content of An article explaining the stored procedures in mysql. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn