MySQL基础八之存储过程

本文详细介绍了存储过程的概念及其在SQL中的应用。包括存储过程的创建、调用、删除等操作,以及存储过程与自定义函数之间的区别。通过实例展示了不同类型的参数如何在存储过程中使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1.存储过程简介

1.1.概念:存储过程是SQL语句和控制语句预编译的集合,以一个名称存储作为一个单元处理(省去了语法分析和编译的过程提高了效率)。

1)增强了SQL语句的功能和灵活性

2)实现了较快的执行速度

3)减少了网络流量

1.2.

CREATE

[DEFINER = {user | CURRENT_USER}]

PROCEDURE sp_name ([proc_parameter[,......]])

[characteristic ......] rotine_body

1)proc_paramete[IN | OUT | INOUT] param_name type

2)IN:表示该参数的值必须在调用改存储过程时候被指定,这个值不能被返回。

3)OUT:表示该参数的值可以被存储过程改变,并且可以返回。

4)INOUT:表示该参数调用时指定,并且可以被改变与返回。

5)过程体:和函数体差不多

1.3.创建不带参数的存储过程(查看版本信息)

CREATE

PROCEDURE sp1()

SELECT VERSION();

1.3.1.调用:CALL sp1()或者CALLsp1

1.4. 创建带有IN类型参数的存储过程(删除表记录)

CREATE

PROCENDURE sp2(IN col_name INT UNSIGNED)

BEGIN

DELETE FROM table_name WHERE where_condition;

END

//

1)col_name不能和数据库中的字段名相同,不然所有都会删除。

2)删除存储过程:DROP PROCENDURE sp_name

1.5.创建带有IN类型和OUT类型的存储过程(删除用户并返回用户总数)

CREATE

PROCENDRE sp3(IN col_name INT UNSIGNED, OUT col_name1 INT UNSIGNED )

BEGIN

DELETE FORM table_name WHERE where_condition;

SELECT COUNT(col_name) FROM table_name INTO col_name1

END

//

1)查询返回的参数:SELECT @nums;@为用户变量)

1.6.自定义函数和存储过程的区别

1)存储过程复杂一些,函数的针对性强

2)返回值个数不一样函数为一个,存储过程可以返回多个

3)存储过程都是独立运行的,而函数一般结合SQL一起使用

注明:存储的ALTER只能修改部分特性,如果要修改过程体,只能删除原有的存储过程再新建。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值