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中的常用工具实例汇总(推荐)

    MySQL中的常用工具实例汇总(推荐) 简介 MySQL是一种常用的数据库管理系统,在实际的工作中,我们需要使用到一些MySQL的工具来帮助我们更好地管理和操作MySQL数据库。 本文将针对MySQL中的常用工具进行详细讲解,并且给出一些常用的工具实例汇总,帮助读者更好地掌握MySQL的使用。 常用工具 在MySQL中,常用的工具主要包括以下几种: MySQ…

    MySQL 2023年5月18日
    00
  • MySQL DELETE:删除数据详解

    MySQL DELETE是用于删除已存在的数据行的命令。该命令会从表中删除指定的数据行。它具有以下语法: DELETE FROM tablename WHERE condition 其中,tablename是要删除数据行的表名;condition是删除的条件语句。如果不提供条件,则将删除表中所有数据行。 下面是一个MySQL DELETE 的实例,假设我们有…

    MySQL 2023年3月9日
    00
  • MySQL命令行界面中出现字符错误提示的原因及解决方法

    当我们在MySQL命令行进程中进行操作时,有时会出现字符错误的提示,这主要是由于终端的字符集和MySQL服务器的字符集不匹配所造成的。在这种情况下,需要对终端的字符集和MySQL服务器的字符集进行相应的设置,下面就详细讲解一下如何解决这个问题。 确定终端支持的字符集 在终端中输入以下命令,可以查看当前终端支持的字符集: $ locale charmap 执行…

    MySQL 2023年5月18日
    00
  • Mysql基础知识点汇总

    Mysql基础知识点汇总攻略 什么是Mysql? Mysql 是一个开源的关系型数据库管理系统,被广泛应用于各种类型的 Web 应用程序的开发、管理和维护中。 Mysql 安装 安装 Mysql 可以通过官方下载页面下载对应版本的安装包进行安装。根据不同的操作系统和版本,安装方法可能会略有不同。 Mysql 数据库和表 Mysql 中的核心概念是数据库和表,…

    MySQL 2023年5月18日
    00
  • PHP错误Warning:mysql_query()解决方法

    当使用PHP中的mysql_query函数执行MySQL查询时,可能会遇到以下错误之一: Warning: mysql_query(): Access denied for user ‘user’@’localhost’ (using password: YES) Warning: mysql_query(): No such file or directo…

    MySQL 2023年5月18日
    00
  • MySQL的复合索引总结

    MySQL是一款常用的关系型数据库,索引是MySQL中优化查询性能的重要手段。复合索引是一种在多列上创建的索引,相比于单列索引,复合索引能够更加精确的定位需要检索的数据。 复合索引概述 复合索引是在多个列上创建的索引,可以通过查询中的多个条件来定位到符合条件的数据。对于多个列的查询,复合索引优于单列索引,因为单列索引不能够覆盖所有查询列的数据。 复合索引的创…

    MySQL 2023年5月19日
    00
  • 解决修改mysql的data_dir所引发的错误问题

    解决修改mysql的data_dir所引发的错误问题可以按照下面的步骤进行: 步骤一:停止MySQL服务 在修改MySQL的data_dir之前,需要先停止MySQL服务以避免丢失数据。可以通过以下命令停止MySQL服务: sudo systemctl stop mysql 步骤二:创建新的数据目录 可以通过以下命令创建新的数据目录: sudo mkdir …

    MySQL 2023年5月18日
    00
  • MySQL的慢日志线上问题及优化方案

    下面我将详细讲解如何解决MySQL的慢日志线上问题,以及一些优化方案。 什么是MySQL的慢日志? MySQL的慢日志是记录MySQL查询语句的执行时间超过设定阈值的日志。一般情况下,在生产环境中尽量开启MySQL的慢日志,以协助定位某些查询的性能瓶颈问题。 MySQL的慢日志线上问题 当MySQL的慢日志文件增长过快或者查询执行时间过长时,会导致一些线上问…

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