对应第14章
存储过程和函数区别?
函数有返回值,存储过程没有,存储过程的参数类型远远多于函数参数类型。
创建、查看、更新、删除存储过程和函数
1、创建存储过程和函数
创建存储过程和函数最方便方法:右键新建,修改代码即可。
创建存储过程:
CREATE PROCEDURE 存储过程名(多个参数)
[characteristic...] routine_body
characteristic表示存储过程的特性,routine_body表示存储的SQL代码,可用BEGIN...END表示开始和结束
一般命名:proce_xxx
创建函数:
CREATE FUNCTION 函数名(多个参数)
[characteristic...] routine_body
一般函数命名:func_xxx
例:
创建查询所有雇员工资的存储过程:
DELIMITER $$
CREATE PROCEDURE proce_employee_sal()
COMMENT '查询所有雇员工资'
BEGIN
SELECT sal
FROM t_employee;
END$$
DELIMITER ;
查询某个员工工资的函数:
本函数有参数,有返回值
DELIMITER $$
CREATE FUNCTION func_employee_sal(p_empno INT(11))
RETURNS DOUBLE(10,2)
COMMENT '查询某个雇员工资'
BEGIN
RETURN
(
SELECT sal
FROM t_employee
WHERE empno=p_empno
);
END$$
DELIMITER ;
2、存储过程和函数的表达式
定义变量:DECLARE var_name[,…] TYPE [DEFAULT VALUE];
例:DECLARE employee_sal INT DEFAULT 2000;
赋值:例,SET employee_sal=3000;
赋值也可以用“SELECT … INTO”
SELECT field_name[,…] INTO var_name[,…]
FROM table_name
WHERE CONDITION;
流程控制:
IF CASE LOOP WHILE REPEAT