SQL——变量

环境

  DBMS:MySQL 8.0.17

  工具:Navicat Premium 11.2.16

概述

  变量分为系统变量和自定义变量两种。

系统变量

  系统变量是由数据库系统内置的变量,分为会话变量和全局变量两种。

会话变量

  会话变量作用于当前会话。


  查看会话变量:

SHOW SESSION VARIABLES[ LIKE <匹配串>];

  like用于模糊匹配。

  查看MySQL所有会话变量:

  

  一共有572条记录,表示有572个会话变量。


  查询指定会话变量的取值:

SELECT @@session.<变量名>;

  设置会话变量:

SET SESSION <变量名>=<值>;

  关闭自动提交:

  

  查看是否关闭:

  

  

全局变量

  全局变量作用于服务器关闭前的所有会话。

  查看全局变量:

SHOW GLOBAL VARIABLES[ LIKE <匹配串>];

  like用于模糊匹配。

  查看MySQL所有全局变量:

  

  一共有552条记录,表示有552个全局变量。


  查询指定全局变量的取值:

SELECT @@global.<变量名>;

  设置全局变量:

SET GLOBAL <变量名>=<值>;

  关闭自动提交:

  

  查看是否关闭:

  

自定义变量

  自定义变量是由用户自己定义的变量,分为用户变量和局部变量两种。

  自定义变量必须先声明才能够使用。

用户变量

  用户变量可以在任意位置使用。

  声明、赋值:

SET @<变量名>:=<值>;

  赋值符号使用的是“:=”。

  可以将查询结果赋给变量:

SELECT <字段> INTO @<变量名> FROM <表>;

  查询结果必须是一个值。

  查看:

SELECT @<变量名>;

  声明一个用户变量count表示学生人数:

  

  查询学生总人数,并赋值给count:

  

  查看count:

  

  

局部变量

  局部变量只能在SQL块中使用。SQL块是指包含在begin、end之间的一个或多个SQL语句。

  声明:

DECLARE <变量名> <数据类型>[ DEFAULT <值>];

  使用declare声明局部变量,可以使用default在声明变量时赋值。

  赋值:

SET <变量名>:=<值>;

  赋值符号使用的是“:=”。

  可以将查询结果赋值给变量:

SELECT <字段> INTO <变量名> FROM <表>;

  查询结果必须是一个值,而且该值必须与局部变量的数据类型对应。

  查看:

SELECT <变量名>;

  定义一个存储结构getCount获取学生人数:

  

  调用存储过程getCount:

  

  

原文地址:https://www.cnblogs.com/lqkStudy/p/11491097.html