当前位置: 首页 > 科技观察

MySQL存储过程分析

时间:2023-03-18 15:28:10 科技观察

mysql存储过程存储过程(StoredProcedure)是一种数据库对象,将复杂的程序存储在数据库中,以供外部程序调用。目的是完成一组具有特定功能的SQL语句,编译保存在数据库中。用户可以通过指定存储过程的名称和给定参数(必要时)来调用和执行存储过程。说白了就是数据库SQL语言层面的代码封装和复用。创建的存储过程通常存储在数据库的数据字典中。1.创建存储过程createprocedure存储过程名(参数列表)开始存储过程体(一组合法的sql语句)结束参数列表包含3个部分:参数方式参数名参数类型。例子:INuseridvarchar(20)有3种参数方式:in:传入和接收out:输出,作为返回值inout:可以作为输入或输出begin...end用途:如果存储过程体只在一个word,beginend不需要写存储过程每条sql语句的结尾。必须在存储过程的末尾添加一个分号。使用定界符重置定界符$...$2。调用存储过程的语法CALL存储过程名(参数列表)3.创建调用案例分析①.空参数列表#空参数存储过程case#创建存储过程DELIMITER$#修改存储过程结束标识符号CREATEPROCEDUREmyP1()BEGINinsertintodemo01(id,name,age,sex)values(10011,"jalen",27,1),(10021,"xiar",26,1),(10031,"heli",24,0),(10041,"weiwei",28,1);END$DELIMITER;#Endmark改回#调用存储过程CALLmyP1();#查看表结果select*fromdemo01;②.mode参数的存储过程中,进入单个参数的存储过程#2.1mode参数的存储过程中,输入单个参数#创建存储过程DELIMITER$CREATEPROCEDUREmyP2(INInNamevarchar(20))BEGINSELECT*fromdemo01wherename=InName;END$DELIMITER;#把结束标识符改回来#调用存储过程CALLmyP2("jalen");进入多参数存储过程#2.2在mode参数的存储过程中,进入多参数#创建存储过程DELIMITER$CREATEPROCEDUREmyP3(INInAgeint,INInSexint)BEGINDECLAREresvarchar(20)default"";#声明一个局部变量resSELECTnameintores#AssignFROMdemo01WHEREage=InAgeANDsex=InSex;SELECTres;#使用局部变量END$DELIMITER;#调用存储过程CALLmyP3(27,1);③.out模式参数存储过程#3.Out模式参数存储过程#创建存储过程分隔符$#修改存储过程结束标识CREATEPROCEDUREmyP4(INnamevarchar(20),outageint,outsexint)BEGINselectdemo01.age,demo01.sexintoage,sexfromdemo01wheredemo01.name=name;END$DELIMITER;#callCALLmyP4("jalen",@age,@sex);select@age,@sex;④.inout方式参数的存储过程#4.inout方式参数的存储过程#创建存储过程分隔符$#修改存储过程结束标识CREATEPROCEDUREmyP5(inoutmint,inoutnint)BEGINsetm:=m+10;setn:=n+10;END$DELIMITER;#改回原来的结束标识符分号#Callset@a:=5,@b:=10;CALLmyP5(@a,@b);select@a,@b;4。删除存储过程语法:dropprocedure存储过程名注意:一次只能删除一个存储过程案例:dropproceduremyP1;5.查看存储过程信息showcreateprocedurestoredname;