最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

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 ;

关键词: