Mysql:语法:用户变量


Mysql提供了这一非常强大的东西,文档却对之说明有限,以致使人怀疑mysql的能力!

  • 是和mysql系统变量类似的由服务器产生、维护、回收的会话级准系统变量。因为他对于当前连接会话来说 使用上 和 系统变量 没有任何区别!
  • 尤其是对于prepared语句执行来说具有重要的意义;同时他还允许会话语句间进行数据共享!


用户变量是连接级的东西。名称为 :@标志符

用户变量字5.0后不区分大小写了

变量赋值:

  • set @v1 {:=|=} value1 [,@v2:=v2] [,@v3=v3][,.....]  --注意赋值操作符 ":=" "="
  • select @v1 = value1 [,@v2=v2] [,@v3=v3][,.....] --只能是“=”,因为在非set语句里“=”也是比较运算符
  • 用户变量只能是有限的数据类型:数字类型、字符类型、和特殊的null。其他类型会自动转换为这几个基本类型;另外decimal 和 real 数字类型数据赋值时并不能保留precision和scale!
  • 字符串变量的字符集和排序规则具有一致性
  • bit value 会作为二进制字符串赋值给用户变量,如果要作为数字赋值必须调用cast进行转换
  • 未初始化的变量的值为null 类型为字符串
  • 变量不能再同一语句里 既赋值 又 使用,典型的错误是 在select 里计算 在 where、having 、 group、order 等进行使用
  • 小心变量的类型变化

 

 

你可能感兴趣的:(mysql)