关注微信公共号:小程在线
关注CSDN博客:程志伟的博客
一、无参数无返回值存储过程
DELIMITER表示自定义结束符号,SQL一般默认;为结束符号
红色部分为固定格式
下面的查询语句,可以改成任意复杂的SQL语句
DELIMITER $
CREATE PROCEDURE select_all_data()
BEGIN
SELECT * FROM employees;
END $
DELIMITER ;
调用存储过程:
call select_all_data
二、创建存储过程将最低薪资通过OUT参数“ms”输出
DELIMITER //
CREATE PROCEDURE show_min_salary(OUT ms DOUBLE)
BEGIN
SELECT MIN(salary) INTO ms
FROM employees;
END //
DELIMITER ;
调用存储过程: @表示该变量是用户自定义
call show_min_salary(@ms)
查看:
SELECT @ms;
三、创建存储过程用IN参数empname输入员工姓名。
DELIMITER //
CREATE PROCEDURE show_someone_salary(IN empname VARCHAR(20))
BEGIN
SELECT salary FROM employees
WHERE last_name = empname;
END //
DELIMITER ;
调用存储过程:
CALL show_someone_salary('Abel');
四、创建存储过程用IN参数empname输入员工姓名,用OUT参数empsalary输出员工薪资。
DELIMITER //
CREATE PROCEDURE show_someone_salary2(IN empname VARCHAR(20),OUT empsalary DECIMAL(10,2))
BEGIN
SELECT salary INTO empsalary
FROM employees
WHERE last_name = empname;
END //
DELIMITER ;
调用存储过程:
SET @empname = 'Abel';
CALL show_someone_salary2(@empname,@empsalary);
SELECT @empsalary;
五、创建存储过程查询某个员工领导的姓名,并用INOUT参数“empname”输入员工姓名,输出领导的姓名。
DELIMITER $
CREATE PROCEDURE show_mgr_name(INOUT empname VARCHAR(25))
BEGIN
SELECT last_name INTO empname
FROM employees
WHERE employee_id = (
SELECT manager_id
FROM employees
WHERE last_name = empname
);
END $
DELIMITER ;
调用存储过程:
SET @empname := 'Abel';
CALL show_mgr_name(@empname);
SELECT @empname;
更多推荐
Mysql 存储过程案例教程
发布评论