变量
系统变量:由系统提供,属于服务层面
_全局变量:_服务器每次启动将为所有全局变量赋初值。针对所有会话(连接)有效,但不能跨重启。
_会话变量:_仅仅针对于当前的会话(连接)有效。
查看所有的系统变量:show global | [ session] variable;
查看满足条件的系统变量:show global | [session] variable like ‘%char%’;
查看指定系统变量:select @@global | [session].系统变量名;
为某个系统变量赋值:
set global | [session] 系统变量名=值;
set @@global \ [session].系统变量名=值;
自定义变量:用户自定义
_用户变量:_针对于当前会话(连接)有效
1.声明并初始化
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;
2.赋值
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;
select into select 字段 into 变量名 from 表;
_局部变量:_仅仅在定义它的begin end中有效
1.声明
declare 变量 类型 [default 值];
2.赋值
与用户变量相同
存储过程
事先经过编译并存储在数据库中一组完成特定功能的sql语句的集合。就是数据库 SQL 语言层面的代码封装与重用。
好处:
1.提高了代码的重用性;
2.简化操作;
3.减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率。
1 | /* |
函数
与储存过程的区别:
储存过程:可以有0个或多个返回值,适合批量插入、批量更新
函数:有且仅有一个返回值,适合处理数据后返回一个结果。
1 | # 创建函数 |
流程控制结构
if函数:
if(表达式1,表达式2,表达式3):如果表达式1成立,返回表达式2的值,否则返回表达式3的值。
case结构:
case 变量|表达式|字段
when条件1或值 then 要返回的值或要执行的语句;
when条件2或值 then 要返回的值或要执行的语句;
when条件3或值 then 要返回的值或要执行的语句;
……
else 要返回的值或要执行的语句;
end case;
if结构:
if 条件1 then 语句1;
elif 条件2 then 语句2;
……
else then 语句n;
end if;
循环结构:
分类:while , loop , repeat
循环控制:
iterate 类似于 continue ,继续,结束本次循环继续下一次
leavele 类似于 break ,跳出 ,结束当前所在循环
1.while
1 | [标签:]while 循环条件 do |
2.loop
1 | [标签:]loop |
3.repeat
1 | [标签:]repeat |