MYSQL变量

MYSQL变量分两类

用户自定义变量

  1. 局部变量—>只在当前begin/end代码块中有效
create procedure add
 (
    in a int,
    in b int
)
 begin
    declare c int default 0;
    set c = a + b;
    select c as c;
end;

2.用户变量—>在客户端链接到数据库实例整个过程中用户变量都是有效的。

系统变量

  1. 会话变量–>会话变量的作用域与用户变量一样,仅限于当前连接。当当前连接断开后,其设置的所有会话变量均失效。
@@session.变量名 或者@@local.变量名

4.全局变量–>全局变量影响服务器整体操作。

@@global.变量名

在这里插入图片描述

DEMO1:

-- 排序函数
-- row_number,rank,dense_rank
USE mytest;

row_number

-- row_number
SELECT empno,ename,sal,@rn:=@rn+1 rn
FROM emp,(SELECT @rn:=0)t1
ORDER BY sal DESC;

在这里插入图片描述

Demo2:

dense_rank

-- dense_rank
SELECT empno,ename,sal,
IF(@sal=sal,@rn,@rn:=@rn+1) rn,
@sal:=sal 
FROM emp,(SELECT @rn:=0,@sal:=0) t1
ORDER BY sal DESC;

在这里插入图片描述

DEMO3:

– rank

-- rank

 SELECT empno,ename,sal,@r:=@r+1,
 IF(@sal=sal,@rn,@rn:=@r) rn, @sal:=sal
 FROM emp,(SELECT @rn:=0, @r:=0,@sal:=0) t1 ORDER BY sal DESC;

在这里插入图片描述

DEMO4:

-- 将员工的信息,按照部门和底薪排序,并标明顺序
SELECT empno,ename,deptno,sal,
IF(@sal=sal,@rn,@rn:=@rn+1),
IF(@deptno=deptno,@rn,@rn:=1) rn,
@deptno:=deptno,
@sal:=sal
FROM emp,(SELECT @rn:=0,@sal:=0,@deptno:=0) t1
ORDER BY deptno,sal DESC;

在这里插入图片描述

end》》》

智者见智,仁者见仁,一个好的价值观念会让你懂得许多,学会更多,得到很多

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Recently 祝祝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值