一:系统变量:变量由系统提供,不用自定义
全局变量:
服务器层面上的,必须拥有super权限才可以为系统变量复制作用域为整个服务器,也是针对于所有连接(会话)有效
会话变量:
二:自定义变量
用户变量
作用域:针对当前连接(回话)生效
位置:being end 里面,也可以放在外面,但是放在外面没有效果
变量声明并赋值或者更新
set @变量名=值;
set @变量名:=值;
select @变量名:=值
方式二:
select **** into @变量
局部变量
作用域:仅仅在定义它的begin end中有效
1.声明:
declare 变量名 类型 【default 值】
2.赋值或者更新
方式一:set 变量名=值;
set 变量名:=值;
set @变量名:=值;
方式二
select xx into 变量名 from 表;
二、存储过程和函数
都类似与java中的方法,
好处 1.提高重用性 2.sql语句简单 3.减少了和数据库服务连接的次数提高了效率
2.1 创建
create procedure 存储过程名(参数模式 参数名 参数类型)
begin
存储过程体
end
注意:参数模式:in、out、inout,其中in可以省略,存储过程体的每一条语句都需要用分号结尾
2.2 调用
call 存储过程名
2.2.1 调用in模式的参数:call sql(‘值’)
2.2.2 调用out模式参数: set @name; call sql(‘值’, @name);select @name;
2.2.3 调用inout模式的参数:set @name=值;call sql(@name);select @name;
2.3 查看
show create procedure 存储过程名;
2.4 删除
drop procedure 存储过程名;
三、函数
3.1 创建
creat function 函数名(参数名 参数类型) returns 返回类型
degin
函数体
end
注意函数体红肯定要有return语句的
3.2调用
select 函数名(实参列表)
3.3查看
show create function 函数名;
3.4 删除
drop function 函数名
四:
if函数:
if (条件,值1,值2)
if语句
if (条件 )then ;
elseif 条件 then;
elseif 条件 then;
else;