MySql存储过程与调用

存储过程

存储过程的作用:所谓的存储过程,就是一组用于完成特定数据库功能的SQL语句集,该SQL语句经过编译后存储在数据库系统中,在使用的时候,用户通过调用指定已经定义好的存储过程并执行它,从而完成一系列的数据库操纵

个人理解:这学期有30本书,你每次上学放学都用手捧着不方便,所以你买了个书包,把书全部放进书包里,等你想看语文书的时候,你就从书包里面"拿"出来,等一下,这里的"拿"就是存储过程的调用,而SQL语句集就等于书,这么说是不是好理解多了。

 

下一步:存储过程的创建和调用

语法:drop procedure if exists sss;  如果存储过程sss存在就删除

         create procedure sss()         创建存储过程,并且给它起个名字叫sss

         begin    开始

         --声明变量(不是必要的)

        --写sql语句

         select * from student;   查询学生表

         end;--结束

         call sss();  调用存储过程

练习的时候一定要认真反复的多敲几遍,这样才能记的牢固不会报错

 

什么是变量?

变量我们可以理解为一个存储空间的名称

变量声明的语法

declare  变量名 类型(长度)

变量名要求

1,只能是字母,数字,下划线

2,首字母必须是字母

3,长度不允许超过30

4,不允许使用关键字:name,or,select,and

语法:create procedure sss()

        begin

        declare jake varchar(20);    //声明变量jake,定义数据类型,长度

        set jake=''唐阿飞";               //将变量jake赋值为唐阿飞

        select jake;                          //查询变量jake

        end;                                     //结束

        call sss();                            //调用存储过程

if分支语句

        if(条件) then

         sql或sql语句

        【else if(条件) then】

           可以有多个elseif

          [else]

          end if;

举列使用if.....else

         drop procedure if exists test_d;

         create procedure test_d;

         declare book int(10);   //定义变量book 类型为int,长度10;

          set book = 600;          //给变量book赋值=600;

          if book>500 then       //条件判断,如果变量book大于500 ,那么

                    select'我能月入过万';            //输出:我能月入过万

          else if book>=200 then                   //否则如果book大于等于200,那么

                    select'我每月7000';               //输出:我每月7000

           else                                                //否则

                     select'月薪4500,包吃包住,电子厂打螺丝';       //输出:月薪4500,包吃包住住,电子厂打螺丝

           end;

           call test_d();

 

LOOP循环语句

loop循环中,我们需要自定义循环结束的条件,语法如下:

语法:loopName:loop

           if 条件 THEN     满足条件时离开循环

               leave loopName;  //跳出循环

            end if;

        end loop;

举例子使用loop循环

drop procedure if exists test_e;   //如果存储test_e存在则删除

create procedure test_e();          //创建test()

begin                                           //开始

declare i int default 0;                  //定义一个变量i并且默认为空

loopName:loop                            //开始循坏,取名为loopName

      select'世界你好';                 //查询世界你好

      set i=i+1;                               //i变量每次循环加1

      if i >10 then                           //如果i大于10 那么

      leave loopName;                   //跳出循环

   end if;                                       //结束判断

   end loop;                                  //结束循环

   end;                                          //结束

   call test_e();                             //调用存储test_e()

 

还可以利用循环批量插入数据:

如,批量插入100条数据

  create procedure testq();                     

  begin

           declare a int default 0;                      //定义变量a 设置Int类型,默认为0

           loopname:loop                                  //开始循环,取名为loopName

           insert into student(sname,sex,age)values("小红",'女',18");  

           set a = a+1;                                       //设置变量a每次循环+1

           if a>100 then                                     //如果a>100 name

           leave loopname;                               //跳出循环

           end if;                                                //结束条件判断

           end loop;                                           //结束循环

           end;                                                   //结束

           call testq();                                         //调用

           select * from student;                         //查看数据是否成功插入student表内

查询出来的结果应是100条(小红,女,18);

本人有软件测试基础理论,测试计划,用例设计,测试流程,数据库,postman,jmeter,Linux系统操作,Python,selenium,appium,ui自动化测试课程分享。添加微信15200565770获取

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值