重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
day06 MySQL数据库存储过程和函数
成都创新互联公司服务项目包括民和网站建设、民和网站制作、民和网页制作以及民和网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,民和网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到民和省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!一、存储过程和函数的概述:
数据库的存储过程和存储函数是指在数据库中定义的一些sql语句的集合,直接调用这些存储过程的名字或存储函数的名字就可以直接使用这些sql。可以避免开发人员大量的写一些sql语句操作数据,可以减少客户端和服务器端的数据传输。所以,学好存储过程和存储函数也是很重要的哦!
二、存储过程【procedure】
1、创建存储过程
create procedure 自定义一个存储名() begin select 语句 end; call 存储名(); 调用存储过程2、删除存储过程
drop procedure 存储名;3、带参数的存储过程
3.1:in参数,即输入参数
create procedure 存储名(in 列名 数据类型) begin select 语句 end; call 存储名(列名的值);3.2:out参数,即输出参数
create procedure 存储名(out 列名 数据类型) begin select * into 列名 from 表名; end; call 存储名(@列名);3.3:inout参数,即输入输出参数
create procedure 存储名(inout 列名 数据类型) begin select * into 列名 from 表名; end; set @列名=某个值 //定义一个变量并赋值 call 存储名(@列名);4、定义变量
4.1:定义局部变量
declare a int //定义 set a=10; //赋值 select a; //输出4.2:定义全局变量“@作为起始符”
set @b=20; //定义会话变量 select @b; //输出三、存储函数【function】
1、创建存储函数定义的实例。
create function 函数名(a int , b int) returns int begin declare c int; set c=a+b; return c; end; select 函数名(a的数值,b的数值) //调用存储函数四、光标的运用
在MySQL查询数据库肿,存储过程和存储函数中使用光标可以实现逐条的读取结果集中的记录。主要包括以下几个步骤:
1、声明光标:
declare 光标名 cursor select_name 译;select_name:是一个select语句,返回一行或多行数据。实例:
declare info_student cursor for select sid,name,age from student where sid=1;2、打开光标
open 光标名称3、使用光标
fetch 光标名称 into 列名;4、关闭光标
close 光标名称五、查看存储过程和函数
1、使用show status 语句查看
show { procedure | function } status [like 'pattern'] 译: procedure:表示查询存储过程 function:表示查询存储函数 like 'pattern':用来匹配存储过程或函数名称。2、使用show create语句查看
show create { procedure | function } sp_name; 译; procedure:表示查询存储过程 function:表示查询存储函数 sp_name:表示存储过程或函数名称3、修改存储过程和存储函数
alter { procedure | function } sp_name { contains sql | no sql | reads sql data | modifies sql data } | sql security { definer | invoker } | comment 'string' 译: procedure | function:表示是存储过程还是存储函数 sp_name :表示名称 contains sql:表示子程序包含sql语句,但是不包含读写数据的语句 no sql:表示子程序包含sql语句 reads sql data:表示子程序中包含读数据的语句 modifies sql data :表示子程序中包含写数据的语句 definer | invoker:表示指明权限执行,前者是定义者自己能够执行, 后者是调用者可以执行 comment 'string':注释信息4、删除存储过程和存储函数
drop { procedure | function } sp_name六、结束语:
学到这里,存储过程和存储函数就已经学完了哦!好好消化一下吧!
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。