程序员社区

MySQL系列教程 --- 4、MySQL中的变量

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

MySQL 可以通过三种不同的方式使用变量,如下所示:

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

用户定义变量

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

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

句法

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

1.通过使用SET语句

SET @var_name = value;  

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

\2. 通过使用SELECT语句

SELECT @var_name := value;  

示例 1

在这里,我们将使用 SET 语句为变量赋值。

mysql> SET @name='peter';  

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

mysql> SELECT @name;  

输出

file

示例 2

让我们在MySQL数据库中创建表students,如下图:

file

运行以下语句以获取 'students' 表中学生的最大年龄并将该年龄分配给用户定义的变量@maxage

mysql> SELECT @maxage:= MAX(age) FROM students;  

它将给出以下输出。

file

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

mysql> SELECT firstname, lastname, age FROM students WHERE age = @maxage;  

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

file

例3

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

Mysql> SELECT @var1;  

输出

MySQL 变量

局部变量

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

句法

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

DECLARE variable_name datatype(size) [DEFAULT default_value];  

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

例子

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

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

mysql> DECLARE a,b,c INT DEFAULT 0;  

下面的例子解释了我们如何在存储过程中使用 DECLARE 语句。

DELIMITER //  
Create Procedure Test()  
    BEGIN  
        DECLARE A INT DEFAULT 100;  
        DECLARE B INT;  
        DECLARE C INT;  
        DECLARE D INT;  
        SET B = 90;  
        SET C = 45;  
        SET D = A + B - C;  
        SELECT A, B, C, D;  
    END //  
DELIMITER ;  

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

mysql> CALL Test();  

它将给出以下输出:

file

系统变量

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

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

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

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

mysql> SHOW VARIABLES;  

OR,  

Mysql> SELECT @@var_name;  

\2. 当我们想要查看基于其编译默认值的值时,请使用以下命令。

mysql> mysqld --verbose --help  

示例 1

mysql> SHOW VARIABLES LIKE '%wait_timeout%';  

输出

file

示例 2

mysql> SELECT @@key_buffer_size;  

输出

MySQL Variables

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 4、MySQL中的变量

一个分享Java & Python知识的社区