千家信息网

MySQL数据库提升篇-----存储过程和函数

发表于:2024-09-27 作者:千家信息网编辑
千家信息网最后更新 2024年09月27日,day06 MySQL数据库存储过程和函数一、存储过程和函数的概述:数据库的存储过程和存储函数是指在数据库中定义的一些sql语句的集合,直接调用这些存储过程的名字或存储函数的名字就可以直接使用这些sq
千家信息网最后更新 2024年09月27日MySQL数据库提升篇-----存储过程和函数

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



六、结束语:

学到这里,存储过程和存储函数就已经学完了哦!好好消化一下吧!

0