iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >第62讲:MySQL存储过程中变量的定义及应用
  • 592
分享到

第62讲:MySQL存储过程中变量的定义及应用

mysql数据库服务器原力计划 2023-08-16 15:08:42 592人浏览 独家记忆
摘要

文章目录 1.系统变量1.1.查看系统变量的语法格式1.2.设置系统变量值的语法格式1.3.系统变量使用案例 2.用户自定义的变量2.1.用户自定义变量的语法格式2.2.用户自定义变量的案例 3.可以在存储过程中定义的局

Mysql数据库种分为三种类型的变量,分别是系统变量、用户自定义的变量、局部变量。

1.系统变量

系统变量是由mysql数据库提供的系统变量,属于服务层面的系统变量,系统变量在使用时的级别又分为两种:

  • 全局变量(global):全局变量针对所有的会话生效,但是当重启Mysql后,修改的系统变量值将会失效,若想永久修改变量的值,可以在MySQL的配置文件中声明。

  • 局部变量(session):会话变量只针对与单个会话生效,到另一个会话窗口将失效。

系统变量的两种使用级别可以在使用变量时指定使用哪一个级别,如果不明确指定系统变量的级别,默认是session。

1.1.查看系统变量的语法格式

1)查看所有的系统变量

SHOW [ SESSION | GLOBAL ] VARIABLES 

2)查找某一个系统变量

SHOW [ SESSION | GLOBAL ] VARIABLES LIKE '变量名'

3)查看指定变量的值

SELECT @@[SESSION | GLOBAL].变量名

1.2.设置系统变量值的语法格式

两种方式可以设置变量的值。

SET [ SESSION | GLOBAL ] 系统变量名 = 值 SET @@[SESSION | GLOBAL].系统变量名 = 值 

1.3.系统变量使用案例

1)查看所有的系统变量

mysql> show variables;

2)查看名称包含auto的系统变量

左侧是变量名,右侧是变量值。

mysql> show variables like '%auto%';+----------------------------------------------+-------+| Variable_name    | Value |+----------------------------------------------+-------+| auto_generate_certs                          | ON    || auto_increment_increment                     | 1     || auto_increment_offset                        | 1     || autocommit       | ON    || automatic_sp_privileges                      | ON    || caching_sha2_passWord_auto_generate_rsa_keys | ON    || innodb_autoextend_increment                  | 64    || innodb_autoinc_lock_mode                     | 2     || innodb_stats_auto_recalc                     | ON    || sha256_password_auto_generate_rsa_keys       | ON    || sql_auto_is_null | OFF   |+----------------------------------------------+-------+11 rows in set (0.00 sec)

3)查看指定变量的变量值

mysql> select @@session.autocommit;+----------------------+| @@session.autocommit |+----------------------+|                    1 |+----------------------+1 row in set (0.00 sec)

4)修改系统变量的值

mysql> set @@session.autocommit = 0;Query OK, 0 rows affected (0.02 sec)或者mysql> set session autocommit = 0;Query OK, 0 rows affected (0.00 sec)

2.用户自定义的变量

在MySQL数据库中,还支持用户根据自己的需要,自定义的环境变量,用户自定义的变量不需要提前声明,直接赋值使用即可,用户自定义的变量仅应用于当前的会话连接。

用户自定义的变量是不需要声明或者初始化的,如果没有赋值直接使用自定义的变量名,变量值则为NULL。

2.1.用户自定义变量的语法格式

1)定义变量并赋值

方式一,使用SET直接定义变量并赋值。

SET @变量名1 = 变量值1SET @变量名1 = 变量值1 , @变量名2 = 变量值2SET @变量名1 := 变量值1 SET @变量名1 := 变量值1 , @变量名2 := 变量值2 建议使用:=的方式为变量赋值,因为在变量运算时=符号也是运算符号。

方式二,由于用户自定义的变量不需要声明,可以使用SELECT直接定义变量和赋值。

SELECT @变量名1 := 变量值1 , @变量名2 := 变量值2 

方式三,将SQL的查询结果赋值给变量。

SELECT 字段名 INTO @变量名 FROM 表名将某个表的某个字段的结果赋值给变量。

2)使用变量

SELECT @变量名1

2.2.用户自定义变量的案例

1)使用set定义变量并赋值

1.一次性定义一个变量mysql> set @name = 'jiangxl';或者mysql> set @username :=  'wang';2.一次性定义多个变量mysql> set @username = 'wang' , @userid = '1';或者mysql> set @age := '19' , @book := 'linux';

2)使用select定义变量并赋值

使用select定义完变量赋完值之后就可以看到变量的值。

1.一次性定义一个变量mysql> select @myzhiwu := 'devops_linux';+----------------------------+| @myzhiwu := 'devops_linux' |+----------------------------+| devops_linux               |+----------------------------+2.一次性定义多个变量mysql> select @myzhiwu := 'devops_linux' , @myage := '25';+----------------------------+----------------+| @myzhiwu := 'devops_linux' | @myage := '25' |+----------------------------+----------------+| devops_linux               | 25             |+----------------------------+----------------+

3)将ryxxb的总数赋值给变量

mysql> select count(*) into @mycount from ryxxb;

4)查看变量的值

查询各个定义的变量所对应的值。

mysql> select @name,@username,@userid,@age,@book,@myzhiwu,@myage;+---------+-----------+---------+------+-------+--------------+--------+| @name   | @username | @userid | @age | @book | @myzhiwu     | @myage |+---------+-----------+---------+------+-------+--------------+--------+| jiangxl | wang      | 1       | 19   | linux | devops_linux | 25     |+---------+-----------+---------+------+-------+--------------+--------+

3.可以在存储过程中定义的局部变量

局部变量是在存储过程中声明的,仅应用于存储过程的BEGIN…END这个范围中,局部变量需要通过DECLARE关键字声明,声明完成后再通过SET或者SELECT进行赋值,局部变量和用户自定义变量的赋值方式是一模一样的。

3.1.局部变量的语法格式

1)声明变量

DECLARE 变量名 变量值的类型 [DEFAULT 默认值]变量值的类型就是数据库字段的类型,例如:INT BIGINT CHAR VARCHAR DATE TIME等等。

2)变量赋值

SET 变量名 = 变量值SET 变量名 := 变量值SELECT 字段名 INTO 变量名 FROM 表名;

3.2.局部变量的应用案例

创建一个存储过程,在里面定义两个局部变量,分别用SET和SELECT赋值,最后查看变量的内容。

1.创建视图create procedure proc_2()begindeclare ryxxb_count int default 0;#声明ryxxb表总数的变量,类型为int,默认值为0declare username varchar(10);#声明username变量,类型为varcharset username := 'jiangxl';#赋值username变量select count(*) into ryxxb_count from ryxxb;#将ryxxb表的总数据量赋值为ryxxb_count变量select ryxxb_count,username;#查询变量的值end;2.调用视图mysql> call proc_2();+-------------+----------+| ryxxb_count | username |+-------------+----------+|          22 | jiangxl  |+-------------+----------+1 row in set (0.00 sec)

来源地址:https://blog.csdn.net/weixin_44953658/article/details/130552384

您可能感兴趣的文档:

--结束END--

本文标题: 第62讲:MySQL存储过程中变量的定义及应用

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

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

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

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

下载Word文档
猜你喜欢
  • 第62讲:MySQL存储过程中变量的定义及应用
    文章目录 1.系统变量1.1.查看系统变量的语法格式1.2.设置系统变量值的语法格式1.3.系统变量使用案例 2.用户自定义的变量2.1.用户自定义变量的语法格式2.2.用户自定义变量的案例 3.可以在存储过程中定义的局...
    99+
    2023-08-16
    mysql 数据库 服务器 原力计划
  • mysql存储过程中如何定义变量
    今天小编给大家分享一下mysql存储过程中如何定义变量的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • MySQL中如何定义存储过程变量
    这期内容当中小编将会给大家带来有关MySQL中如何定义存储过程变量,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。要在存储过程中声明一个变量,可以使用DECLARE语句 ...
    99+
    2024-04-02
  • MySql存储过程中如何定义参数
    小编给大家分享一下MySql存储过程中如何定义参数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、参数分类参数,同一样,MySql中存储过程也可以带参数,前面的例子中我们没有使用参数,在...
    99+
    2024-04-02
  • mysql中怎么拼接存储过程变量
    mysql中怎么拼接存储过程变量,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。存储过程变量的拼接 有时候我们需要模糊查询,但是同时我...
    99+
    2024-04-02
  • MySQL存储过程中如何使用局部变量?
    局部变量是在存储过程中声明的变量。它们仅在声明它们的 BEGIN…END 块内有效,并且可以具有任何 SQL 数据类型。为了演示它,我们正在创建以下过程 -mysql> DELIMITER // ; mysql> Create ...
    99+
    2023-10-22
  • MySQL基础篇——存储过程和函数中的变量
    🙌作者简介:数学与计算机科学学院学生、分享学习经验、生活、 努力成为像代码一样有逻辑的人 🌙个人主页:阿芒的主页 👉推荐一款刷题、找工作神器 牛客网注册即可免费刷题 文章目录 &...
    99+
    2023-08-21
    mysql 服务器 数据库
  • mysql存储过程中使用变量批量修改数据的方法
    本篇内容主要讲解“mysql存储过程中使用变量批量修改数据的方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql存储过程中使用变量批量修改数据的方法”吧...
    99+
    2024-04-02
  • MySQL中如何定义和调用存储过程和函数
    在MySQL中定义存储过程和函数的语法如下: 定义存储过程: DELIMITER // CREATE PROCEDURE pro...
    99+
    2024-03-06
    MySQL
  • 我们如何在用户定义的变量中存储值?
    我们可以在语句中将一个值存储在用户定义的变量中,然后在其他语句中引用它。以下是存储用户定义变量值的方法:使用SET语句我们可以通过发出SET语句来存储用户定义变量,如下所示:语法SET @var_name = expr[, @var_nam...
    99+
    2023-10-22
  • mysql中存储过程定义、修改和删除的案例
    这篇文章给大家分享的是有关mysql中存储过程定义、修改和删除的案例的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。1.存储过程的分类系统存储过程本地存储过程(用户自定义)临时存储...
    99+
    2024-04-02
  • 如何在MySQL中自定义函数和存储过程
    本篇文章给大家分享的是有关如何在MySQL中自定义函数和存储过程,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、前置条件MySQL数据库中存...
    99+
    2024-04-02
  • MySQL 中的用户定义变量与局部变量?
    用户定义的变量也称为会话特定变量。它是一种松散类型变量,可以在会话中的某个位置进行初始化,并包含用户定义变量的值,直到会话结束。用户定义变量以符号 @ 为前缀。例如:@anyVariableName;有两种方法可以初始化用户定义的变量。您可...
    99+
    2023-10-22
  • mysql存储过程中给变量赋值的方法是什么
    这篇文章主要介绍“mysql存储过程中给变量赋值的方法是什么”,在日常操作中,相信很多人在mysql存储过程中给变量赋值的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • GridView中如何自定义分页的存储过程
    GridView中如何自定义分页的存储过程,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 为什么不使用GridView的默...
    99+
    2024-04-02
  • 在 MySQL 中使用用户定义的变量
    让我们了解什么是用户变量以及如何在 MySQL 中使用它们。我们还将看到规则 -用户变量被写为@var_name。这里,“var_name”指的是变量名,由字母数字字符、.、_和$组成。用户变量名可以包含其他字符(如果被引号引起来)作为字符...
    99+
    2023-10-22
  • Navicat在存储过程中如何使用变量和参数
    在Navicat中,存储过程可以使用变量和参数来增强灵活性和可重用性。以下是在Navicat中如何使用变量和参数的步骤: 定义变量...
    99+
    2024-05-10
    Navicat
  • 如何在MySQL中使用C#编写自定义存储过程和函数
    要在MySQL中使用C#编写自定义存储过程和函数,需要使用MySQL Connector/NET,它是一个用于与MySQL数据库进行...
    99+
    2023-10-10
    MySQL
  • 如何在MySQL中使用JavaScript编写自定义存储过程和函数
    在MySQL中使用JavaScript编写自定义存储过程和函数是不可能的。MySQL只支持使用SQL语言来编写存储过程和函数。要在M...
    99+
    2023-10-10
    MySQL
  • 如何在MySQL中使用Python编写自定义存储过程和函数
    如何在MySQL中使用Python编写自定义存储过程和函数MySQL是一种常用的关系型数据库管理系统,而Python是一种强大的编程语言。结合两者可以实现更灵活和高效的数据库操作。MySQL中的存储过程和函数可以帮助我们封装常用的操作逻辑,...
    99+
    2023-10-22
    Python MySQL 存储过程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作