一、用户会话变量
set 函数
语法格式:
set @user_variable1=expression1[,@user_variable2=expression2,...]
举例:
set @user_name='le',@user_age=12;
select函数
语法格式一:
select @user_variable1:=expression1[,@user_variable2:=expression2,...]
产生结果集
举例:
select@user_name:='le',@user_age:=12;
语法格式二:
select expression1 into @user_variable1[,expression2 into @user_variable2,....];
产生结果集
举例:
select 'le' into @user_name,12 into user_age;
二、用户会话变量与SQL语句
举例
set @student_count = (select count(*) from student);
set @student_no='12003501';
select *from studnet where student_no=@student_no;
三、局部变量
declare命令专门用于定义局部变量及对应的数量类型。
举例
create procedure test(in s_age int,out state int)
modifies sql data
begin
declare s1 int;
set state=0;
set s1=(select count(*) from student where age=s_age);
if(s1>=1)then
set state=-1;
end if;
end;
四、自定义函数
1.创建自定义函数
语法格式:
create function 函数名(参数一,参数二,..)return 返回值
函数选项
begin
函数体
return 语句;
end;
函数选项
language sql | [not] deterministic | {contains sql | no sql | reads sql ddata | modfies sql data} | sql security { definer | invoker} | comment '注释'
说明
language sql 默认选项,说明使用sql语言编写
deterministic 函数返回是否确定
contains sql 函数体不包含读写数据的语句
no sql 函数体不包含sql语句
read sql data 函数体包含select语句,但不包含更新语句
modifies sql data 函数体包含更新语句
sql security 用于指定函数的执行许可
definer 默认选项,只能由创建者调用
invoker 可以被其他数据库用户调用
comment 为函数体添加注释信息
举例
delimiter //
create function test(user_no int) returns char(20)
read sql data
begin
declare user_name char(20);
select username into user_name from user where userno=user_no;
return user_name;
end;
//
delimiter
2.查看自定义函数
查看指定数据库下的所有函数
select name from mysql。proc where db=‘le’ and type=‘function’;
查看指定函数
show create function test\G;
3.删除自定义函数
drop function test;