MySQL:SQL编程

变量声明

会话变量

定义形式:set @变量名 = 值;

  • 它可以在编程环境和非编程环境中使用!
  • 使用的任何场合也都带该“@”符号。

在这里插入图片描述

普通变量

定义形式:declare 变量名 类型 [default 默认值];

  • 它必须先声明(即定义),此时也可以赋值;
  • 赋值跟会话变量一样: set 变量名 = 值;
  • 它只能在编程环境中使用!!!

说明:什么是编程环境?
存储过程,函数,触发器

变量赋值形式

语法1:set 变量名 = 表达式;
此语法中的变量必须先使用declare声明

语法2:set @变量名=表达式;
此方式可以无需declare语法声明,而是直接赋值
在这里插入图片描述
语法3:select @变量名:=表达式;
此语句会给该变量赋值,同时还会作为一个select语句输出‘结果集’
在这里插入图片描述
语法4:select 表达式 into @变量名;
此语句虽然看起来是select语句,但其实并不输出‘结果集’,而是给变量赋值。
在这里插入图片描述

运算符

算术运算符

+、-、*、/、%
注意:mysql没有++和–运算符

关系运算符

>、>=、<、<=、=(等于)、<>(不等于)!=(不等于)

逻辑运算符

and(与)、or(或)、not(非)

if判断

MySQL支持两种判断,第一个是if判断,第二个 case判断

单分支

if 条件 then 
	//代码
end if; 

双分支

if 条件 then 
	代码1 
else 
	代码2 
end if; 

多分支

if 条件 then 
	代码1 
elseif 条件 then 
	代码2 
else 
	代码3
end if; 

案例:如果输入1则输出春天,2=》夏天 3=》秋天 4 =》冬天 其他数字=》出错

我们使用存储过程来体验if语句的用法

create procedure 存储过程名(参数,参数,) 
begin 
	//代码
end
create procedure p1 (n int)
begin
if n=1 then
select ‘春天’ as   ‘季节’;
elseif n=2 then
select ‘夏天’ as   ‘季节’;
elseif n=3 then
select ‘秋天’ as   ‘季节’;
elseif n=4 then
select ‘冬天’ as   ‘季节’;
else 
select ‘无法无天’ as   ‘季节’;
end if;
end$

调用:call 存储过程的名称(参数)

call p1(1);

case判断

case  变量
whenthen     语句; 
whenthen     语句; 
else  语句; 
end case ; 

案例:如果输入1则输出春天,2=》夏天 3=》秋天 4 =》冬天 其他数字=》出错

create procedure p2 (n int)
begin
case  n
when 1  then select '春天天' as   '季节';
when 2  then select '夏天天' as   '季节';
when 3  then select '秋天天' as   '季节';
when 4  then select '冬天天' as   '季节';
else  select '无法无天' as   '季节';
end case;
end$
call p2(3);

循环

MySQL支持的循环有loop、while、repeat循环

loop 循环

标签名:loop 
	leave 标签名    --退出循环
end loop; 
-- 使用loop循环,完成计算1到n的和;
create procedure p3(n int)
begin
declare i int default 1;
declare s int default 0;
aa:loop
	if i>n then
	leave aa;	
	end if;
	set s=s+i;
	set i=i+1;
end loop;
select s;
end$

while 循环

while 条件 do 
	//代码
end while; 
-- 使用while循环,完成计算1到n的和;
create procedure p4(n int)
begin
declare i int default 1;
declare s int default 0;
while   i<=n  do
	set  s = s+i;
	set  i = i+1;
end while;
select s;
end$

repeat 循环

repeat 
	//代码
until 条件 end repeat;
--使用repeat循环,完成计算1到n的和;
create procedure p5(n int)
begin
declare i int default 1;
declare s int default 0;
repeat
	set  s = s+i;
	set  i = i+1;
until i>n end repeat;
select s;
end$
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值