• ADADADADAD

    MySQL存储过程高级SQL语句怎么创建[ mysql数据库 ]

    mysql数据库 时间:2024-11-25 13:37:22

    作者:文/会员上传

    简介:

    MySQL高级SQL语句(存储过程)一、存储过程的概述1.1 什么是存储过程存储过程是一组为了完成特定功能的SQL语句集合。 存储过程在使用过程中是将常用或者复杂的工作预先使用SQL

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    MySQL高级SQL语句(存储过程)一、存储过程的概述1.1 什么是存储过程

    存储过程是一组为了完成特定功能的SQL语句集合。
    存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。存储过程在执行上比传统SQL速度更快、执行效率更高。

    1.2 存储过程的有点

      执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率。

      SQL语句加上控制语句的集合,灵活性高。

      在服务器端存储,客户端调用时,降低网络负载。

      可多次重复被调用,可随时修改,不影响客户端调用。

      可完成所有的数据库操作,也可控制数据库的信息访问权限。

    二、创建、调用和查看存储过程2.1 创建存储过程

    delimiter$$#将语句的结束符号从分号;临时改为两个$$(可以自定义)createprocedureproc()#创建存储过程,过程名为proc,不带参数->begin#过程体以关键字begin开始->select*fromstore_info;#过程体语句->end$$#过程体以关键字end结束delimiter;#将语句的结束符号恢复为分号

    示例:

    delimiter$$createprocedureproc01()->bengin->createtablestudent(idint,namechar(10),ageint);->insertintostudentvalues(1,'zhangsan',18);->insertintostudentvalues(2,'lisi',18);->select*fromstudent;->end$$delimiter;

    2.2 调用和查看存储过程

    callproc;#调用存储过程showcreateprocedure[数据库.]存储过程名;#查看某个存储过程的具体信息showcreateprocedureproc;showcreateprocedureproc\Gshowprocedurestatus[like'%proc%']\G

    示例:

    callproc01;showcreateprocedureproc01;showcreateprocedureproc01\G#查看存储过程的具体信息showprocedurestatuslike'%Proc01%'\G


    2.3 删除存储过程

    #存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。dropprocedureifexistsproc;#仅当存在时删除,不添加IfEXISTS时,如果指定的过程不存在,则产生一个错误。

    示例:

    dropprocedureifexistsproc01;

    三、存储过程的参数

      IN 输入参数: 表示调用者向过程传入值。(传入值可以是字面量或变量)

      OUT 输出参数: 表示过程向调用者传出值。(可以返回多个值)(传出值只能是变量)

      INOUT 输入输出参数: 既表示调用者向过程传入值,又表示过程向调用者传出值。(值只能是变量)

      注意:变量名不能含有下划线。

      delimiter$$createprocedureproc2(instunamechar(20))#参数为stuname,数据类型一定要与下面的where语句后字段的数据类型相同->begin->select*fromstudentwherename=stuname;->end$$delimiter;callproc2('zhangsan');#调用存储过程,并传入参数‘zhangsan’

      四、存储过程的控制语句4.1 条件语句 :if-then-else … end if

      delimiter$$createprocedureproc03(ininnumint)#创建存储过程proc03,参数为innum,类型为int->begin->declarevarint;#定义变量var为int类型->setvar=innum*2;#变量var的值等于传入的参数值乘2->ifvar>=10then#当var的值大于10时,id值会加1,否则减1->updatesssetid=id+1;->else->updatesssetid=id-1;->endif;->end$$delimiter;callproc03(8);#调用存储过程,并传入参数8callproc03(3);#调用存储过程,并传入参数3

      4.2 循环语句 :while ···· end while

      delimiter$$#修改默认结束符为$$createprocedureproc05()#创建存储过程proc04->begin#过程体以关键字begin开始->declarevarint(10);#定义变量var为int类型->setvar=0;#var的起始值为0->whilevar<6do#使用while循环,当var值小于6时满足条件,则向表中插入var的值->insertintossvalues(var);->setvar=var+1;#每次循环后var值自增1->endwhile;#结束while循环->end$$#创建存储过程结束delimiter;#重新修改默认结束符为原始的;callproc05;#调用存储过程proc04

    MySQL存储过程高级SQL语句怎么创建.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: mysqlsql