存储过程
是一组为了完成特定功能的SQL语句集
创建存储过程
语法:
delimiter // #声明一个结束分隔符,当下一次遇到这个符号的时候,代表创建存储过程结束了
create procedure 存储过程名称(输入输出类型 参数名1 参数数据类型)
begin
sql 语句
end//
输入输出类型有三种:in,out,inout
in -- 代表输入参数
out --代表输出参数
inout --代表输入输出参数
示例:创建存储过程wyb_001,查询员工的姓名,性别和工资以及部门编号信息
deliiter //
create procedure wyb_001()
begin
select ename,sex,sal,deptno from emp;
end //
调用存储过程:
语法: call 存储过程名(参数)
call wyb_001;
删除存储过程
语法:
drop procedure 存储过程名
drop procedure wyb_001;
练习:创建存储过程wyb_002,查询姓张且工资大于30000的男性员工的员工编号,姓名,性别和工资以及职位信息
delimiter //
create procedure wyb_002()
begin
select empno,ename,sex,sal,job from emp where ename like '张%' and sal > 3000;
end //
call wyb_002();
示例:创建存储过wyb_003查询指定员工编号的员工编号,姓名,性别和工资以及部门编号信息
delimiter //
create procedure wyb_003(num int)
begin
select * from emp where empno = num;
end //
call wyb_003();
练习:创建存储过程test_01,通过输入办公地点关键字查询部门编号,部门名称、部门办公地点
delimiter //
create procedure test_01(lo char(24))
begin
select deptno,dname,loc from dept where loc like lo;
end //
call test_01('%北京%')
定义变量,给变量赋值等操作都是在begin和end中间
定义变量: declare
语法:
declare 变量名 变量的数据类型[default 默认值]
给变量赋值:
语法1: set 变量名 = 值 ;
语法2: select 字段1,字段2,... into 变量名1,变量名2,... from 表明 # 将查询出来的值赋值给对应的变量
语法3:set @变量 = 值 # 实例:set @num =1,申明一个变量并给他赋值
语法4:select @