Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2003353
  • 博文数量: 433
  • 博客积分: 918
  • 博客等级: 准尉
  • 技术积分: 3218
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 18:21
个人简介

你是不是暗恋我,那就给我发个消息呀,让我知道o(∩∩)o

文章分类

全部博文(433)

分类: Mysql/postgreSQL

2014-05-28 15:51:33

MySQL数据库中的变量分为MySQL系统变量和MySQL用户变量,下面就为您介绍MySQL用户变量的应用,供您参考学习之用。

MySQL用户变量:

基于会话变量实现的, 可以暂存值, 并传递给同一连接里的下一条sql使用的变量.
当客户端连接退出时,变量会被释放.

MySQL用户变量应用场景:
同一连接,未关闭情况下,帮你暂存一些计算结果.
比如
select @admin_id:=max(id) from user_info;
select * from user_info where id = @admin_id
以上两条sql在同一connection中完成.
另外,注意,用户变量前只有1个@, 2个@是用于存取系统变量的.

业务相关的变量定义太多,无法区分系统全局变量?
这类问题,可以通过mysql提供的结构化系统变量来解决.

他们有独特的表示形式:
instance_name.test_var

比一般的变量多了一个instance_name.这样,你就可以很方便地对他们进行分类,比如  app.test_var,就可以区别于系统的var了.


1. 用户变量
  用户变量是指通过set语句:set @var_name = expr [, @var_name = expr]对指定变量名赋值,然后在以后引用它。用户变量的形式为@var_name,以后的引用也是这样。
  set语句注意点:
  1) 可以使用=或:=作为分配符。
  2) 变量expr可以为整数、实数、字符串或者NULL值。
  3) 可以使用非set语句代替set来为用户变量分配一个值,此时分配符必须为:=而不能用=。
  4) 使用没有初始化的用户变量,其值为NULL,类型为字符串。
  
  用户变量注意点:
  1) 用户变量和连接有关。(这意味着:一个客户端定义的变量不能被其它客户端看到或使用。当客户端退出时,该客户端连接的所有变量将自动释放。)
  2) 用户变量不使用查询缓存。
  3) 用户变量大小写不敏感。(mysql5.0及其以上版本)
  4) 用户变量不能准确的指定类型。


select user();
select database();
show grants for test@"localhost";

阅读(1474) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~