10分钟学会写一个简单的Mysql存储过程

本文详细介绍了MySQL存储过程的概念、创建、查看、执行及删除方法,并提供了具体示例。在创建存储过程中,展示了如何输入参数并返回结果。此外,还讨论了在高版本MySQL中遇到的`sql_mode=only_full_group_by`问题及其解决方案。
摘要由CSDN通过智能技术生成

一、什么是存储过程

存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂的工作预先用 SQL 语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。当以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用“CALL存储过程名字”即可自动完成。MySQL存储过程是什么?

二、存储过程怎么创建

CREATE PROCEDURE search_user_name ( #search_user_name为存储过程的名字
	IN search_name VARCHAR (20),
	#传入的参数
	OUT count_number INT #返回的参数
) READS SQL DATA #程序中包含读数据的语句
BEGIN
	SELECT
		COUNT(*) INTO count_number
	FROM
		`user`
	WHERE
		`name` LIKE CONCAT('%', search_name, '%');


END

三、查看

SELECT `name` FROM mysql.proc WHERE db = 'test' and `type` = 'PROCEDURE'   #查看指定数据库test中的存储过程
SHOW PROCEDURE STATUS #查看所有数据库的存储过程
SHOW CREATE PROCEDURE search_user_name #查看存储过程的创建代码

四、执行

1、执行说明

2、开始执行

  • 查询名字中带有 的用户的 数量
CALL search_user_name('李', @nameCount);
SELECT @nameCount;
  • 输出
@nameCount
2

五、删除存储过程

DROP PROCEDURE search_user_name;
  • 返回结果
[SQL]DROP PROCEDURE search_user_name;
受影响的行: 0
时间: 0.085s

  • 删除之后再执行 SHOW CREATE PROCEDURE search_user_name,名为 search_user_name 的存储过程不存在,提示如下
[SQL]SHOW CREATE PROCEDURE search_user_name

[Err] 1305 - PROCEDURE search_user_name does not exist

六、Mysql高版本:this is incompatible with sql_mode=only_full_group_by 问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值