iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql变量怎么自定义
  • 959
分享到

mysql变量怎么自定义

mysql 2022-11-30 23:11:53 959人浏览 泡泡鱼
摘要

这篇文章主要介绍“Mysql变量怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql变量怎么自定义”文章能帮助大家解决问题。系统变量简介1、系统变量

这篇文章主要介绍“Mysql变量怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql变量怎么自定义”文章能帮助大家解决问题。

系统变量

  • 简介

1、系统变量
    系统变量分为全局系统变量(需要添加 global 关键字)以及会话系统变量(需要添加 session 关键字),有时也把全局系统变量简称为全局变量,有时也把会话系统变量称为local变量。如果不写,默认会话级别
    全局系统变量针对于所有会话(连接)有效,但 不能跨重启
    在Mysql中有些系统变量只能是全局的,例如 max_connections 用于限制服务器的最大连接数;有些系统变量作用域既可以是全局又可以是会话,例如 character_set_client 用于设置客户端的字符集;有些系统变量的作用域只能是当前会话,例如 pseudo_thread_id 用于标记当前会话的 MySQL 连接 ID

2、用户自定义变量
    每一个MySQL客户机成功连接MySQL服务器后,都会产生与之对应的会话。会话期间,MySQL服务实例会在MySQL服务器内存中生成与该会话对应的会话系统变量,这些会话系统变量的初始值是全局系统变量值的复制
    会话系统变量仅针对于当前会话(连接)有效。会话期间,当前会话对某个会话系统变量值的修改,不会影响其他会话同一个会话系统变量的值
    会话1对某个全局系统变量值的修改会导致会话2中同一个全局系统变量值的修改
  • 代码案例

# 查看系统变量
# 查询全局系统变量
SHOW GLOBAL VARIABLES;
# 查询会话系统变量
SHOW SESSION VARIABLES; 
# 默认查询的是会话系统变量
SHOW VARIABLES; 

# 查询部分系统变量
# 模糊查询
SHOW GLOBAL VARIABLES LIKE 'admin_%';
SHOW VARIABLES LIKE 'character_%';

# 查看指定系统变量
SELECT @@global.max_connections;
SELECT @@global.character_set_client;

# 错误写法,由于该变量是会话系统变量
SELECT @@global.pseudo_thread_id;

# 错误写法,由于该变量是全局系统变量
SELECT @@session.max_connections;

# 查看会话系统变量
SELECT @@session.character_set_client;
SELECT @@session.pseudo_thread_id;

# 当变量在全局系统变量或会话系统量中都有时,先查询会话系统变量,再查询全局系统变量
SELECT @@character_set_client; 

# 修改系统变量的值
# 修改全局系统变量
# 方式1:
SET @@global.max_connections = 161;
# 方式2:
SET GLOBAL max_connections = 171;

# 针对于当前的数据库实例是有效的,一旦重启mysql服务,就失效了

# 修改会话系统变量
# 方式1:
SET @@session.character_set_client = 'gbk';
# 方式2:
SET SESSION character_set_client = 'gbk';

# 针对于当前会话是有效的,一旦结束会话,重新建立起新的会话,就失效了

用户变量

  • 简介

分为会话用户变量和局部变量
会话用户变量:作用域和会话变量一样,只对 当前连接 会话有效
局部变量:只在 BEGIN 和 END 语句块中有效。局部变量只能在 存储过程和函数 中使用
  • 定义变量

#方式1:“=”或“:=”
SET @用户变量 = 值;
SET @用户变量 := 值;

#方式2:“:=” 或 INTO关键字
SELECT @用户变量 := 表达式 [FROM 等子句];
SELECT 表达式 INTO @用户变量 [FROM 等子句];
  • 查看用户变量的值

SELECT @用户变量
  • 会话用户变量代码案例

# 方式1:
SET @m1 = 1;
SET @m2 := 2;
SET @sum := @m1 + @m2;
# 查看
SELECT @sum;

# 方式2:
SELECT @count := COUNT(*) FROM employees;

SELECT @count;

SELECT AVG(salary) INTO @avg_sal FROM employees;

SELECT @avg_sal;
  • 局部变量简介

使用DECLARE声明 
声明并使用在BEGIN ... END 中 (使用在存储过程、函数中)
DECLARE的方式声明的局部变量必须声明在BEGIN中的首行的位置

BEGIN
    #声明局部变量
    DECLARE 变量名1 变量数据类型 [DEFAULT 变量默认值];
    DECLARE 变量名2,变量名3,... 变量数据类型 [DEFAULT 变量默认值];

    #为局部变量赋值
    SET 变量名1 = 值;
    SELECT 值 INTO 变量名2 [FROM 子句];

    #查看局部变量的值
    SELECT 变量1,变量2,变量3;
END

# 定义变量
DECLARE 变量名 类型 [default 值]; # 如果没有DEFAULT子句,初始值为NULL

# 赋值
# 方式1
SET 变量名=值;
SET 变量名:=值;
# 方式2
SELECT 字段名或表达式 INTO 变量名 FROM 表;

# 查看
SELECT 局部变量名;
  • 局部变量代码案例

DELIMITER //    # 开始
CREATE PROCEDURE test_var()   # 创建存储过程
BEGIN
  #1、声明局部变量
  DECLARE a INT DEFAULT 0;
  DECLARE b INT ;
  # DECLARE a,b INT DEFAULT 0;    # 写法2
  DECLARE emp_name VARCHAR(25);
  #2、赋值
  SET a = 1;
  SET b := 2;
  # 将last_name赋值给emp_name
  SELECT last_name INTO emp_name FROM employees WHERE employee_id = 101;
  #3、使用
  SELECT a,b,emp_name;  
END //
DELIMITER;    # 结束

#调用存储过程
CALL test_var();

# 举例1:声明局部变量,并分别赋值为employees表中employee_id为102的last_name和salary
DELIMITER //      # 开始
CREATE PROCEDURE test_pro()
BEGIN
  #声明
  DECLARE emp_name VARCHAR(25);
  DECLARE sal DOUBLE(10,2) DEFAULT 0.0;
  #赋值
  SELECT last_name,salary INTO emp_name,sal   # 赋值
  FROM employees
  WHERE employee_id = 102;
  #使用
  SELECT emp_name,sal;
END //
DELIMITER ;   # 结束

# 调用存储过程
CALL test_pro();

# 举例2:声明两个变量,求和并打印 (分别使用会话用户变量、局部变量的方式实现)
# 方式1:使用会话用户变量
SET @v1 = 10;
SET @v2 := 20;
SET @result := @v1 + @v2;
# 查看
SELECT @result;

# 方式2:使用局部变量
DELIMITER //
CREATE PROCEDURE add_value()
BEGIN
  #声明
  DECLARE value1,value2,sum_val INT;
  #赋值
  SET value1 = 10;
  SET value2 := 100;
  SET sum_val = value1 + value2;
  #使用
  SELECT sum_val;
END //
DELIMITER ;

#调用存储过程
CALL add_value();

# 举例3:创建存储过程“different_salary”查询某员工和他领导的薪资差距,并用IN参数emp_id接收员工id,用OUT参数dif_salary输出薪资差距结果
DELIMITER //    # 开始
CREATE PROCEDURE different_salary(IN emp_id INT, OUT dif_salary DOUBLE)   # 输出dif_salary DOUBLE
BEGIN
  #分析:查询出emp_id员工的工资;查询出emp_id员工的管理者的id;查询管理者id的工资;计算两个工资的差值
  #声明变量
  DECLARE emp_sal DOUBLE DEFAULT 0.0; #记录员工的工资
  DECLARE mgr_sal DOUBLE DEFAULT 0.0; #记录管理者的工资
  DECLARE mgr_id INT DEFAULT 0; #记录管理者的id
  #赋值
  SELECT salary INTO emp_sal FROM employees WHERE employee_id = emp_id;
  SELECT manager_id INTO mgr_id FROM employees WHERE employee_id = emp_id;
  SELECT salary INTO mgr_sal FROM employees WHERE employee_id = mgr_id;
  SET dif_salary = mgr_sal - emp_sal;
END //
DELIMITER;    # 结束

# 调用存储过程
SET @emp_id := 103;
SET @dif_sal := 0;
CALL different_salary(@emp_id,@dif_sal);
# 查看
SELECT @dif_sal;

关于“mysql变量怎么自定义”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网数据库频道,小编每天都会为大家更新不同的知识点。

您可能感兴趣的文档:

--结束END--

本文标题: mysql变量怎么自定义

本文链接: https://www.lsjlt.com/news/173713.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql变量怎么自定义
    这篇文章主要介绍“mysql变量怎么自定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mysql变量怎么自定义”文章能帮助大家解决问题。系统变量简介1、系统变量 ...
    99+
    2022-11-30
    mysql
  • MySQL中怎么自定义变量
    MySQL中怎么自定义变量,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.自定义变量---自我介绍大家好,我是mysql自定...
    99+
    2024-04-02
  • mysql中自定义变量是什么
    这篇文章给大家分享的是有关mysql中自定义变量是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、用户变量作用域:针对于当前会话(连接)有效,作用域同于会话变量声明并初始化:赋值操作符:=或:=SET&nb...
    99+
    2023-06-15
  • MySQL自定义变量自增——@rownum:= @rownum+1
    初识Mysql自定义变量 有时候一张表虽然设置了ID自增,但是经过一系列业务增删骚操作后自增的ID也不是那么有序,MySQL中又没有获取行号的函数,因此我们需要通过一些自定义语句来进行获取。 通常的做法是:通过定义自定义变量@ro...
    99+
    2023-08-16
    mysql 数据库 database
  • mysql怎么自定义常量
    在MySQL中,可以使用用户变量来模拟常量的功能。用户变量的值可以在会话期间保持不变。要定义一个常量,可以使用SET语句将一个值赋给...
    99+
    2023-09-25
    mysql
  • mysql怎么定义局部变量
    在MySQL中,可以使用SET语句来定义局部变量。局部变量可以在存储过程、函数、触发器等MySQL代码块中使用。下面是一个示例: D...
    99+
    2024-04-09
    MySQL
  • makefile中的变量怎么自定义
    在Makefile中,可以使用`变量名=值`的语法来定义变量。例如:```# 定义一个字符串变量NAME = "John"# 定义一...
    99+
    2023-09-12
    makefile
  • mysql怎么定义变量并赋值
    在MySQL中,可以使用SET语句来定义变量并赋值。以下是定义变量并赋值的语法:```SET @变量名 = 值;```例如,定义一个...
    99+
    2023-08-17
    mysql
  • MySQL怎么自定义变量和语句结束分隔符
    今天小编给大家分享一下MySQL怎么自定义变量和语句结束分隔符的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2024-04-02
  • php怎么定义变量
    在PHP中,可以使用$符号来定义变量。变量名由字母或下划线开头,后面可以跟着字母、数字或下划线。变量名是区分大小写的。以下是一些定义...
    99+
    2023-08-14
    php
  • matlab怎么定义变量
    这篇文章主要介绍“matlab怎么定义变量”,在日常操作中,相信很多人在matlab怎么定义变量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”matlab怎么定义变量”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-07-04
  • python怎么定义float变量
    在Python中,可以使用以下语法来定义一个float(浮点数)变量: variable_name = float_value 其中...
    99+
    2023-10-21
    python
  • javascript中怎么定义变量
    本篇内容介绍了“javascript中怎么定义变量”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • python3 怎样删除所有自定义变量
    这篇文章主要介绍“python3 怎样删除所有自定义变量”,在日常操作中,相信很多人在python3 怎样删除所有自定义变量问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python3 怎样删除所有自定义变量...
    99+
    2023-06-14
  • python怎么定义数字变量
    在Python中,可以使用以下方式来定义数字变量: 直接赋值一个数字给变量: num = 10 通过表达式计算赋值给变量: ...
    99+
    2024-02-29
    python
  • 怎么在java中定义变量
    这篇文章给大家介绍怎么在java中定义变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。定义/声明变量在 java 中用户可以通过指定数据类型和标识符来声明变量,其基本语法如下所示:DataType iden...
    99+
    2023-06-14
  • 怎么在python中定义变量
    这期内容当中小编将会给大家带来有关怎么在python中定义变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言...
    99+
    2023-06-14
  • qt怎么定义全局变量
    在Qt中,可以使用全局变量来存储在整个应用程序中需要使用的数据。以下是一种定义全局变量的方法:1. 创建一个全局变量的头文件,例如g...
    99+
    2023-08-08
    qt
  • android怎么定义全局变量
    在Android中,可以使用以下几种方法来定义全局变量:1. 使用静态变量:在一个类中定义一个静态变量,其他类可以通过类名直接访问该...
    99+
    2023-08-29
    android
  • mfc怎么定义全局变量
    在 MFC 中,可以使用以下两种方式定义全局变量:1. 在 MFC 应用程序的 `CWinApp` 类派生类中定义全局变量。在 `C...
    99+
    2023-09-20
    mfc
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作