1、什么是存储过程
(1)mysql 5.0版本开始支持存储过程
(2)简单的说,存储过程就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法。
(3)存储过程就是数据库SQL语言层面的代码封装与重用。
2、存储过程的特性
(1)有输入、输出参数,可以声明变量,有if/else , case, while 等控制语句,通过编写存储过程,可以实现复杂的逻辑功能。
(2)函数的普遍特性:模块化、封装、代码复用
(3)速度快,只有首次执行需经过编译和优化步骤,后续被调用可以直接执行,省去以上步骤。
3、格式
delimiter 自定义结束符
create procedure 储存名([in, out, inout] 参数名 数据类型...)
begin
sql语句
end 自定义结束符号
delimiter ;
注意:自定义结束符号一般用:$$或者\\
4、操作
创建数据库:my_procedure
创建学生表,并向表中插入数据:
表中的数据为:
创建存储过程:
调用存储过程:
5、Mysql操作---变量定义
(1)局部变量
局部变量,是用户自定义,只在begin 和end之间有效。
声明局部变量语法:
declare var_name type [default var_value];
解释:
例如:declare nickname varchar(30);
举例:
代码:
delimiter $$
create procedure proco2()
begin
declare var_name varchar(20) default 'aaa';
set var_name ='zhangsan';-- 给局部变量赋值
select var_name;
end $$
delimiter ;
调用存储过程:
为变量赋值
Mysql中还可以使用select .... into 语句为变量赋值。其基本语法为:
select col_name [...] into var_name [...] from table_name where condition;
(1)col_name参数表示查询的字段名称。
(2)var_name参数是变量的名称
(3)table_name参数指表的名字
(4)condition参数指查询条件
注意:当将查询结果赋值给变量时,该查询语句的返回结果只能是单行单列。