mysql的变量分为系统变量和用户变量
这个区分是根据变量由谁定义的来划分的,mysql系统定义的变量是系统变量,用户自己定义的变量为用户变量。
对于系统变量,用户只能够改变它的值不能够创建新的系统变量。
对于用户变量,用户可以创建和改变的变量。
1. 系统变量包括全局变量和会话变量。会话变量是全局变量在当前会话的一份拷贝,在会话建立的时候,利用全局变量进行初始化。
修改会话变量,只会对当前的连接会话产生影响,不会影响到其他的会话。
修改全局变量,如果不固化(只在内存中修改)并不会影响后续创建的会话。
修改会话变量
SET [session] XXXX = yy,XXXX是系统变量名。如果不加session默认修改的是会话变量
修改全局变量
SET GLOBAL XXXX = yy,XXXX是系统变量。或者
SET @@XXXX = yy
2. 用户变量和局部变量,其实都是用户自己定义的变量,只是变量的作用域不一样。
表现形式的区别:
用户变量必须有@xxx的形式,局部变量是xxx的形式。
作用域的区别:局部变量的作用域在begin和end的代码块之间。
二者定义方式:用户变量的定义方式set @xxx=yy或者set @xxx := yy;
局部变量的定义方式 declare xxx ..;