mysql创建存储过程及函数详解

下面是“mysql创建存储过程及函数详解”的完整攻略。

一、存储过程

1.1 创建存储过程

CREATE PROCEDURE procedure_name()
BEGIN
  # 存储过程体
END;
  • CREATE PROCEDURE: 表示创建存储过程的关键字。
  • procedure_name: 存储过程的名称,自定义,需符合 MySQL 的命名规则。
  • BEGINEND:在这两个关键字之间编写存储过程的内容。

1.2 参数

存储过程可有参数,分为输入参数和输出参数。

1.2.1 输入参数

CREATE PROCEDURE procedure_name(IN p_id INT)
BEGIN
  SELECT * FROM user WHERE id = p_id;
END;
  • IN:输入参数的关键字。
  • p_id:输入参数的名称。
  • INT:输入参数的类型,这里设置为整型。

调用存储过程:

CALL procedure_name(1);
  • CALL:调用存储过程的关键字。
  • (1):传入的实际参数,对应定义的 p_id

1.2.2 输出参数

CREATE PROCEDURE procedure_name(OUT p_count INT)
BEGIN
  SELECT COUNT(*) INTO p_count FROM user;
END;
  • OUT:输出参数的关键字。
  • p_count:输出参数的名称。
  • INT:输出参数的类型,这里设置为整型。
  • SELECT COUNT(*) INTO p_count FROM user:将查询结果赋值给 p_count

调用存储过程:

CALL procedure_name(@count);
SELECT @count;
  • @count:MySQL 用户变量,用于接收存储过程的输出参数。
  • SELECT @count:输出变量的值。

1.3 示例

创建一个简单的存储过程,查询用户名为 name 的用户信息:

CREATE PROCEDURE get_user_info(IN p_name VARCHAR(20))
BEGIN
  SELECT * FROM user WHERE name = p_name;
END;

调用存储过程:

CALL get_user_info('Mike');

二、函数

2.1 创建函数

CREATE FUNCTION function_name()
RETURNS return_type
BEGIN
  # 函数体
END;
  • CREATE FUNCTION: 表示创建函数的关键字。
  • function_name: 函数的名称,自定义,需符合 MySQL 的命名规则。
  • RETURNS: 函数的返回值类型。
  • return_type: 返回值的类型,使用 MySQL 内置的数据类型,如 INT、VARCHAR(20) 等。
  • BEGINEND:在这两个关键字之间编写函数的内容。

2.2 示例

创建一个简单的函数,计算两个数的和:

CREATE FUNCTION add(a INT, b INT)
RETURNS INT
BEGIN
  RETURN a + b;
END;

调用函数:

SELECT add(1, 2);

输出结果:

+---------+
| add(1,2)|
+---------+
|       3 |
+---------+

创建一个函数,查询某个用户名是否存在:

CREATE FUNCTION is_user_exists(p_name VARCHAR(20))
RETURNS INT
BEGIN
  DECLARE count INT;
  SELECT COUNT(*) INTO count FROM user WHERE name = p_name;
  RETURN count;
END;

调用函数:

SELECT is_user_exists('Mike');

输出结果:

+---------------------------+
| is_user_exists('Mike')     |
+---------------------------+
|                         1 |
+---------------------------+

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql创建存储过程及函数详解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • MySQL配置文件my.ini全过程

    MySQL配置文件my.ini是MySQL数据库服务的配置文件,也是MySQL数据库服务器启动的必备配置文件。下面将为大家详细讲解MySQL配置文件my.ini全过程的完整攻略,包括配置文件的位置、常用参数、参数说明、示例说明等。 配置文件 MySQL配置文件my.ini一般位于MySQL的安装目录下的bin目录中,具体路径如下所示: C:\Program …

    MySQL 2023年5月18日
    00
  • 转 Swoole】用swoole简单实现MySQL连接池

    在传统的网站开发中,比如LNMP模式,由Nginx的master进程接收请求然后分给多个worker进程,每个worker进程再链接php-fpm的master进程,php-fpm再根据当前情况去调用其worker进程然后处理PHP,如果需要MySQL,在与MySQL建立连接,这个时候,如果有1000个请求打过来,就需要与MySQL建立1000个连接。如果请…

    2023年4月13日
    00
  • MySQL系列之九 mysql查询缓存及索引

    MySQL系列之九 mysql查询缓存及索引 什么是MySQL查询缓存? MySQL查询缓存是将查询结果缓存到内存中,当下次有相同的查询请求时,直接返回缓存中的结果,避免了重复查询和计算,大大提升了查询效率。 但是,MySQL查询缓存也存在一些限制和局限性,比如缓存的查询结果是基于SQL语句的完全匹配,如果查询语句中有任何变化,如参数值不同,缓存就会失效,需…

    MySQL 2023年5月19日
    00
  • 安装MySQL 5后无法启动(不能Start service)解决方法小结

    下面是针对“安装MySQL 5后无法启动(不能Start service)解决方法小结”的完整攻略: 问题描述 在安装MySQL 5后,有时候会出现无法启动(MySQL cannot start service)的情况。如何解决这个问题呢? 解决方法 检查my.ini文件是否正确 在安装MySQL后,my.ini文件可能会出现问题,导致MySQL无法启动。因…

    MySQL 2023年5月18日
    00
  • 解决Go语言数据库中null值的问题

    为了解决Go语言在数据库中查询null值时的问题,可以采用以下两种方法: 方法一:使用sql.NullString / sql.NullInt64结构体 在Go语言的database/sql包中,可以使用sql.NullString和sql.NullInt64结构体来处理null值的情况。使用这两个结构体可以让Go语言中的代码更加严谨和可读性更高。 例如,通…

    MySQL 2023年5月18日
    00
  • mysql “too many connections” 错误 之 mysql解决方法

    当MySQL达到最大连接数时,该错误会出现:Too many connections。这是因为MySQL已经不能继续接受新连接,直到旧的连接被释放或被重置后才能恢复。在此文中,我将针对该错误提供一些解决方法。 查看并提升MySQL最大连接数限制 首先,确定MySQL的最大连接数限制。使用以下命令可以查看当前值: show variables like ‘ma…

    MySQL 2023年5月18日
    00
  • MySQL 索引优化案例

    MySQL是一个非常流行的关系型数据库管理系统,MySQL索引优化是MySQL性能优化的重要部分。在本文中,我们将详细讲解MySQL索引优化的完整攻略,并提供两个示例说明。 什么是索引 在MySQL中,索引是一种数据结构,用于提高查询查询速度。索引是一种特殊的表(B-Tree)数据结构,用于加速数据的查找和排序。在MySQL中,索引可以分为唯一和非唯一索引。…

    MySQL 2023年5月19日
    00
  • MySQL动态SQL拼接实例详解

    MySQL动态SQL拼接实例详解 本文介绍了如何使用MySQL动态SQL拼接的方法进行动态查询和更新操作。 什么是动态SQL拼接? 动态SQL拼接是一种动态构建SQL语句的技术,它可以根据不同的条件、参数和数据进行灵活的组合,生成不同的SQL语句,从而实现动态查询、更新、删除等操作。在实际项目中,动态SQL拼接用得非常广泛,通常用来处理复杂的查询需求,或者在…

    MySQL 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部