系统变量
由系统提供的,不用自定义
1.查看系统变量
show 【global | session 】variables like '';如果没有特别说明,默认为session
2.查看指定系统变量的值
select 【global | session 】变量名 ;如果没有特别说明,默认为session
为系统变量赋值
set 【global | session 】变量名=值
全局变量
服务器层面,必须拥有super 权限才能为系统提供变量赋值,作用域为整个服务器,也就是针对所有连接回话,有效
回话变量
服务器为每个连接客户端提供了系统变量,作用域当前连接
自定义变量
用户变量
作用域:当前连接生效
位置: begin end里面 ,也可以放在外面
使用:
方式一:
声明并赋值:
set @变量名=值;或
set@变量名:=值;或
select @变量名:=值;
方式二:
slect xx into @ 变量名 from 表;
3.使用
select @变量名;
局部变量:
作用域: 仅仅在定义 begin end 中有效
位置:放在begin end 中 ,只能放在第一句
赋值更新:
声明并赋值:
set @变量名=值;或
set@变量名:=值;或
select @变量名:=值;
方式二:
slect xx into @ 变量名 from 表;
3.使用
select @变量名;
存储过程“
好处”: 提高了重用性
sql简单
减少了与数据库服务器了连接次数
创建:
create procedure 存储过程名(参数模式 参数名 参数类型)
begin
存储过程提
end
注意
1.参数模式:in。out 。 inout 其中in可以省略
2.存储过程中的每一条sql语句都需要用分号结尾
调用
call 存储过程名(实参列表)
查看
show create procedure 存储过程名;
删除
drop procedure 存储过程名;
函数
create function 函数名(参数名 参数类型) return 返回值类型;
begin
函数体
end
函数体重肯定有return语句
调用
select 函数名(实参列表)
查看
show create function 函数名;
删除
drop function 函数名