ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL基础—存储过程和函数

2020-12-01 21:04:33  阅读:349  来源: 互联网

标签:存储 20 函数 create bo 参数 MySQL procedure


存储过程和函数

含义:存储过程和函数:类似于java中的方法。

好处:1、提高代码的重用性

2、简化操作

存储过程:一组预先编译好的SQL语句的集合,理解成批处理语句。

1、提高代码的重用性

2、简化操作

3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率。

一、创建语法

create procedure 存储过程名(参数列表)

begin

存储过程体(一组合法的SQL语句)

end

注意:

1、参数列表包含三部分

参数模式、参数名、参数类型

举例:

in stuname varchar(20)

参数模式:

in:该参数可以作为输入,该参数需要调用方传入值

out:该参数可以作为输出,也就是该参数可以作为返回值。

inout:该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值。

2、如果存储过程体仅仅只有一句话,begin end 可以省略。

存储过程中的每条sql语句的结束要求必须加分号

存储过程的结尾可以使用delimiter重新设置

delimiter结束标记

delimiter $

二、调用列表

call 存储过程(实参列表);

创建带in模式参数的存储类型

案例1:创建存储过程实现,根据女生名,查询对应的男神信息

create procedure myp2(in beautyname varchar(20))

begin

     select bo.*

   from boys bo

   right join beauty b on bo.id = b.boyfriend_id

   where n.name = beautyname;

end $

调用

call myp2('刘燕')

案例2:创建存储过程,实现用户是否登录成功

create procedure myp3(in username varchar(20),in password varchar(20))

begin

  declare result  int(20) default '';声明并初始化

  select count(*) into result 赋值

  from admin

  where admin.username = username

  and admin.password = password;

  select if(result>0,'成功','失败'); 使用

end $

创建带out模式的储存类型

案例1:根据女神名,返回对应的男神名

create procedure myp5(in beauty varchar(50),out boyname varcha(20))

begin

  select bo.boyname into boyname

  from boys bo

  inner join beauty b on bo.id = b.bo.boyfriend

  where b.name = beautyname;

end $

案例2:根据女神名,返回对应的男神名和男神魅力值

create procedure myp6(in beautyname varchar(20),out boyname varcha(20),out usercp int)

begin

  select bo.boyname ,bo.usercp  into boyname,usercp

  from boys bo

  inner join beauty b on bo.id = b.bo.boyfriend

  where b.name = beautyname;

end $

4、创建带inout模式的存储过程

案例1:传入a和b两个值,最终a和b的翻倍并返回

create procedure myp8(into a int,inout b int)

begin

  set   a = a*2

  set     b = b*2

end $

调用

set @m = 10$

set @n = 20$

call myp8(@m,@n)

二、删除存储过程

语法:

drop procedure 存储过程名称

三、查看存储过程

语法:

show create procedure 存储过程名称

存储过程无法修改,想要更改,只能删除重建。

 

标签:存储,20,函数,create,bo,参数,MySQL,procedure
来源: https://www.cnblogs.com/puffffff/p/14065750.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有