MySQL的变量

sql变量

自定义变量:
说明:变量用户自定义,而不是系统提供的
使用步骤:
1.声明
2.赋值
3.使用(查看、比较、运算等)
局部变量: ( BEGIN END 中使用 )

DECLARE 变量名 数据类型 DEFAULT 默认值

用户变量:作用范围是一次连接

赋值操作符:= 、:=

1. 声明并初始化
set @变量名=set @变量名:=select @变量名:=

例如:

--声明赋值
set @a=1;
set @b=2;
set @c=@a+@b;
select @c;

查询的内容赋值给变量
select last_name into @name from employees where employee_id = 10;

存储过程

含义:一组预先编译好的SQL语句的集合,理解成批处理命令

  1. 提高代码的重用性
  2. 简化操作
  3. 减少编译次数并且减少了和服务器的连接次数,提高了效率

一、语法

create PROCEDURE 存储过程名(参数列表)
BEGIN
存储过程体(一组合法的SQL语句)
END

参数模式:

in:该参数可以作为输入,也就是该参数需要调用方传入值
out:该参数可以作为输出,也就是该参数可以作为返回值
inout:该参数既可以作为输入,也可以作为输出,也就是该参数既需要传入值,又可以返回值

例题:

--创建存储过程 插入admin表新的数据信息
1.创建存储过程

DELIMITER $  #因为软件兼容性原因 必须声明开始和结束的标志
create PROCEDURE myp1()
BEGIN
insert into admin(username,password)
VALUES('zhangsan','00000'),('lisi','00000');
END
$

2.调用存储过程
call myp1();
select * from admin;

--创建存储过程 根据女神名,查询对应的男神信息
delimiter $
create PROCEDURE myp2(in name VARCHAR(20))
BEGIN
	select bo.* from beauty b LEFT JOIN boys bo ON b.boyfriend_id = bo.id where b.`name` = `name`;
END
$

call myp2("周芷若");

--创建存储过程 判断登录是否成功
delimiter $
CREATE PROCEDURE myp3(in uname VARCHAR(20),in pwd varchar(20))
BEGIN
	DECLARE cont int DEFAULT 0;
	select COUNT(*) into cont from admin where admin.username=uname and admin.password=pwd;
	select if(cont>0,'成功','失败');
END
$

call myp3('aaa','6666');

--根据输入的女神名,返回对应的男神名

delimiter $
create PROCEDURE myp4(in vname varchar(20),out nname varchar(20))
BEGIN
	SELECT bo.boyName into nname 
	from beauty b 
	LEFT join 
	boys bo on b.boyfriend_id = bo.id 
	where b.`name`=vname;
END
$

call myp4('Angelababy',@names);

select @names;

--传入a和b两个值,最终a和b都翻倍并返回
delimiter $
create PROCEDURE myp5(inout a int , inout b int)
BEGIN
	set a=a*2;
	set b=b*2;
END
$

set @a=2;
set @b=3;
call myp5(@a,@b);

select @a,@b;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码神附体

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值