iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySql变量用法详解
  • 376
分享到

MySql变量用法详解

mysqlsqlPoweredby金山文档 2023-09-10 08:09:11 376人浏览 独家记忆
摘要

自我介绍 我是IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 Mysql变量主要分为系统变量、用户变量和局部变量,它们的区别是什么?分别有什么作用呢? 下面会一一给大家讲解一下,并结合

自我介绍

我是IT果果日记
一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。

Mysql变量主要分为系统变量、用户变量和局部变量,它们的区别是什么?分别有什么作用呢?

下面会一一给大家讲解一下,并结合一个示例,演示怎么样运用mysql变量,查询一个父节点及它的所有子节点?

系统变量

  • 系统变量就是系统已经提前定义好的变量。

  • 按作用域分类,系统变量可以分为全局变量(global)和会话变量(session)。系统变量中全局变量和会话变量其实是使用一套变量,不同的是会话变量仅当次会话生效,而全局变量一直生效。

  • 会话变量的赋值:set 变量名 = 值; 【比如常用的set names ="utf8";】或者set @@变量名 = 值。

  • 全局变量的赋值:set global 变量名 = 值。

show命令查看系统变量

show variables;show global variables;show session variables;show variables like '%version%';

上述命令分别表示查看当前系统的所有变量,查看所有的全局变量和查看所有的会话变量,以及模糊匹配version,查看当前系统变量。上述命令执行结果如下:

select命令查看系统变量

select @@default_storage_engine;select @@global.default_storage_engine;select @@session.default_storage_engine;

上述三条命令,都表示查看default_storage_engine变量,区别在于第二条指定查看的是全局变量,第三条指定查看的是会话变量,第一条并未指定,但是在会话变量和全局变量同时存在的情况下,默认显示的是会话变量。上述命令执行结果如下:

用户变量

  • 用户变量就是用户自己定义的变量。

  • 系统为了区别系统变量跟自定义变量,规定用户自定义变量必须使用一个@符号

  • 变量的定义方式:

set @变量名=值;select @变量名:=值;select 值 into @变量名;
  • 用户变量可以不声明定义,就可以直接使用,不过默认是null值

  • 用户变量都是会话级的变量,仅在当次连接中生效。

此外,赋值符号 := 和 = 的区别是:

= 只有在 set 和 update 时才和 := 一样有赋值的作用,其它都是等于的作用。

:= 不只在 set 和 update 时有赋值的作用,在 select 时也是赋值的作用。

select @user_variable := @user_variable + 1; 

上述 sql 给一个用户变量 user_variable 做了+1操作,所以select的结果是2。

局部变量

作用范围在 begin end 语句块之间,用 declare 语句定义的变量称为局部变量。当语句执行完毕,局部变量就消失了。

局部变量定义注意事项:必须在存储过程或函数中定义,且若不是在最开始定义的,则必须在begin end;(注意一定要加分号;)块中定义与使用。

查询一个父节点及其它的子节点

SELECT sm.menu_id, sm.menu_name, sm.parent_menu_idFROM sys_menu sm,(    SELECT @pid :=         (    SELECT GROUP_CONCAT( menu_id )     FROM sys_menu     WHERE menu_name IN ( '活动管理', '积分中心' )     AND ( parent_menu_id IS NULL OR parent_menu_id = '' )     )    ) pd WHERE FIND_IN_SET( sm.menu_id, @pid ) > 0 UNIONSELECT au.menu_id, au.menu_name, au.parent_menu_idFROM sys_menu au WHERE FIND_IN_SET( parent_menu_id, @pid ) > 0 AND EXISTS ( SELECT @pid := concat( @pid, ',', menu_id ));

上述sql查询了两个一级菜单"活动管理"、"积分中心",以及它们下面的所有子菜单。sql由上下两部分组成,由sql关键字 uNIOn 分隔开。

  • union 上面的sql查询的是一级菜单。

用户变量 pid 被赋值为"活动管理"和"积分中心"的菜单id字符串,用 GROUP_CONCAT() 函数拼接成都逗号分隔的字符串。FIND_IN_SET(sm.menu_id, @pid) 在用户变量 pid 中搜索 sm.menu_id 的值,并返回序号(序号从1开始)

  • union 下面的sql查询的是两个一级菜单下的所有子菜单。

AND EXISTS ( SELECT @pid := concat( @pid, ',', menu_id ))

EXISTS 条件语句的作用是往用户变量 pid 后面追加子菜单id,这样就达到了向下遍历更深一级子菜单的效果。

最后的查询结果如下:

总结

  • 系统变量就是系统已经提前定义好了的变量。它可以分为全局变量(global)和会话变量(session)。

会话变量的赋值:set 变量名 = 值; 或者set @@变量名 = 值。全局变量的赋值:set global 变量名 = 值。
  • 用户变量就是用户自己定义的变量。用户自定义变量必须使用一个@符号。

  • 用户变量的定义方式:

set @变量名=值;select @变量名:=值;select 值 into @变量名;
  • 作用范围在 begin end 语句块之间,用 declare 语句定义的变量称为局部变量

请联系我

我是IT果果日记
一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。

https://gitee.com/chenzhaoplus

https://github.com/chenzhaoplus

https://blog.csdn.net/cz285933169?spm=1010.2135.3001.5421

来源地址:https://blog.csdn.net/cz285933169/article/details/128962282

您可能感兴趣的文档:

--结束END--

本文标题: MySql变量用法详解

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

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

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

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

下载Word文档
猜你喜欢
  • MySql变量用法详解
    自我介绍 我是IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 MySql变量主要分为系统变量、用户变量和局部变量,它们的区别是什么?分别有什么作用呢? 下面会一一给大家讲解一下,并结合...
    99+
    2023-09-10
    mysql sql Powered by 金山文档
  • MySQL设置global变量和session变量的两种方法详解
    1、在MySQL中要修改全局(global)变量,有两种方法: 方法一,修改my.ini配置文件,如果要设置全局变量最简单的方式是在my.ini文件中直接写入变量配置,如下图所示。重启数据库服务就可以使全局...
    99+
    2024-04-02
  • Python __all__变量用法示例详解
    目录Python模块__all__变量        事实上,当我们向文件导入某个模块时,导入的是该模...
    99+
    2023-05-14
    Python __all__变量 Python __all__
  • 详解Python变量与注释高级用法
    目录Python变量与注释高级用法1.概述2.变量2.1.变量解包2.2.给变量注明类型2.3.变量命名原则3.注释3.1.注释类型3.2.错误使用注释案例Python变量与注释高级...
    99+
    2024-04-02
  • Python中可变变量与不可变变量详解
    目录一 、常见的变量分类1、变量的创建二、变量分类1、、常见的不可变变量2、常见的可变变量三、拷贝的差别四、参数传递的差别前言: C++不同于Python的显著特点,就是有指针和引用...
    99+
    2024-04-02
  • Python变量教程私有变量详解
    目录前言重整及其工作原理_单前导下划线__双前导下划线双前导和双尾下划线前言 Python 中,不存在只能在对象内部访问的“私有”实例变量。然而,大多数 Py...
    99+
    2024-04-02
  • 详解python的变量
    目录1.Python 变量的概述:2.Python 变量的命名3.Python 变量赋值3.1 Python 变量赋值概述3.2 Python 变量的基本赋值格式3.3 Python...
    99+
    2024-04-02
  • Python变量的作用域详解
    目录总结每个变量都有自己的作用域,在作用域外使用该变量非法 函数体内的变量为函数的局部变量,在函数体外不可使用 >>>def f(): x=5 >&...
    99+
    2024-04-02
  • Mysql环境变量的配置(详细图解)
    一、安装mysql之后,在命令窗口显示出错,如下: 二、桌面找到此电脑图标,右击属性,如下: 三、高级系统设置进入后,点击环境变量,如下图: 四、系统变量下,点击新建,如下所示: 五、变量名和...
    99+
    2023-10-04
    mysql 数据库 database
  • 详解python中的变量
    目录变量变量的分类:赋值变量的命名规则:总结变量变量的分类:赋值变量的命名规则:总结变量 一个由程序员或用户定义的量且在程序中可能发生改变的量 #变量是所有程序的起点 变量的分类: ...
    99+
    2024-04-02
  • MySQL系统环境变量配置详细讲解
    首先,大部分的环境变量配置步骤都是相同的,这里我们来说说MySQL的环境变量 第一步:找到安装路径并复制         找到你的MySQL Server,我这里安装的是MySQL Server 8.0,安装在d盘,路径是D:\dataAp...
    99+
    2023-10-24
    mysql
  • Python中变量的作用域详解
    目录1、作用于的概念2、局部变量3、全局变量4、变量的查找5、作用域中可变数据类型变量6、多函数程序执行流程总结1、作用于的概念 变量作用域指的是变量生效的范围,在Python中一共...
    99+
    2024-04-02
  • JavaScript中变量的作用域详解
    一、变量的分类 在JavaScript中变量分为两种: 全局变量局部变量 二、变量的作用域 1、局部变量的作用域 局部变量:在函数内部定义的变量称为局部变量,其作用域为该函数内部,在...
    99+
    2024-04-02
  • [MySQL]变量
    文章目录 1. 变量1.1 系统变量1.1.1 系统变量分类1.1.2 查看系统变量查看所有系统变量查询部分系统变量查看指定系统变量 1.1.3 修改系统变量方式一:修改配置文件方式二:使用 set 设置系统变...
    99+
    2023-08-19
    mysql 数据库 database db sql
  • Go语言变量的定义和使用方法详解
    Go语言变量的定义和使用方法详解 Go语言是一种静态类型的系统编程语言,它支持面向对象、过程式和函数式编程风格。在Go语言中,变量是用来存储数据的最基本的单元,它们可以存储各种数据类型...
    99+
    2024-04-02
  • 详解Rust中的变量与常量
    目录变量与可变性常量变量隐藏属性Rust 是一种低级静态类型多范式编程语言,专注于安全性和性能,解决了 C/C++ 长期以来一直在努力解决的问题,例如内存错误和构建并发程序。它具有以...
    99+
    2022-11-13
    Rust变量与常量 Rust变量
  • Java不使用第三方变量交换两个变量值的四种方法详解
    目录变量本身交换数值算术运算指针地址操作位运算简单总结哈喽,大家好,我是阿Q。前几天有个小伙伴去面试,被面试官的一个问题劝退了:请说出几种不使用第三方变量交换两个变量值的方法。 问题...
    99+
    2024-04-02
  • Python变量命名规则和定义变量详解
    目录一、定义变量二、定义变量的规则总结 一、定义变量 语法规则: 变量名 = 值 定义变量的语法规则中间的‘=',并不是数学中等于号的意思,在编程语言中而是赋值的意思。赋值:其...
    99+
    2024-04-02
  • Python 局部变量global详解
    目录一、作用域二、局部作用域三、全局作用域四、nonlocal作用域1、使用nonlocal2、就近原则3、函数执行顺序4、循环、判断代码块中作用域问题一、作用域 Local:局部作...
    99+
    2024-04-02
  • 详解Windows 配置Java环境变量的方法
    Java 教程 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。 Java 可运行于多个平台,如 Windows, Mac OS...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作