十五、MySQL变量(系统变量、自定义变量)相关知识总结

变量:

  1. 系统变量
    a.全局变量
    b.会话变量

  2. 自定义变量
    a.用户变量
    b.局部变量

一、系统变量

说明:变量由系统定义,不是用户定义,属于服务器层面
注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,**默认也是会话(session)**级别
使用步骤:

  1. 查看所有系统变量
    show global|【session】variables;
    在这里插入图片描述
    在这里插入图片描述
  2. 查看满足条件的部分系统变量
    show global|【session】 variables like ‘%char%’;
    在这里插入图片描述
  3. 查看指定的系统变量的值
    select @@global|【session】.系统变量名;
    在这里插入图片描述
  4. 为某个系统变量赋值
    方式一:
    set global|【session】系统变量名=值;
    在这里插入图片描述
    方式二:
    set @@global|【session】系统变量名=值;
    在这里插入图片描述

1)全局变量

作用域:针对于所有会话(连接)有效,但不能跨重启

#①查看所有全局变量
SHOW GLOBAL VARIABLES;
#②查看满足条件的部分系统变量
SHOW GLOBAL VARIABLES LIKE '%char%';
#③查看指定的系统变量的值
SELECT @@global.autocommit;
#④为某个系统变量赋值
SET @@global.autocommit=0;
SET GLOBAL autocommit=0;

2)会话变量

作用域:针对于当前会话(连接)有效

#①查看所有会话变量
SHOW SESSION VARIABLES;
#②查看满足条件的部分会话变量
SHOW SESSION VARIABLES LIKE '%char%';
#③查看指定的会话变量的值
SELECT @@autocommit;
SELECT @@session.tx_isolation;
#④为某个会话变量赋值
SET @@session.tx_isolation='read-uncommitted';
SET SESSION tx_isolation='read-committed';

在这里插入图片描述
在这里插入图片描述

二、自定义变量

说明:变量由用户自定义,而不是系统提供的
使用步骤:

  1. 声明
  2. 赋值
  3. 使用(查看、比较、运算等)

1)用户变量

作用域:针对于当前会话(连接)有效,作用域同于会话变量
可以应用在任何地方,也就是begin end里面或begin end外面

赋值操作符:=或:=
①声明并初始化
SET @变量名=值;
SET @变量名:=值;
SELECT @变量名:=值;

②赋值(更新变量的值)

  1. 方式一:
    SET @变量名=值;
    SET @变量名:=值;
    SELECT @变量名:=值;
  2. 方式二:
    SELECT 字段 INTO @变量名
    FROM 表;

③使用(查看变量的值)
SELECT @变量名;

在这里插入图片描述

2)局部变量

作用域:仅仅在定义它的begin end块中有效
应用在 begin end中的第一句话

①声明
DECLARE 变量名 类型;
DECLARE 变量名 类型 【DEFAULT 值】;

②赋值(更新变量的值)

  1. 方式一:
    SET 局部变量名=值;
    SET 局部变量名:=值;
    SELECT 局部变量名:=值;
  2. 方式二:
    SELECT 字段 INTO 具备变量名
    FROM 表;

③使用(查看变量的值)
SELECT 局部变量名;

案例:声明两个变量,求和并打印

#用户变量
SET @m=1;
SET @n=1;
SET @sum=@m+@n;
SELECT @sum;#局部变量(X)以下代码为错误示范,因为局部变量需要在begin end 里面的第一行使用
DECLARE m INT DEFAULT 1;
DECLARE n INT DEFAULT 1;
DECLARE SUM INT;
SET SUM=m+n;
SELECT SUM;

在这里插入图片描述

用户变量和局部变量的对比:

变量类型作用域定义位置语法
用户变量当前会话会话的任何地方加@符号,不用指定类型
局部变量定义它的BEGIN END中BEGIN END的第一句话一般不用加@,需要指定类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 2210. 统计数组中峰和谷的数量

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums 。如果两侧距 i 最近的不相等邻居的值均小于 nums[i] ,则下标 i 是 nums 中,某个峰的一部分。 类似地,如果两侧距 i 最近的不相等邻居的值均大于 nums[i] ,…

【项目总结】如何获取地图上的所有POI

1. 地图POI数据是什么,有什么用 关于地图数据123,可以参考一下这篇 https://www.zhihu.com/question/21530085/answer/18728706,回答了很多信息;下图是摘自其中,展示了建立一个地图需要的几个图层数据,从底…

十六、MySQL流程控制结构(顺序、分支、循环)详解 强化练习

流程控制结构:顺序、分支、循环 一、分支结构 case结构作为表达式: case结构作为独立的语句: if函数 语法:if(条件,值1,值2) 功能:实现双分支 应用在begin end中或外面 case结构 语法: 情…

LeetCode 2211. 统计道路上的碰撞次数

文章目录1. 题目2. 解题1. 题目 在一条无限长的公路上有 n 辆汽车正在行驶。汽车按从左到右的顺序按从 0 到 n - 1 编号,每辆车都在一个 独特的 位置。 给你一个下标从 0 开始的字符串 directions ,长度为 n 。 directions[i] 可以是 ‘L’、‘R’ 或 …

服务端的思考

概述 我们思考发布一个web服务需要做的工作,并进行职责的划分。职责的划分 通常我们会先制定抽象的接口,然后根据接口构造实现类。接口和实现类都完成了,再实施发布。所以,服务端的角色可以划分为:服务接口、服务实现、…

IPv6数据报详解

一、为什么有IPv6? 二、IPv6数据报格式 版本:指明了协议版本,总是6。 优先级:区分数据报的类别和优先级。 流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签…

LeetCode 2212. 射箭比赛中的最大得分(状态枚举)

文章目录1. 题目2. 解题1. 题目 Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下: Alice 先射 numArrows 支箭,然后 Bob 也射 numArrows 支箭。 分数按下述规则计算: 箭靶有若干整数计分区域,范围从 0 到 11 (…

web前端复习系列[1]——标签

<h1>一般用于网站标题。加入强调语气&#xff0c;使用<strong>和<em>标签。<em> 表示强调&#xff0c;<strong> 表示更强烈的强调。并且在浏览器中<em> 默认用斜体表示&#xff0c;<strong> 用粗体表示。两个标签相比&#xff0c;目…

十七、MySQL触发器(创建、删除、查看)详解

触发器 一、介绍 触发器是与表有关的数据库对象&#xff0c;指在 insert/update/delete 之前或之后&#xff0c;触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性 , 日志记录 , 数据校验等操作 。 使用别名 OLD 和 NEW 来引用…

LeetCode 2215. 找出两数组的不同(set)

文章目录1. 题目2. 解题1. 题目 给你两个下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;请你返回一个长度为 2 的列表 answer &#xff0c;其中&#xff1a; answer[0] 是 nums1 中所有 不 存在于 nums2 中的 不同 整数组成的列表。answer[1] 是 nums2 中所有 不 存在…

HDOJ 5071 Chat 模拟

大模拟&#xff1a; 1》saygoodbye要先对 always on top 的人说 2》对没有说过话的不要说good bye 3》用long long Chat Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 337 Accepted Submission(s): 82Prob…

十八、MySQL之TCL事务控制语言(详解)

TCL &#xff1a; Transaction Control Language 事务控制语言 零、MySQL 中的存储引擎 1、概念&#xff1a;在mysql中的数据用各种不同的技术存储在文件&#xff08;或内存&#xff09;中。 2、通过show engines&#xff1b;来查看mysql支持的存储引擎。 3、 在mysql中用的…

LeetCode 2220. 转换数字的最少位翻转次数(位运算)

文章目录1. 题目2. 解题1. 题目 一次 位翻转 定义为将数字 x 二进制中的一个位进行 翻转 操作&#xff0c;即将 0 变成 1 &#xff0c;或者将 1 变成 0 。 比方说&#xff0c;x 7 &#xff0c;二进制表示为 111 &#xff0c;我们可以选择任意一个位&#xff08;包含没有显示…

UITextField属性

UITextField属性 0、enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话&#xff0c;右下角的返回按钮是disabled的。1、borderStyle 设置边框样式&#xff0c;只有设置了才会显示边框样式text.borderStyle UITextBorderStyleRoundedRect;ty…

LeetCode 2221. 数组的三角和

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;其中 nums[i] 是 0 到 9 之间&#xff08;两者都包含&#xff09;的一个数字。 nums 的 三角和 是执行以下操作以后最后剩下元素的值&#xff1a; nums 初始包含 n 个元素。如果 n 1 &…

十九、MySQL常用命令总结

数据结构核心原理与算法应用C:\Windows\system32> net stop mysql0815MySQL0815 服务正在停止. MySQL0815 服务已成功停止。C:\Windows\system32>net start mysql0815 MySQL0815 服务正在启动 . MySQL0815 服务已经启动成功。C:\Windows\system32>mysql -h localhost…

移动web开发之rem布局(rem基础、媒体查询、 less 基础、rem适配方案)

移动web开发之rem布局 一、rem基础 rem单位 rem (root em)是一个相对单位&#xff0c;类似于em&#xff0c;em是父元素字体大小。 不同的是rem的基准是相对于html元素的字体大小。 比如&#xff0c;根元素&#xff08;html&#xff09;设置font-size12px; 非根元素设置wid…

LeetCode 2222. 选择建筑的方案数

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的二进制字符串 s &#xff0c;它表示一条街沿途的建筑类型&#xff0c;其中&#xff1a; s[i] 0 表示第 i 栋建筑是一栋办公楼&#xff0c;s[i] 1 表示第 i 栋建筑是一间餐厅。 作为市政厅的官员&#xff0c;你需要随…

内存管理 内存泄漏

垃圾回收机制是周期性的&#xff0c;按照特定的周期循环&#xff0c;或者按照预先定义的时间执行最流行的回收机制是mark-and-sweep当一个变量进入当前上下文&#xff0c;那么会被标示为在上下文中&#xff0c;内存不会被释放&#xff0c;当他离开会被标示为不在上下文&#xf…

LeetCode 2224. 转化时间需要的最少操作数(贪心)

文章目录1. 题目2. 解题1. 题目 给你两个字符串 current 和 correct &#xff0c;表示两个 24 小时制时间 。 24 小时制时间 按 "HH:MM" 进行格式化&#xff0c;其中 HH 在 00 和 23 之间&#xff0c;而 MM 在 00 和 59 之间。 最早的 24 小时制时间为 00:00 &…