ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySql--存储过程

2022-08-16 00:01:02  阅读:157  来源: 互联网

标签:存储 -- MySql ssm INT SQL PROCEDURE furn


MySql--存储过程

创建

DELIMITER $$  -- 代表执行分隔符(原来是;这里重新定义为$$)

USE `furn_ssm`$$  -- 存储过程建立在数据库下,这里指使用数据库furn_ssm

DROP PROCEDURE IF EXISTS `p1`$$ -- 这里保证删去同名存储过程,如果存在的话

CREATE DEFINER=`root`@`localhost` PROCEDURE `p1`(IN a INT, IN b INT, OUT c INT)
BEGIN
	SET c = a + b;
	END$$

DELIMITER ; -- 代表执行分隔符(这里重新恢复为;)

######################################################## 分割线

DELIMITER $$

USE `furn_ssm`$$

DROP PROCEDURE IF EXISTS `p2`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `p2`(IN a INT, OUT r INT)
BEGIN
	DECLARE `x` INT DEFAULT 0; -- 定义局部变量x,默认值为0
	DECLARE `y` INT DEFAULT 0; -- 定义局部变量y,默认值为0
	SET `x` = a*a;
	SET `y` = a/2;
	SET r = `x`+`y`;
	END$$

DELIMITER ;

######################################################## 分割线

DELIMITER $$

USE `furn_ssm`$$

DROP PROCEDURE IF EXISTS `p3`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `p3`(OUT `sum` INT) -- 输入输出可以标记为inout,标识为即可输入,又可输出
BEGIN
	SELECT COUNT(id) INTO `sum` FROM furn; -- 通过into来赋值
	END$$

DELIMITER ;

使用

-- 使用p1
SET @m = 0; -- 定义用户变量
CALL p1(3,2,@m); -- 使用存储过程
SELECT @m FROM DUAL; -- 显示结果

-- 使用p2
SET @mm = 0;
CALL p2(6,@mm);
SELECT @mm FROM DUAL;

-- 使用p3
SET @mmm = 0;
CALL p2(6,@mm);
SELECT @mm FROM DUAL;

执行控制

分支语句

-- 单分支
if conditions then
	--SQL
end if;

-- 双分支
if conditions then
	--SQL
else
	--SQL
end if;

-- 多分支
case 变量
	when conditions then
		--SQL
	when conditions then
		--SQL
	when conditions then
		--SQL
	when conditions then
		--SQL
	else
		--SQL
end case;

循环语句

-- while
declare i int;
set i = 0;
while i<3 do
	--SQL
	set i = i + 1;
end while;

-- repeat
declare i int;
set i = 0;
repeat
	--SQL
	set i = i + 1
until i > 3 end repeat;

-- loop
declare i int;
set i = 0;
myloop:loop
	-- SQL
	set i = i + 1
	if i = 3 then
		leave myloop;
	end if;
end loop;

查询、修改、删除

-- 查询指定数据库下的存储过程
SHOW PROCEDURE STATUS WHERE db='furn_ssm'
-- 查询存储过程的创建细节
SHOW CREATE PROCEDURE furn_ssm.p1

-- 修改存储过程的是修改存储过程的特征
alter procedure <proc_name> 特征1 [特征2 特征3 ....]
-- 具体特征和使用自行百度

-- 删除
drop procedure furn_ssm.p1

游标(结果集)

-- 语法,声明游标并指向一个结果集
declare cursor_name cursor for select_statement;

游标使用

参考链接

https://www.csdn.net/tags/OtDaIg5sMDUxMy1ibG9n.html
https://www.cnblogs.com/wjoyxt/p/5420582.html
https://www.bilibili.com/video/BV1qb4y1Y722

标签:存储,--,MySql,ssm,INT,SQL,PROCEDURE,furn
来源: https://www.cnblogs.com/shaozelong/p/16590148.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有