SQL存储过程,函数

存储过程和函数的区别:
存储过程可以没有返回值,函数必须有返回值;

// 语法
CREATE PROCEDURE 存储过程名(参数列表)
BEGIN
	存储过程体;
END

参数模式 IN , OUT , INOUT
举例:IN name VARCHAR(20)

调用:CALL 存储过程名
1、 IN 参数
DELIMITER $  // 定义结束符号
CREATE PROCEDURE 	test01(IN name VARCHAR(20))
BEGIN
	DECLARE result  INT DEFAULT 0; # 声明并初始化
	select count(*) into  result  # 赋值
	from stu s where s.name = name ; 
	select result;
END $

调用:
CALL test01('小明') $ 


2、 OUT 参数

CREATE PROCEDURE 	test02(IN name VARCHAR(20), OUT  bname VARCHAR(20) )
BEGIN
	select s.bname into  bname 
	from stu s where s.name = name ; 
END $
调用:
CALL test02('小白',@bname)$
select @bame$

3、 INOUT 参数
CREATE PROCEDURE 	test03(INOUT a INT,INOUT b INT)
BEGIN
	SET a = a + 10 ;
	SET b = b + 10 ; 
END $

调用:
set @a=10$
set @b=20$
call test03(@a,@b)$
select @a,@b$


4、删除存储过程
DROP PROCEDURE 存错过程名;

5、查看存储过程信息
SHOW CREATE PROCEDURE  存错过程名;
函数语法
CREATE FUNCTION 函数名(参数列表)RETURNS 返回类型
BEGIN
		函数体
END
调用 
select 函数名(参数列表)

1、有参数返回
CREATE FUNCTUIN test01 (name VARCHAR(20) ) RETURNS DOUBLE
BEGIN
		SET @sal = 0;
		SELECT id INTO @sal
		FROM stu
		WHERE last_name = name ;
		RETURN @sal; 
END

select test01('xiaoming') $

查看函数
SHOW CREATE FUNCTION 函数名;

删除函数
DROP FUNCTION  函数名;

循环语句

if 函数
1、语法:if(表达式1,表达式2,表达式3)
如果表达式1成立,则返回表达式2的值,否则返回表达式3的值;

2、语法:
IF 条件1 THEN 语句1或返回值;
ELSEIF 条件2 THEN 语句2;
......
END IF; 			

case 结构
1、等值判断
CASE 变量|表达式|字段
WHEN 要判断的值 THEN 返回值1;
WHEN 要判断的值 THEN 返回值2;
.......
ELSE 要返回的值;
END CASE;

2、 区间判断

CASE 
WHEN 要判断的条件1 THEN 返回值1;
WHEN 要判断的条件2 THEN 返回值2;
.......
ELSE 要返回的值;
END CASE;

循环结构
1、while循环
WHILE 条件 DO 循环体
END WHILE;
举例:
CREATE PROCEDURE test01 (IN count INT ) 
BEGIN
		DECLARE i INT DEFAULT 1;
		WHILE i<count DO
		INSERT INTO admin(name,pwd) VALUES ('ROSE'+i,'123456');
		SET i = i + 1;
		END WHILE;
END

PS:LEAVE 结束循环
	  ITERATE 结束本次循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值