MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 变量

变量用于在程序执行期间存储数据或信息。这是一种使用适当名称标记数据的方法,有助于读者更清楚地了解程序。变量的主要目的是将数据存储在内存中,并且可以在整个程序中使用。
MySQL可以以 三种不同的方式使用变量,如下所示:
用户定义的变量 局部变量 系统变量

用户定义的变量

有时,我们希望将值从一个语句传递到另一条语句。用户定义的变量使我们能够将值存储在一个语句中,以后可以将其引用到另一条语句中。 MySQL 提供了 SET SELECT 语句来声明和初始化变量。用户定义的变量名称以 @符号开头。
用户定义的变量不区分大小写,例如@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;
输出
MySQL变量

示例2

让我们在MySQL数据库中创建表 students,如下所示:
MySQL变量
运行以下语句以获取"学生"表中该学生的最大年龄,并将该年龄分配给用户定义的变量 @maxage
mysql> SELECT @maxage:= MAX(age) FROM students;
它将给出以下输出。
MySQL变量
现在,运行使用@maxage变量的SELECT语句以返回学生的最大年龄。
mysql> SELECT firstname, lastname, age FROM students WHERE age = @maxage;
成功执行上述语句后,我们将得到以下结果:
MySQL变量

Example3

如果我们访问 未声明变量,它将给出 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();
它将给出以下输出:
MySQL变量

系统变量

系统变量是所有程序单元的特殊类,其中包含 预定义变量。 MySQL包含各种配置其操作的系统变量,并且每个系统变量都包含一个默认值。我们可以在运行时使用 SET 语句动态地更改一些系统变量。它使我们能够不停止地修改服务器操作并重新启动它。系统变量也可以在表达式中使用。
MySQL服务器提供了许多系统变量,例如GLOBAL,SESSION或MIX类型。我们可以在服务器的整个生命周期中看到GLOBAL变量,而SESSION变量仅在特定会话中保持活动状态。
我们可以通过以下方式查看系统变量的名称和值:
1、要查看正在运行的服务器使用的当前值,请执行以下命令。
mysql> SHOW VARIABLES;
OR,
Mysql> SELECT @@var_name;
2、当我们想根据其默认值查看值时,请使用以下命令。
mysql> mysqld--verbose--help

Example1

mysql> SHOW VARIABLES LIKE '%wait_timeout%';
输出
MySQL变量

示例2

mysql> SELECT @@key_buffer_size;
输出
MySQL变量

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4