MySql的初学习 -- 第十章 -- 存储过程


博客说明

文章内容输出来源:拉勾教育Java就业急训营

什么是存储过程

存储过程其实就是一堆 SQL 语句的合并。中间加入了一些逻辑控制。

存储过程的优点

  1. 调试完成就可以稳定运行(在业务需求相对稳定的情况)
  2. 存储过程可以减少 业务系统与数据库的交互

存储过程的缺点

  1. 互联网项目中,较少使用存储过程,因为业务需求变化太快
  2. 存储过程的移植十分困难

存储过程的创建

普通的存储过程:

/*
格式:
delimiter $$  --声明语句的结束符号,可以自定义 ||....
create procedure 存储过程名称()
begin -- 开始编写存储过程

	#要执行的SQL
	
end $$ -- 存储过程结束
*/
DELIMITER $$
CREATE PROCEDURE test_proc()
BEGIN
SELECT * FROM table1;
END $$

可以接收参数的存储过程:

/*
格式:
delimiter $$  --声明语句的结束符号,可以自定义 ||....
create procedure 存储过程名(in 参数名 参数类型)
begin -- 开始编写存储过程

	#要执行的SQL
	
end $$ -- 存储过程结束
*/
DELIMITER $$
CREATE PROCEDURE test_proc(IN table_id INT)
BEGIN
DELETE FROM table1 WHERE id = table_id;
END $$

可以获取存储过程的返回值:

/*
1.变量的赋值:SET @变量名 = 值
2.OUT输出数据:OUT 变量名 数据类型

格式:
delimiter $$  --声明语句的结束符号,可以自定义 ||....
create procedure 存储过程名(in 参数名 参数类型)
begin -- 开始编写存储过程

	#要执行的SQL
	
end $$ -- 存储过程结束
*/
#向表中插入一条数据,返回1表示成功
DELIMITER $$
CREATE PROCEDURE test_proc(IN table_id INT,OUT num INT)
BEGIN
-- 实现插入操作
INSERT INTO table1 VALUES(table_id);
-- 设置num为1
SET @num = 1;
-- 返回num
SELECT @num;
END $$

存储过程的调用

#CALL 存储过程名称;
#普通
CALL test_proc;

# 接受参数
CALL test_proc(参数);

#获取返回值
--CALL test_proc(参数,@返回值)
CALL test_proc(1,@num);

猜你喜欢

转载自blog.csdn.net/zy3062231314/article/details/113022455