存储过程和函数的区别?

MySQL5.0开始支持存储过程
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,
一次编译后永久有效,用户通过存储过程的名称和参数(如果该存储过程带有参数)来执行它。
存储过程是数据库中的一个重要对象。
存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
一、存储过程的创建和调用
存储过程就是具有名字的一段代码,用来完成一个特定的功能。
创建的存储过程保存在数据库的数据字典中。
DELIMITER $
CREATE PROCEDURE myp1()
BEGIN
		INSERT INTO admin(username,password)
		VALUES ('john1','0000'),('lily','0000');
END $

#调用
CALL myp1() $
带in模式的存储过程
#根据女神名,查询对应的男神信息
DELIMITER $
CREATE PROCEDURE myp2(IN beautyName VARCHAR(20))
BEGIN
		SELECT bo.*
		FROM boys
		RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
		WHERE b.name=beautyName;
END $

#调用
CALL myp2('小花') $


存储过程的参数列表可以是输入参数、输出参数、可输入输出的参数
函数的参数列表只有输入参数

存储过程的返回值可以有多个值
函数的返回值只能有一个值

存储过程是用户定义的一系列SQL语句集合,设计特定表或其他对象的任务,用户可以调用存储过程。
而函数通常是数据库已定义的方法。
全部评论

相关推荐

04-28 11:34
西北大学 运营
牛客4396号:不好意思,这个照片猛一看像丁真
点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务