什么MySQL变量

MySQL本质是一种编程语言,变量用来存储数据。

与所有语言一样,变量是用来存储数据的。我们平常所写的SQL语句,实际上是在SQL编程。

MySQL两种变量

MySQL变量分为系统变量与用户自定义变量。系统变量一看就明白,系统已经定义好的变量;用户自定义变量就是用户自己的定义的变量。

系统变量

系统变量是由系统内部定义的变量,对所有用户有效。

系统变量又分为全局变量和会话变量。

全局变量

作用域:全局变量针对所有会话(连接)有效,不能重启。

查看全局变量语法SHOW GLOBAL VARIABLES [LIKE] 变量名;

案例

查看所有全局变量SHOW GLOBAL VARIABLES;

查看部分全局变量SHOW GLOBAL VARIABLES LIKE '%char%';

查看指定全局变量的值SELECT @@GLOBAL.autocommit;

为指定的全局变量赋值SET @@global.autocommit=0;

会话变量

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

查看会话变量语法SHOW SESSION VARIABLES [LIKE] 变量名;

查看所有会话变量SHOW SESSION VARIABLES;

查看部分会话变量SHOW SESSION VARIABLES LIKE '%char%';

查看指定会话变量的值# 方式一 (推荐)

SELECT @@session.autocommit;

# 方式二

SELECT @@autocommit;

为指定的会话变量赋值# 方式一

SET session autocommit=1;

# 方式二

SET @@autocommit=0;

用户自定义变量

用户自定义变量分为全局变量与局部变量。全局变量在任何地方可以使用;局部变量只能在定义它的begin end中有效。

用户变量

自定义变量语法

声明并初始化变量# 方式一

SET @用户变量名=值;

# 方式二

SET @用户变量名:=值;

# 方式三

SET @用户变量名 := 值;

变量赋值:SET或SELECT# 方式一

SET @用户变量名=值;

# 方式二

SET @用户变量名:=值;

# 方式三

SELECT @用户变量名:=值;# 也可以通过SELECT INTO方式

SELECT 字段名或表达式 INTO @变量名 FROM 表名;

# 案例

select id+10 into @uuid from user where id = 8;

查看变量SELECT @用户变量名;

案例# 声明变量并赋值

SET @age := 19;

# 更新变量值

SET @age := 20;

# 查看变量值

SELECT @age;

局部变量

局部变量声明语法DECLATE 变量名 类型 [DEFAULT 值];

类型:MySQL支持的数据类型,如varchar。

局部变量赋值SET 变量名=值;

SET 变量名:=值;

SELECT 变量名=值;# 方式二

SELECT 字段名或表达式 INTO @变量名 FROM 表名;

使用SELECT 变量名;

案例# 声明一个用户变量(实际上就是全局变量)

SET @uname = '王五';

# 创建一个存储过程

DELIMITER $$

CREATE PROCEDURE proc2()

BEGIN

select @uname;

end $$

# 调用存储过程

call proc2(); # 结果输出 “王五"

用户变量与局部变量对比作用域定义位置语法用户变量当前会话会话任何地方加@符号,不指定类型

局部变量定义在cegin end之间beging end的第一句话不加@符号,需要指定类型

我是小白,期待和优秀的你一起同行!

小白

2020年11月07日

转载:感谢您对自如初博客网站的认可,所有文章均属原创文章,技术类文章转载请注明出处,“自如初博客”;文学类文章请带文本链接地址,否则视为侵权!

很赞哦!(3)

mysql 变量作用域_二十二、MySQL基础系列笔记之变量相关推荐

  1. 零基础带你学习MySQL—单行子查询和多行子查询(二十二)

    零基础带你学习MySQL-多行子查询(二十二) 一.什么是子查询? 子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询 二.什么是单行子查询? 单行子查询是指只返回一行数据的子查 ...

  2. mysql revoke 用法_mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法 MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执行查 ...

  3. JAVA基础知识总结:一到二十二全部总结

    >一: 一.软件开发的常识 1.什么是软件? 一系列按照特定顺序组织起来的计算机数据或者指令 常见的软件: 系统软件:Windows\Mac OS \Linux 应用软件:QQ,一系列的播放器( ...

  4. 最新首途影视视频网站源码/二十二套带后台版全开源无加密源码

    源码简介: 最新首途二十二套带后台版全开源无加密源码 菜单填写格式:MyTheme主题,/template/mytheme/admin/默认账号:admin默认密码:admin 下载链接 网盘源码  ...

  5. 【C语言】二十二步了解函数栈帧(压栈、传参、返回、弹栈)

    阅读本文需要掌握的知识 熟练使用--c语言函数 进入正题前 首先我们为什么要学习函数的栈帧? 简单回答就是:增加内功 学习函数调用的底层代码,了解函数如何传参.如何返回 这样对于函数的使用有很大的帮助 ...

  6. iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2)

    iOS 11开发教程(二十二)iOS11应用视图实现按钮的响应(2) 此时,当用户轻拍按钮后,一个叫tapButton()的方法就会被触发. 注意:以上这一种方式是动作声明和关联一起进行的,还有一种先 ...

  7. OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十

    OpenCV学习笔记(二十一)--绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数.OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的.这里就介绍一下相关 ...

  8. 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环

    目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...

  9. 二十六. Python基础(26)--类的内置特殊属性和方法

    二十六. Python基础(26)--类的内置特殊属性和方法 ● 知识框架 ● 类的内置方法/魔法方法案例1: 单例设计模式 # 类的魔法方法 # 案例1: 单例设计模式 class Teacher: ...

最新文章

  1. 十一、Linux时间
  2. MySql的upsert操作
  3. 人脸识别(5)---人脸识别技术及应用概览
  4. 苹果春季发布会已开启直播;滴滴回应网约车司机被害​;微软Chromium内核浏览器曝光 | 极客头条...
  5. linux --- TCPdump 工具
  6. UVA10004 Bicoloring【DFS】
  7. c语言学生教务管理系统,c语言教务管理系统.doc
  8. SOTA级发丝抠图模型PP-Matting开源,支持多场景精细化分割
  9. 风行电视账号服务器链接失败,腾讯对战平台连接版本服务器失败的解决方法
  10. 软件测试——透过表象看本质
  11. 9530 blackberry 上网
  12. mysql sql 列变成横向_mysql怎么更改纵向变横向排列
  13. rtl8188linux内核配置,Embeded linux之RTL8188EU/RTL8188ETV使用
  14. Java程序设计——模拟行星运动
  15. 【前端】移动互联动画
  16. JAVA-实现接入企业微信发送消息(最详细代码讲解!)
  17. 归并排序(图解配代码)
  18. 什么是创新,什么是发明
  19. 微信小程序 - text 标签头部有空白间距
  20. 阿里云服务器ECS Ubuntu16.04-64-bit学习之一:配置桌面(进阶-脚本一键执行)

热门文章

  1. nextcloud安装教程
  2. python 购物车代码
  3. C#读取Adams的Shell文件(*.shl)
  4. -bash:command not found
  5. JavaScript代码检验工具——JS Lint工具安装指南
  6. ant 使用常见问题
  7. cmake 编译选项 add_compile_options CMAKE_CXX_FLAGS 区别
  8. linux c glib中的hash table
  9. python subprocess.Popen 实时输出 stdout
  10. FPGA和NIOS2的关系