尚硅谷-存储过程

存储过程的好处
1、使用了存过程,很多相似性的删除,更新,新增等操作就变得轻松了,并且以后也便于管理!
2、存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。
3、存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因。
4、存储过程运行比较稳定,不会有太多的错误。只要一次成功,以后都会按这个程序运行。
5、存储过程主要是在服务器上运行,减少对客户机的压力。
6、存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。
7、存储过程可以在单个存储过程中执行一系列SQL语句。
8、存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。

#存储过程和函数
/*
存储过程和函数:类似于java中的方法
好处:
1、提高代码的重用性
2、简化操作
*/

#存储过程
/*
含义:一组预先编译好的SQL语句的集合,理解成批处理语句
1、提高代码的重用性
2、简化操作
3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
*/

procedure-过程
in进
out出

#一、创建语法
CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
	存储过程体(一组合法的SQL语句)
END

注意:
1、 参数列表包含三部分
参数模式 参数名 参数类型
举例:
IN stuname VARCHAR (20)
参数模式:
IN: 该参数可以作为输入,也就是该参数需要调用方传入值
OUT: 该参数可以作为输出,也就是该参数可以作为返回值
INOUT:一该参数既可以作为输入又可以作为输出,也就是该参数既需要传入值,又可以返回值

22、如果存储过程体仅仅只有一句话,BEGIN END可以省略
存储过程体中的每条sQl语句的结尾要求必须加分号。
存储过程的结尾可以使用DELIMITER 重新设置
语法:
DELIMITER 结束标记
案例:
DELIMITER $

#二、调用语法
 
CALL 存储过程名(实参列表) ;

#1.空参列表
#案例:插入到admin表中五条记录
SELECT * FROM admin;|

DELIMITER $
CREATE PROCEDURE myp1 ()
BEGIN
	INSERT INTO admin (username,password)
	VALUES('john1' , '0000'), ('lily', '0000'), ('rose', '0000'), ('jack', '0000'), ('tom', '0000') ;
END $

#调用
CALL myp1 ()$
为什么不是;,因为前面DELIMITER $

在这里插入图片描述
在这里插入图片描述

#2.创建带in模式参数的存储过程
#案例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 ('柳岩')$

#案例2 :创建存储过程实现,用户是否登录成功
CREATE PROCEDURE myp4(IN username VARCHAR(20), IN PASSWORD VARCHAR (20) )
BEGIN
	DECLARE result INT DEFAULT 0;#声明并初始化
	SELECT COUNT(*) INTO result#赋值
	FROM admin
	WHERE admin. username = username
	AND admin. password = PASSWORD;
	SELECT IF (result>0, '成功', '失败') ;#使用
END $

#调用
CALL myp3('张~飞', '8888')$






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值