SQL语句需要先编译然后执行,而存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
语法:
delimiter //
create procedure p1(in 参数名 参数类型) 注:括号里的是形参,多个形参用 “,” 分开,并且不管你传不传参数,都要带上括号 p1()
begin
操作体(sql语句);
end //
delimiter ;
call p1(实参) 注:调用存储过程p1,执行的是begin和end之间的代码,并且多个实参也要用 “,” 分开
注意:
实参和形参一一对应
MySQL默认以";“为分隔符,如果没有声明分割符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“delimiter //”声明当前段分隔符,让编译器把两个”//"之间的内容当做存储过程的代码,不会执行这些代码;“delimiter ;”的意为把分隔符还原。