进阶:变量 1.系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面。 注意:(1) 全局变量需要添加global关键字 (2) 会话变量需要添加session键字 (3)

2023-10-30

进阶:变量

在这里插入图片描述

1.系统变量
说明:变量由系统定义,不是用户定义,属于服务器层面。
注意:(1) 全局变量需要添加global关键字
(2) 会话变量需要添加session关键字
(3) 如果不写,默认session会话级别
使用步骤:
1、查看所有系统变量
show global |【session】variables;
如:
show global variables; # 319 系统所有的全局变量
show session variables; # 331 系统所有的会话变量

2、查看满足条件的部分系统变量
show global |【session】variables like 匹配条件;
如:
show global variables like ‘%char%’;

3、查看指定的系统变量的值
select @@global |【session】.系统变量名;
如:
select @@global.autocommit;
select @@session.autocommit;

如果不写,默认会话级别

select @@autocommit;

4、为某个系统变量赋值
方式一:
select global |【session】.系统变量名 = 值;
方式二:
select @@global |【session】.系统变量名 = 值;
如:
set @@global.autocommit = 1;
set @@session.autocommit = 0;

1.1 全局变量
作用域:针对于所有会话(连接)有效,但不能跨重启
#①查看所有全局变量
SHOW GLOBAL VARIABLES;
#②查看满足条件的部分系统变量
SHOW GLOBAL VARIABLES LIKE ‘%char%’;
#③查看指定的系统变量的值
SELECT @@global.autocommit;
#④为某个系统变量赋值
SET @@global.autocommit = 0;
1.2 会话变量
作用域:针对于当前会话(连接)有效,初始值等于连接时的全局值。
#①查看所有会话变量
SHOW SESSION VARIABLES;
#②查看满足条件的部分会话变量
SHOW SESSION VARIABLES LIKE ‘%char%’;
#③查看指定的会话变量的值
SELECT @@session.autocommit;
#④为某个会话变量赋值
SET @@session.autocommit=1;

2.自定义变量
说明:变量由用户自定义,而不是系统提供的
使用步骤:
(1)声明
(2)赋值
(3)使用(查看、比较、运算等)

2.1 用户变量
作用域:针对于当前会话(连接)有效,作用域同于会话变量

#赋值操作符 = 或 :=

① 声明并初始化

SET @变量名=值;
SET @变量名:=值;
SELECT @变量名:=值;

② 赋值(更新变量的值)

#方式一:
SET @变量名=值; #推荐
SET @变量名:=值;
SELECT @变量名:=值;
#方式二:将表中 的字段的值 赋值给 变量名【一对一】
SELECT 字段 INTO @变量名FROM 表

③ 使用(查看变量的值)

SELECT @变量名;

#案例:声明两个变量,求和并打印
SET @m=1;
SET @n=2;
SET @sum=@m+@n;
#使用(查看变量的值)
SELECT @sum;
SELECT @mm:=“你好!”;
SELECT @mm;

案例:
SELECT salary INTO @n FROM employees WHERE employee_id=100;
SELECT @n;

SELECT @m := salary FROM employees WHERE employee_id=100;
SELECT @m;

2.2 局部变量(坑)
作用域:仅仅在定义它的begin/end块中有效
应用在 begin/end中的第一句话

注意:mysql局部变量,只能用在begin/end语句块中,比如存储过程中的begin/end语句块。
其作用域仅限于该语句块。

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

#②赋值(更新变量的值)
#方式一:
SET 局部变量名=值;
SET 局部变量名:=值;
SELECT 局部变量名:=值;
#方式二:
SELECT 字段 INTO 局部变量名FROM 表

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

#案例:声明两个变量,求和并打印
#局部变量
DECLARE m INT DEFAULT 1;
DECLARE n INT DEFAULT 2;
DECLARE s INT ;
#使用(查看变量的值)
SET s=m+n;
SELECT s;

#局部变量的使用案例:
delimiter $
create procedure sub(in a int)
begin
declare s1 int;
set a = 1;
select count(*) from goods into s1;
end$

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进阶:变量 1.系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面。 注意:(1) 全局变量需要添加global关键字 (2) 会话变量需要添加session键字 (3) 的相关文章

  • MySQL - 将字段的默认值设置为字符串连接函数

    我有一个看起来有点像这个的表 actor forename surname stage name 我想将 stage name 更新为默认值 forename surname So that insert into actors foren
  • 如何让MySQL数据库完全在内存中运行?

    我注意到我的数据库服务器支持内存数据库引擎 我想让一个已经运行 InnoDB 的数据库完全在内存中运行以提高性能 我怎么做 我探索了 PHPMyAdmin 但找不到 更改引擎 功能 假设您了解注释中提到的使用 MEMORY 引擎的后果 并且
  • 在 LAMP 配置中创建个性化 URL

    在 LAMP 配置下创建用户个性化 URL 的最佳方法是什么 例如 可以按如下方式访问用户个人资料页面 http www website com profile php id 1 http www website com profile p
  • 两个表之间可以有两种关系吗?

    有两个表 EMPLOYER 和 EMPLOYEE 由于每个 EMPLOYEE 都被分配给一个 EMPLOYER 因此他们之间存在 1 N 关系 简单的事情 但我也希望能够模拟一种情况 每个雇主都可以选择他的one最喜欢的员工 他最好什么也不
  • mysql - 如果日期不与现有日期重叠,则将日期范围插入日期列

    我有以下表结构 表名 available id autoincremetn acc id start date end date 1 175 2015 05 26 2015 05 31 2 175 2015 07 01 2015 07 07
  • GROUP_CONCAT 逗号分隔符 - MySQL

    我有一个疑问 我在哪里使用GROUP CONCAT和自定义分隔符 因为我的结果可能包含逗号 这一切都运行良好 但它仍然以逗号分隔 所以我的输出是 Result A Result B Result C 我怎样才能做到这一点 输出是 Resul
  • 如何在 Eclipse 中使用 MySql 数据库

    我对编程非常陌生 所以请耐心等待 如果一开始我没有理解的话 请提前道歉 我正在做一个本科编程项目 需要在 Java 程序中创建一些数据库 我正在使用 eclipse galilo 来编写我的程序 我已经下载了一个连接器 J 但还不知道应该如
  • MySQL - 如何按相关性排序? INNODB表

    我在一个名为 cards 的 INNODB 表中有大约 20 000 行 所以 FULLTEXT 不是一个选项 请考虑这张表 id name description 1 John Smith Just some dude 2 Ted Joh
  • PHP PDF生成问题

    我使用 FPDF 在 PHP 中创建 pdf 我使用会话变量将变量在一种表单之间传递到另一种表单 当我提供一个值时 Report php
  • 浏览器关闭后从数据库中删除

    我正在开发一个电子商务应用程序 但问题是 当用户将产品添加到购物车并在订购前关闭浏览器时 购物车会带走所有产品 所有购物车项目都保存在表中 如果用户关闭浏览器而不订购 我只想刷新购物车 您可以使用 Javascript 事件捕获浏览器关闭并
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • MySQL 多个 IN 条件对同一个表进行子查询

    我有多个带有子查询的 IN 条件 SELECT S name S email FROM something S WHERE 1 NOT IN SELECT id FROM tags WHERE somethingId S id AND 2
  • mysql变量赋值:如何强制赋值顺序?

    由于mysql是一种声明性语言 我找不到强制赋值变量顺序的方法 采取这个查询 SET v1 0 SET v2 0 SELECT v1 v2 FROM MyTable table WHERE v1 v2 is not null AND v2
  • Mysql - 如何比较两个 Json 对象?

    将整个 MySql json 列与 json 对象进行比较的语法是什么 以下不起作用 select count criteria from my alerts where criteria industries 1 locations 1
  • ON DUPLICATE KEY UPDATE 的自动增量过多

    我有一个包含列的基本表 id 主要是AI 名称 唯一 etc 如果唯一列不存在 则插入该行 否则更新该行 INSERT INTO pages name etc VALUES bob randomness ON DUPLICATE KEY U
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • 在 MySQL 中搜索多个单词

    我使用 HTML 表单来允许用户查找数据库表中的条目
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • $_SESSION 中保存大量信息可以吗?

    我需要存储许多数组 SESSION以防止从 MySQL 检索信息 可以吗 其中 太多 的信息有多少 SESSION还是没有 太多 谢谢 附 或者更好地使用http php net manual en book memcache php ht
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from

随机推荐

  • 在 Java 中,读取 resources 下的文件方式(四种)

    1 测试文件具体位置 2 方式一 项目内路径 使用项目内路径读取 该路径只在开发工具中显示 所以只能在开发工具中使用 项目部署之后无法读取 不通用 SpringBootTest public class ResourcesFIleTest
  • 爱快路由器设置上网

    进入以太网络设置里面查看详细信息 也可cmdipconfig 找出网管 打开电脑的浏览器 地址栏输入 10 100 10 1 在登录界面爱快路由器帐号和密码 默认帐号 admin 默认密码 admin 点击登录 忘记密码可长按路由器重置键
  • rust入门材料清单

    rust book rustbook 配套视频教程 cargo 文档 crate io 标准库api 官方资料索引 rust 编程规范
  • js实现Math.sqrt()方法

    之前面试的时候 面试有一道题 要记算10的平方根 并且精确到0 01 我也是想了一会才想到了一种简单粗暴的方法 也算是完成了 squareRoot num gt let s 1 d 0 1 x 0 01 while s s
  • MyEclipse 8.0 中vssplugin的安装

    今天试用了myeclipse8 0 多了很多新特性 挺不错的 由于本司用的是vss库 所以vssplugin是必装项 可是安装的时候发布目录结构有所变动与myeclipse6 0有所区别 具体安装详见如下步骤 1 下载vss plugin
  • Python画爱心——谁能拒绝用代码敲出来会跳动的爱心呢~

    还不快把这份浪漫拿走 节日就快到来了 给Ta一个惊喜吧 今天给大家分享一个浪漫小技巧 利用Python中的 HTML 制作一个立体会动的心动小爱心 成千上百个爱心汇成一个大爱心 从里到外形成一个立体状 给人视觉上的冲击感 浪漫极了 V hw
  • div页面垂直居中方法方法

    基本思路 1 首们需要position absolute 绝对定位 而层的定位点 使用外补丁margin负值的方法 负值的大小为层自身宽度高度除以二 例子 一个层宽度是400 高度是300 使用绝对定位距离上部与左部都设置成50 而marg
  • 带你详细了解ADSS光缆

    ADSS 全介质自承式光缆 光缆是一种自支撑架空光缆 专为架空安装和部署而设计 适用于各种户外应用 本文将提供ADSS光缆的一些知识 什么是ADSS光缆 ADSS 光缆是一种光缆 其强度足以在结构之间支撑自身 而无需使用导电金属元件 该光缆
  • 创建qml自定义视频源(Qt5.15.2+设备帧)

    前言 若是看过笔者之前的文档 应该会注意到 笔者显示自定义视频 使用的是QQuickImageProvider和Image类型实现 本次笔者记录另一种显示方式 创建视频源 然后使用VideoOutput显示 因为Qt5和Qt6多媒体模块发生
  • QML自定义模块及qmldir的使用

    前言 在开发QtQuick项目中 当项目文件很多的情况下 可能会分成多级文件夹来进行分类 还有一些通用类型文件 如公共组件 通用配置等等 需要在各个不同的文件中进行调用 这种情况下 一种方式是在当前需要引用的文件中通过关键字import 加
  • TCP-三次握手

    文章目录 三次握手 简单示意图 详细分析 一些思考 为什么是三次握手 SYN 攻击 什么是SYN 攻击 如何防止SYN 攻击 数据包丢失了该怎么办 初始序列号为什么随机产生 为什么 SYN 段不携带数据却要消耗一个序列号呢 每次握手可以确定
  • 数据库驱动和数据库连接(MySQL)

    数据库驱动和数据库连接 MySQL 一 数据库驱动 什么是数据库驱动 二 数据库连接 jdbc连接的方式以及区别 1 通过DriverManager 驱动管理类 的静态方法获取 2 通过DataSource 数据源 对象获取 3 两种创建连
  • SpringBoot常用注解和原理简介说明

    转自 SpringBoot常用注解和原理简介说明 下文笔者讲述SpringBoot常见注解的简介说明 如下所示 启动注解 SpringBootApplication Target ElementType TYPE Retention Ret
  • C++——QT之信号与槽

    通俗的理解信号与槽 信号与槽 Signal Slot 是 Qt 编程的基础 也是 Qt 的一大创新 因为有了信号与槽的编程机制 在 Qt 中处理界面各个组件的交互操作时变得更加直观和简单 信号 Signal 就是在特定情况下被发射的事件 例
  • 设计模式:快照模式

    快照模式也叫做备忘录模式 但是我觉得如果是了解快照的话 我觉得比备忘录更形象一点 毕竟现在快照有各种 有页面快照 有系统快照等 相当于是一个备份 备忘录其实也是备份的意思 我觉得快照更贴切一点现在的描述 快照模式是一种行为模式 行为模式可以
  • Python利用Opencv读取图片

    首先 要先确认PyCharm里面有没有装opencv python 如果没有 点右侧 号搜索添加 确认有opencv之后 便可以使用cv2读取图片了 import cv2 image path C Desktop image jpg 图片路
  • 数字化时代-23:中国人工智能企业100强排行榜

    综合实力TOP100 成长能力TOP100 创新能力TOP100
  • React组件卸载、路由跳转、页面关闭(刷新)之前进行提示

    React组件卸载生命周期 路由跳转和页面关闭三者看起来有些类似的地方 比如都是当前组件即将从视口消失 但实际上所触发的事件均不相同 以一个实际案例出发 某单页应用的 文章编辑页用户正在编辑文章 此时尚未保存 当用户不小心要跳转到另外一个路
  • SpringBoot——内置数据源

    简单介绍 在之前我们介绍SpringBoot的数据层解决方案的时候 曾说到过在数据层是由数据源 持久化技术和数据库组成的 之前我们一直使用的都是Druid MyBatis MySQL组合的解决方案 这三种方案在之前我们都介绍过如何整合以及基
  • 进阶:变量 1.系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面。 注意:(1) 全局变量需要添加global关键字 (2) 会话变量需要添加session键字 (3)

    进阶 变量 1 系统变量 说明 变量由系统定义 不是用户定义 属于服务器层面 注意 1 全局变量需要添加global关键字 2 会话变量需要添加session关键字 3 如果不写 默认session会话级别 使用步骤 1 查看所有系统变量