MySQL——事务与存储过程(二)存储过程的创建(2) 变量的使用

news/2024/9/18 21:09:37/ 标签: mysql, 数据库

        在编写存储过程时,有时会需要使用变量保存数据处理过程中的值。在 MySQL中时,可以在子程序中声明并使用,这些变量的作用范围是在BEGIN...END程序中,接下将针对变量的定义和赋值进行详细的讲解。

        想要在存储过程中使用变量,首先需要定义变量。在存储过程中使用 DECLARE 语的定义变量,具体语法格式如下:

DEClARE var_name[,varname]...date_type[DERAULT valbe];

        上述语法格式中,var_name 为局部变量的名称。DEFAULT value 子句给变量提供个默认值。该值除了可以被声明为一个常数之外,还可以被指定为一个表达式。如果有DEFAULT 子句,变量的初始值为 NULL.接下来定义一个名称为 myvariable 的变量,类型为INT 类型,默认值为 100,示例代码如下:

DECLARE myvariable INT DEFAULT 100;

        定义变量之后,为变量赋值可以改变变量的默认值,MySQL 中使用 SET 语句为变量赋值,语法格式如下:

SET var_name=expr[,var_name=expr]...;

        在存储过程中的 SET语句是一般 SET语句的扩展版本。被参考变量可能是子程序内声明的变量,或者是全局服务器变量,如系统变量或者用户变量。

        在存储程序中的 SET语句作为预先存在的 SET 语法的一部分来实现。这允许SET a=x,b=y,……这样的扩展语法。其中不同的变量类型(局域声明变量及全局变量)可以被混合起来。这也允许把局部变量和一些只对系统变量有意义的选项合并起来。

        接下来声明三个变量,分别为 var1、var2、var3,数据类型为 INT,使用 SET 为变量赋值,示例代码如下:

DECLARE varl,var2,var3 INT;
SER var1=10,var2=20;
SET var3=varl+var2;

        除了可以使用 SET 语句为变量赋值外,MySQL 中还可以通过 SELECT…INTO 为一个或多个变量赋值,该语句可以把选定的列直接存储到对应位置的变量。使用SELECT.INTO 的具体语法格式如下:

SELECT col_name[...] INTO var_name[...] table_expr;

        在上述语法格式中,col_name 表示字段名称;var_name 表示定义的变量名称;table_expr 表示查询条件表达式,包括表名称和 WHERE 子句。

        例如,声明变量sgrade 和s_gender,通过 SELECT…INTO 语句查询指定记录并为变量赋值,具体代码如下:

DECLARE s_grade FLOAT;
DECLARE s_gender CHAR(2);
SELEcr grade, gender INTO s_grade,s_gender
FROM student WHERE name ='rose';

        上述语句将 student 表中 name 为rose 的同学的成绩和性别分别存人到了变量s_grade 和 s_gender 中。


http://www.ppmy.cn/news/1518524.html

相关文章

【jvm】局部变量表

目录 1. 说明2. 容量与大小3. 存储机制4. 生命周期5. 槽位重用6. 与成员变量的对比 1. 说明 1.JVM(Java虚拟机)中的局部变量表(Local Variables Table)是JVM执行方法时的一个重要组成部分,用于存储方法中定义的局部变…

筑牢技术防线:服务器故障后的应急响应与未来防范策略

在数字化浪潮中,每一个技术节点都牵动着服务的稳定与用户的信任。网易云音乐作为业界知名的音乐平台,其服务器故障事件不仅是一次技术挑战,更是对团队应急响应能力与未来防范措施的一次深刻考验。本文将从快速响应、问题排查、高效解决及长期…

chrome extension sendmessage async

遇到的问题: Chrome 插件开发,需要实现 content 页面使用 chrome.runtime.sendMessage 发送消息给 background,background 需要异步处理完消息以后再发送处理结果给content 页面。 解决思路和方法: google 找到的解决方法&#x…

快速掌握GPTEngineer:用AI创建网页应用的实用教程

今天来聊聊一个非常有趣的工具——GPTEngineer。这是一个基于AI的网页开发平台,特别适合那些不熟悉编程但又想快速创建网页应用的人。如果你想用简单的文本描述来生成一个网站或者应用,GPTEngineer可能就是你需要的。我们一步步看看如何使用它。 1. 了解…

DSP48E2使用以及FIR滤波器定点设计实现与优化

DSP48E2使用以及FIR滤波器定点设计实现与优化 DSP48E2是数字信号处理中最常用的FPGA硬核资源,对于高效率,低消耗实现数字信号处理算法有着极为重要的意义。因此熟练掌握DSP48E2的使用是算法工程化的必备技能。FIR滤波器是因果系统,只有零点没…

Spring Boot 项目中,配合 Nacos 、Gateway使用 MinIO

在现代微服务架构中,将不同服务整合并高效地管理配置和流量是至关重要的。Spring Cloud Gateway、Nacos 和 MinIO 是三个关键组件,它们可以一起工作,提供一个灵活、动态和高效的解决方案。下面的方案展示了如何将这三个组件结合起来&#xff…

Nginx: https解决安全问题

https原理 1 )http协议存在的问题 数据使用明文传输,可能被黑客窃取 (需要信息加密)报文的完整性无法验证,可能被黑客篡改 (需要完整性校验)无法验证通信双方的身份,可能被黑客伪装 (需要身份认证) 2 ) https 原理 所谓 https,…

【前端面试基础】计算机网络、浏览器、操作系统

计算机网络 一、网络协议与模型 什么是协议? 协议是指计算机系统中完成特定任务所必需的规则和约定,特别是数据传输和交换的规则和约定。OSI和TCP/IP是什么? OSI(开放式系统互连参考模型)是一种网络架构模型&#xf…

黑神话悟空-妖怪平生录PDF

通关黑神话悟空,并且解锁了两个结局。感触不是那么深,我个人的感觉是剧情上面不如国产单机古剑奇谭三。 与其说黑神话悟空是西游记的延续,不如说是游科CEO对斗战神的执念。 不过,这里面的游记是真的很惊艳,203个妖怪…

Openai api via azure error: NotFoundError: 404 Resource not found

题意:"OpenAI API通过Azure出错:NotFoundError: 404 找不到资源" 问题背景: thanks to the university account my team and I were able to get openai credits through microsoft azure. The problem is that now, trying to us…

Zookeeper官网Java示例代码解读(一)

2024-08-22 1. 基本信息 官网地址: https://zookeeper.apache.org/doc/r3.8.4/javaExample.html 示例设计思路 Conventionally, ZooKeeper applications are broken into two units, one which maintains the connection, and the other which monitors data. I…

c-数据结构(顺序表、链表)

概念 对于n各元素的线性表,严格数学定义:其中任意一个数据元素a[i],有且仅有一个前驱a[i-1],有且仅有一个后继a[i1];首元素a[0]无前驱,尾元素a[n-1]无后继。 顺序表 属于线性表,数据之间的空…

在 Java 中使用泛型时遇到的问题,,无法正确将响应数据映射为需要的数据

public <T> List<T> getOrderList(String shopId, Class<T> tClass) {// --- 省略一些中间过程----ParameterizedTypeReference<KeRuYunCommonResultVO<KPOSPageResultVO<T>>> responseType new ParameterizedTypeReference<KeRuYunCom…

Python日志,按日期分割日志文件(每天一个新的日志文件)

为了创建一个Python类来管理日志&#xff0c;并使其支持按日期分割日志文件&#xff08;每天一个新的日志文件&#xff09;&#xff0c;你可以使用Python标准库中的logging模块和logging.handlers.TimedRotatingFileHandler。下面是一个简单的示例&#xff0c;展示了如何实现这…

linux怎么安装Android Studio

方法一 下载安装包到linux系统解压 tar.gz文件的解压方式为 tar -zxvf 文件名&#xff08;tar -zxvf filename.tar.gz 命令的作用是&#xff0c;使用gzip解压缩&#xff08;-z&#xff09;&#xff0c;解包&#xff08;-x&#xff09;名为filename.tar.gz的归档文件&#xf…

使用PostgreSQL的CLI客户端查询数据不显示问题

问题 今天在使用PostgreSQL的命令行工具&#xff08;CLI&#xff09;查询数据时&#xff0c;数据不显示问题。 解决 使用CLI客户端登录数据库后&#xff0c;需要设置打印&#xff0c;设置边框为2: peterlocalhost testdb> \pset border 2或者&#xff0c;使用元组方式显…

clerk中authenticateWithRedirect方法讲解

clerk.authenticateWithRedirect 主要用于处理 Clerk 的 OAuth 登录过程&#xff0c;其工作流程大致如下&#xff1a; 1、用户发起登录请求&#xff1a; 用户点击登录按钮&#xff0c;触发 OAuth 登录流程。 2、重定向到 OAuth 提供商&#xff1a; clerk.authenticateWithRed…

回溯法-0/1背包问题

什么是回溯法&#xff1f; 回溯法是一种搜索算法&#xff0c;它通过深度优先搜索的方式来解决决策问题。它从根节点开始&#xff0c;逐步扩展节点&#xff0c;直到找到所有可能的解。 回溯法的基本思想 开始节点&#xff1a;从根节点出发&#xff0c;这个节点是解空间的起点…

word文档转html(只支持段落和表格)

maven依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.3</version> </dependency> import org.apache.poi.xwpf.usermodel.*;import java.io.*;public class Wor…

基于Java+SpringMvc+Vue求职招聘系统详细设计实现

基于JavaSpringMvcVue求职招聘系统详细设计实现 &#x1f345; 作者主页 网顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 &…