MySQL变量及句法使用规则

变量用于在程序执行期间存储数据或信息。这是一种使用适当名称标记数据的方法,有助于读者更清楚地了解程序。该变量的主要目的是将数据存储在内存中,并且可以在整个程序中使用。

MySQL可以三种方式使用变量,如下所示:

  1. 用户定义的变量
  2. 局部变量
  3. 系统变量

用户定义的变量

有时,我们希望将值从一个语句传递到另一条语句。用户定义的变量使我们能够将值存储在一个语句中,以后可以将其引用到另一条语句中。MySQL提供了SETSELECT语句来声明和初始化变量。用户定义的变量名称以@ symbol开头。

用户定义的变量不区分大小写,例如@name和@NAME;两者是相同的。用户定义的变量由一个人声明,对另一个人不可见。我们可以将用户定义的变量分配为有限的数据类型,例如整数,浮点数,十进制,字符串或NULL。用户定义的变量最大为长度 64个字符

句法

以下语法用于声明用户定义的变量。

1.通过使用SET语句

  1. SET  @var_name =值;  

注意:我们可以在SET语句中使用’=’或’:=’赋值运算符。

2.通过使用SELECT语句

  1. SELECT  @var_name:=值;  

例1

在这里,我们将使用SET语句为变量分配一个值。

  1. mysql>  SET  @ 名称= ‘peter’ ;  

然后,我们可以使用SELECT语句显示以上值。

  1. mysql>  SELECT  @ 名称;  

输出量

MySQL变量及句法使用规则

例子2

让我们在MySQL数据库中创建学生表,如下所示:

MySQL变量及句法使用规则

运行以下语句以在“学生”表中获得学生的最大年龄,并将该年龄分配给用户定义的变量@maxage

  1. mysql>  SELECT  @maxage:=  来自 学生的MAX (年龄)  ;  

它将给出以下输出。

MySQL变量

现在,运行使用@maxage变量的SELECT语句以返回学生的最大年龄。

  1. MySQL的>  SELECT  名字,姓氏,年龄  FROM  学生  WHERE  年龄= @maxage;  

成功执行以上语句后,我们将得到以下结果:

MySQL变量

范例3

如果我们访问未声明的变量,它将给出NULL输出。

  1. Mysql>  SELECT  @ var1;  

输出量

MySQL变量

局部变量

这是一种不带@符号前缀的变量。局部变量是强类型变量。局部变量的范围在声明它的存储程序块中。MySQL使用DECLARE关键字指定局部变量。DECLARE语句还结合了DEFAULT子句以为变量提供默认值。如果不提供DEFAULT子句,它将给出初始值NULL。它主要用于存储过程程序中。

句法

我们可以使用具有以下语法的DECLARE语句:

  1. DECLARE  variable_name数据类型(大小)[ DEFAULT  default_value];  

让我们看下面的例子来使用局部变量。

  1. mysql>  DECLARE  total_price Oct(8,2)  DEFAULT  0.0;  

我们还可以使用单个DECLARE语句定义具有相同数据类型的两个或多个变量。

  1. mysql>  DECLARE  a,b,c  INT 默认值 0;   

下面的示例说明了如何在存储过程中使用DECLARE语句。

  1. 分隔符//  
  2. 创建过程 Test()   
  3.     开始  
  4.         DECLARE  甲  INT DEFAULT  100;   
  5.         声明 B  INT ;  
  6.         DECLARE  Ç  INT ;  
  7.         DECLARE  D  INT ;  
  8.         SET  B = 90;  
  9.         SET  C = 45;  
  10.         SET  D = A + B-C;  
  11.         选择 A,B,C,D;  
  12.     结束 //  
  13. 定界符;  

成功执行上述函数后,按如下所示调用存储过程函数:

  1. mysql>调用Test();  

它将给出以下输出:

MySQL变量

系统变量

系统变量是所有程序单元的特殊类,其中包含预定义的变量。MySQL包含各种配置其操作的系统变量,并且每个系统变量都包含一个默认值。我们可以在运行时使用SET语句动态地更改一些系统变量。它使我们能够在不停止的情况下修改服务器操作并重新启动它。系统变量也可以在表达式中使用。

MySQL服务器提供了许多系统变量,例如GLOBAL,SESSION或MIX类型。我们可以在服务器的整个生命周期中看到GLOBAL变量,而SESSION变量仅在特定会话中保持活动状态。

我们可以通过以下方式查看系统变量的名称和值:

1.要查看正在运行的服务器使用的当前值,请执行以下命令。

  1. mysql>显示变量;  
  2.   
  3. OR ,  
  4.   
  5. Mysql>  SELECT  @@ var_name;  

2.当我们想根据其默认值查看值时,请使用以下命令。

  1. mysql>  mysqld-详细-帮助  

例1

  1. 的MySQL> SHOW VARIABLES  LIKE ‘%WAIT_TIMEOUT%’ ;   

输出量

MySQL变量

例子2

  1. mysql>  SELECT  @@ key_buffer_size;  

输出量

MySQL变量