一.全局变量
在系统运行期间动态更改其参数,重启后失效.
SET GLOABL var=XXX;
SET @@global.var=XXX;
以上两种方式等效

查看系统的全局变量
show global variables [like "%"];

二.用户变量
对当前回话有效,回话结束后,变量销毁
SET @var=XXX;
SELECT @var:=uid FROM table where id=10;
使用@作为前缀标识符,set可以使用=或=:赋值,select则只能用:=进行赋值

一个典型的示例:

将积分表中更新后的积分返回,用于其他操作

UPDATE test SET score=@score:=score+1 WHERE id=1;
SELECT @score;

三.会话变量
对当前回话有效,回话结束后,变量销毁
set session var_name = value;
set @@session.var_name = value;
set var_name = value;
以上三种方式等效

会话变量和用户变量的区别在于,除了前缀标识符外,会话变量是系统预先定义的一组变量,你不可能定义一个不存在的用户变量.

set test='test';
[Err] 1193 - Unknown system variable 'test';

也就是会话变量只能被update而不能被insert

查看当前会话的变量
show [session] variables [like "%"];(其中session为默认,可以不用写)

常见的如消除mysql默认的sql_mode模式,改为最为宽松的模式
set sql_mode='';

四.局部变量
DECLEAR var INTEGER DEFAULT 0;
一般定义在BEGIN和END语句块之间,语句块结束即消失.

ps:
begin和end之间用于定义一组sql复合语句;

最新文章

  1. osgi 1
  2. 安全框架 SpringSecurity 和 Shiro 对比
  3. JavaScript事件对象【转】
  4. lua语法备忘录
  5. Angular学习笔记--last_update 20151106
  6. Http状态总结
  7. 深入浅出HTML与XHTML的区别
  8. Codeforces Round #205 (Div. 2) : C
  9. windows service 的创建 安装 调试 错误回发
  10. Intent之间无法传递大数据的替代方法
  11. 从零开始的JS生活(二)——BOM、DOM与JS中的事件
  12. HH去散步[SDOI2009]
  13. CentOS下使用命令行Web浏览器Links
  14. js 、c# 编码解码
  15. [硬件]Urg_viewer数据读取
  16. 3. 哈工大LTP解析
  17. 团队作业4 Alpha冲刺
  18. Dell 服务器安装方法介绍
  19. [javaSE] 网络编程(TCP通信)
  20. NSCopying简析

热门文章

  1. libyuv编译(各平台)【转】
  2. python接口自动化10-token登录【转载】
  3. VS2008中的配置文件app.config简单小结
  4. POJ 1189 钉子和小球
  5. 在C#中将金额转换成中文大写金额
  6. J.U.C并发框架源码阅读(十三)ThreadPoolExecutor
  7. (2)ASP.NET 页面指令
  8. bean装配--auto
  9. 集合框架(04)HashMap扩展知识
  10. springmvc使用StringHttpMessageConverter需要配置编码