·变量
一、系统变量
含义:变量有系统提供,无须自定义,可分为:
①全局变量:服务层面上,必须有super权限才能为系统变量赋值,作用域为整个服务器,也就是针对于所有连接(会话)有效。
②会话变量:服务器为每一个连接的客户端提供了系统变量,作用域为当前的连接(连接)
语法:
①查看系统变量
show 【global | session】variables like '' 如果没有显式声明global还是session,默认后者
②查看指定的系统变量的值
select @@【global | session】.变量名 ,如果没有显式声明global还是session,默认后者
③为系统变量赋值
方式1:
set 【global | session】变量名 = 值; 默认同上
方式2:
set @@global.变量名=值;
set @@变量名 = 值;
二、自定义变量
由用户定义设计的变量,相对灵活,可分为:
①用户变量
作用域:针对于当前连接(连接)生效
位置:begin end 里面 , 也可以放在外面
使用:1、声明并赋值
set @变量名 = 值;
set @变量名 = 值;
select @变量名:=值;
2、更新值
set @变量名 = 值;
set @变量名= 值;
set @变量名 = : 值;
select xx into @变量名 from 表;
3、使用 select @变量名
②局部变量
作用域:仅仅在定义它的begin end 中有效
位置:只能放在begin end 中,而且只能放在第一句
使用:1、声明并赋值
declare 变量名 类型【default 值】;
2、更新值
set 变量名 = 值 / set 变量名:=值 / select @变量名:=值
select xx into 变量名 from 表
3、使用 select 变量名;
·存储过程
含义:将一组完成特点功能的逻辑语句包装起来,对外暴露名字
好处:提高重用性、减少了和数据框服务器连接的次数,提高效率
一、创建
create procedure 存储过程名(参数模式 蚕食名 参数类型)
begin 存储过程提
end
注意:
1、参数模式:in 、out 、inout ,其中in可以省略
2、存储过程体每一条sql语句都需要用分好结尾
二、调用
语法:call 存储过程名(实参列表)
分类:调用 in 模式的参数:call 存储过程名("值")
调用 out 模式的参数:set @varb; call 存储过程名(@varb); select @varb;
调用 inout 模式的参数:set @varb = 值; call 存储过程(@varb); select @varb;
三、查看:show create procedure 存储过程名;
四、删除:drop procedure 存储过程名; (一次只能删去一个)
·函数
一、创建
create function 函数名(参数名 参数类型) returns 返回类型
begin 函数体(包含return语句)
end
*使用delimiter 语句设置结束标记
二、调用:select 韩式名(实参列表);
三、查看:show create function 函数名;
四、删除:drop function 函数名;
五、流程控制结构
分类:
1、顺序结构:程序从上往下依次执行
2、分支结构:程序按条件进行选择执行,从两条或多条路径选择一条执行
3、循环结构:程序在满足一定的条件,重复执行一组语句
分支结构:
①if函数
语法:if(条件,值1,值2)
②case结构—实现多分支
语法:case 表达式或字段
when 值1 then 语句1;
when 值2 then 语句2;
.....
else 语句n
end;
或者: case
when 条件1 then 语句1;
when 条件2 then 语句2;
......
else 语句n
end;
③if结构(只能存在begin-end中)
if 条件1 then 语句1;
elseif 条件2 then 语句2;
......
else 语句n
end if;
循环结构(只能存在begin-end中)
①【名称:】while 循环条件 do
循环体
end while 【名称】;
②【名称:】loop
循环体
end loop 【名称】
③【名称:】repeat
循环体
until 结束条件
end repeat 【名称】
循环控制语句:
1、leave:类似于break 用于跳出所在的循环
2、iterate:类似于continue ,用于跳出本次循环后继续下一次循环
循环结构对比:
1、三种循环都能省略名称,但如果循环中添加了控制语句(leave 或 iterate)必须有名称
2、loop 一般用于实现简单的死循环
while 先判断后执行
repeat 先执行后判断,无条件至少执行一次