存储过程-入门

2021-07-23  本文已影响0人  余于鱼不是鱼鱼鱼

存储过程(Stored Procedure)就是一组可编程的函数,为了完成特定功能的sql语句集,通过编译创建保存在数据库字典中。通过指定的名称和参数调用

存储过程(procedure)VS函数(function)

与存储过程类似,函数也是通过一条或多条sql组成的子程序,通过编译创建保存在数据库中,通过指定函数名和参数调用

存储过程(procedure) VS函数(function)
使用procedure创建 使用function创建
创建时不需要声明返回值,可以通过out返回零到多个值 创建时需要声明返回值,且返回值只有一个
可作为独立的PL(Procedure Language过程语言)/SQL执行 不能独立执行,必须作为表达式的一部分执行

优缺点

创建一个存储过程

创建一个存储引擎,给指定员工加薪

image.png

语法:

CREATE PROCEDURE 存储过程名称( [IN/OUT/INOUT 参数名 参数类型] ) 
BEGIN 
  过程体...
END 
结束符

存储过程的参数类型有3种
IN:表示传入参数(入参),存储过程参数默认类型(即不指定参数类型就是IN)
OUT:返回值(出参),通过调用存储过程改变其值
INOUT:即是入参也是出参

创建存储过程

delimiter //
CREATE PROCEDURE raiseSalary ( IN employ_id INTEGER, IN raise_amount DECIMAL ) 
BEGIN
    UPDATE `employ` 
    SET `salary` = `salary` + raise_amount 
    WHERE
        `id` = employ_id;
END 
// 
delimiter ;

使用delimiter //命令的作用是将结束符号";"零时改为"//",在创建完存储过程时,使用delimiter ;命令将结束符号还原
查看存储过程

// 查看创建的存储过程
SELECT name,type from mysql.proc WHERE name='raiseSalary'
调用

存储过程通过关键字call调用

image.png

语法:CALL 存储过程名([参数.......])

call raiseSalary(52456456,100);
删除

语法:DROP PROCEDURE [ IF EXISTS ] <过程名>

drop procedure raiseSalary;
上一篇下一篇

猜你喜欢

热点阅读