11)MySQL编程基础

1、用户会话变量:

会话期间一直有效;但其他的客户机不能访问;一般情况下,用户会话变量的定义与赋值会同时进行;

 方法一:使用 set 命令定义用户会话变量,并为其赋值;

set @user_variable1=expre1 [,@user_variable2=expre2,...];

方法二:使用select语句定义用户会话变量,并为其赋值;

select @user_variable1:=expre1[,@user_variable2:=expre2,...];

或者:

select expre1,expre2,...into @user_variable1,@variable2,...;

 

1)set例子:

set @user_name='张三';
select @user_name;
set @user_name=100,@age=23;
select @user_name,@age;

 因为会话变量是弱类型的,所以可以赋值为任何类型;还支持运算;

set @age = @age+1;
select @age;

 

 2)select 例子:

select @user_name:='李四';

 对于有冒号的select,可以看到直接输出结果集;

 

select 24 into @age;
select @age;

对于select into,可以看到并没有输出结果集,需要手动调用显示;

 

 3)用户会话变量与SQL:

set @stucnt:=(select count(*) from studnet);
select @stucnt;

 

select @stucnt:=(select count(*) from student);

可以简化为:

select @stucnt:=count(*) from student;

 

2、局部变量:

declare 变量名 数据类型;

局部变量必须定义在 存储程序 中,且作用范围也只在 存储程序  中;

局部变量主要用于下面3种场合:

 

3、begin-end语句块:

begin-end格式如下:开始标签和结束标签名称必须相同;

[开始标签] begin
    [局部] 变量的声明;
    错误触发条件的声明;
    游标的声明;
    错误处理程序的声明;
    业务逻辑代码;
end [结束标签];

在MySQL语句中,单独使用begin-end语句块没有任何意义,只有将其封装到存储过程、函数、触发器以及事件等存储程序内部才有意义;

 

 4、重置命令结束标志:

begin-end语句块通常存在多条MySQL表达式,每条MySQL表达式使用“;”作为结束标记。避免这些表达式被拆开,需重置MySQL客户机的命令结束标记 delimiter ;

#启动重置结束标记
delimiter $$
#关闭结束标记
delimiter ;
delimiter $$
select * from student;
$$

可以看到这儿使用$$作为结束标记,即使输入了;仍然不能结束;只有以$$ 结尾,才算一条语句表达式;

 再输入终止结束标记后,封号又恢复了结束作用;

delimiter ;

 

posted @ 2023-05-29 17:58  QianFa01  阅读(27)  评论(0编辑  收藏  举报