时间:2021-07-01 10:21:17 帮助过:4人阅读
记得在上一次的面试中,面试官问我什么是数据库的存储过程,我当时真的头脑一发热什么都不知道压根没有听过这个问题,我当时在想数据库还有存储过程吗?
其实数据库的存储过程类似java中的方法。就是把一些语句,逻辑封装到方法中用到的时候我们去调用就可以了。
好处:
1.提高了代码的重用性
2.简化操作
存储过程的含义:
一组预先编译好的sql语句集合,也可以理解成批处理语句,但是存储过程要比批处理要强大得多。
好处就是:减少了编译次数,减少了和数据库的连接次数,从而提高了效率。
向admin表中插入2条记录
语法:
delimiter $ (设置结束标记)
create procedure myp1()
begin
insert into admin (字段,字段..)vaules (值,值...)
end $
调用
call myp1() $
案例1:创建存储过程实现 根据女神名,查询对应的男神信息
CREATE PROCEDURE myp2(IN beautyName VARCHAR(20))
BEGIN
SELECT bo.*
FROM boys bo
RIGHT JOIN beauty b ON bo.id = b.boyfriend_id
WHERE b.name=beautyName;
END $
#调用
CALL myp2(‘柳岩‘)$
案例1:根据输入的女神名,返回对应的男神名
CREATE PROCEDURE myp6(IN beautyName VARCHAR(20),OUT boyName VARCHAR(20))
BEGIN
SELECT bo.boyname INTO boyname
FROM boys bo
RIGHT JOIN
beauty b ON b.boyfriend_id = bo.id
WHERE b.name=beautyName ;
END $
#调用
CALL myp7(‘小昭‘,@name,@cp)$
SELECT @name,@cp$
案例
1:传入a和b两个值,最终a和b都翻倍并返回
CREATE PROCEDURE myp8(INOUT a INT ,INOUT b INT)
BEGIN
SET a=a*2;
SET b=b*2;
END $
#调用
SET @m=10$
SET @n=20$
CALL myp8(@m,@n)$
SELECT @m,@n$
语法:drop procedure 存储过程名
DROP PROCEDURE p1;
DROP PROCEDURE p2,p3;#×
DESC myp2;×
SHOW CREATE PROCEDURE myp2;
数据库存储过程
标签:效率 sele 发热 提高 begin HERE name into 数据库