变量声明

会话变量

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

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

sql语句赋值python sql赋值表达式_赋值

普通变量

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

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

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

变量赋值形式

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

语法2:set @变量名=表达式; 此方式可以无需declare语法声明,而是直接赋值

sql语句赋值python sql赋值表达式_变量名_02


语法3:select @变量名:=表达式;

此语句会给该变量赋值,同时还会作为一个select语句输出‘结果集’

sql语句赋值python sql赋值表达式_变量名_03


语法4:select 表达式 into @变量名;

此语句虽然看起来是select语句,但其实并不输出‘结果集’,而是给变量赋值。

sql语句赋值python sql赋值表达式_sql语句赋值python_04

运算符

算术运算符

+、-、*、/、% 注意: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  变量
when值  then     语句; 
when值  then     语句; 
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$