Mysql 存储过程
数据库存储过程就是在数据库内的一段代码,将常用的、比较复杂的SQL操作,提前写好并使用指定名称保存在数据库中,后续使用时直接调用。
存储过程是可编程的函数,在不同数据库中有一定差异。
以下均以Mysql为例:
1.创建、调用、删除存储过程
-- 创建存储过程 CREATE PROCEDURE 存储过程名称( IN|OUT 参数名 参数类型(参数长度)) BEGIN SQL及相关逻辑判断等语句; END; -- 调用存储过程 CALL 存储过程名称(参数名); -- 删除存储过程 DROP PROCEDURE 存储过程名称;
ps:存储过程可以有传入传出参数,也可以没有参数;存储过程中的参数名称不能和相关表字段名称一样,否则可能导致相关sql操作异常;
eg:
-- 以根据传入的id来修改指定行数据的存储过程为例 -- 创建表 CREATE TABLE `testTable` ( `id` int(11) NOT NULL, `name` varchar(255) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ); -- 插入两条测试数据 INSERT INTO testTable(id,name) VALUES (1,'name1'),(2,'name2'); -- 创建存储过程 CREATE PROCEDURE setName(IN nameid INT(11),newName VARCHAR(255)) BEGIN UPDATE testTable SET name=newName WHERE id=nameid; END; -- 调用存储过程 CALL setName(1,'新的名称');
2.存储过程中的循环语句
-- while循环语法 WHILE expression DO statements END WHILE
--repeat循环语法 REPEAT statements UNTIL expression END REPEAT
3.存储过程中的判断语句
-- if判断语法 IF expression THEN statements; ELSEIF expression THEN statements; ELSE statements; END IF; -- eg(满分100分,感觉输入的分数判断是否合格) CREATE PROCEDURE test ( IN mark INT ) BEGIN IF mark < 60 THEN SELECT '不合格' AS 成绩; ELSEIF mark >= 60 AND mark <= 100 THEN SELECT '合格' AS 成绩; ELSE SELECT 'mark值错误' AS err; END IF; END;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了