MySQL - 变量类型

MySQL - 变量类型 首页 / MySQL入门教程 / MySQL - 变量类型

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

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

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

自定义变量

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

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

语法

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

1.使用 SET 语句

SET @var_name = value;

NOTE: 无涯教程可以使用“=”或“:=”赋值运算符使用set语句。

2.使用 SELECT 语句

SELECT @var_name := value;

例1  -  在这里,无涯教程将使用SET语句为变量分配一个值。

mysql> SET @name='peter';

然后,无涯教程可以使用SELECT语句显示以上值。

mysql> SELECT @name;

输出

 MySQL变量

例子2  -  让无涯教程在MySQL数据库中创建students学生表,如下所示:

 MySQL变量

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

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

它将给出以下输出。

 MySQL变量

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

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

成功执行以上语句后,无涯教程将得到以下结果:

 MySQL变量

例子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();

它将给出以下输出:

 MySQL变量

系统变量

系统变量是所有程序单元的特殊类,其中包含预定义变量。 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%';

输出

 MySQL变量

例子2

mysql> SELECT @@key_buffer_size;

输出

 MySQL变量

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

赵成的运维体系管理课 -〔赵成〕

快速上手Kotlin开发 -〔张涛〕

白话法律42讲 -〔周甲徳〕

从0开发一款iOS App -〔朱德权〕

Elasticsearch核心技术与实战 -〔阮一鸣〕

用户体验设计实战课 -〔相辉〕

实用密码学 -〔范学雷〕

说透低代码 -〔陈旭〕

商业思维案例笔记 -〔曹雄峰〕

好记忆不如烂笔头。留下您的足迹吧 :)