iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql存储过程 in out inout
  • 636
分享到

mysql存储过程 in out inout

2024-04-02 19:04:59 636人浏览 八月长安
摘要

存储过程的好处 存储过程是一组预编译好的sql语句,用来执行某个特定的功能。这样可以省去sql解析、编译、优化的过程,提高了执行效率,同时,在调用的时候只传一个存储过程的名称,而不用传一大堆sql语句,减少

存储过程的好处

存储过程是一组预编译好的sql语句,用来执行某个特定的功能。这样可以省去sql解析、编译、优化的过程,提高了执行效率,同时,在调用的时候只传一个存储过程的名称,而不用传一大堆sql语句,减少了网络传输。也间接提高了执行效率。

存储过程与自定义函数的区别

  1. 存储过程是一组sql语句,为了实现某个独立的功能,一般独立执行。而自定义函数更多的作为其它sql语句的组成部分出现。
  2. 自定义函数只能有一个返回值,而存储过程可以有多个返回值。
  3. 存储过程功能复杂,函数针对性更强

存储过程定义

存储过程是sql语句和控制语句的预编译集合,以一个名称存储并作为一个单元处理。

创建语法

create 
[definer = {user|current_user}]
procedure proc_name ([参数[,....]])
some body code....
参数:
[in | out | inout] 参数名 类型

in  传入的参数
out 返回的参数
inout 传入 改变 并且返回的参数

调用语法

call proc_name(参数);
如果没有参数,括号可以省略;

示例

创建没有参数的存储过程

create procedure ver()
select version();

调用

call ver(); 或 call ver;

当然这里把一个函数放进一个存储过程没有什么意义。只是单纯为了举例。

创建一个in参数的存储过程

我们经常查询id为某值的用户,所以我们把它写成一个存储过程。

delimiter //
create procedure findUserById(in userId int unsigned)
begin
select * from user where id = userId;
end //
delimiter ;

注意:参数名不要和数据表中的字段名相同,否则会出现意想不到的后果。

调用
call findUserById(1);

创建一个in 一个out参数的存储过程

删除一个用户并且返回剩余用户数量

delimiter //
create procedure delUserByIdAndReturnNums(in userId int unsigned,out nums int unsigned )
begin
delete from user where id=userId;
select count(id)  from user into nums;
end //
delimiter ;

调用:
call delUserByIdAndReturnNums(1,@nums);调用过后我们就可以查看@nums的值了。
br/>调用过后我们就可以查看@nums的值了。

创建一个in多个out参数的存储过程

删除一个用户并返回剩余用户总数 和 被删除用户的姓名

delimiter //
create procedure delUser(in userId int ,out nums int,out username varchar(20))
begin
select name from user where id = userId into username;
delete from user where id = userId;
select count(id) from user into nums;
end //
delimiter ;

调用
call delUser(3,@nums,@username);
调用过后可以查看两个变量的值。
select @nums;
select @username;

创建带有inout参数的存储过程

定义一个存储过程,传入一个整数得到其平方值。

delimiter // 
create procedure square(inout num int)
begin 
set num=num*num;
end //
delimiter ;

调用:
由于其参数是inout类型,所以我们需要传入一个赋值过的变量,以便在存储过程内部对其修改后返回。

set @num=3;
call square(@num);
select @num;

其结果如下:
Mysql> set @num=3;
Query OK, 0 rows affected (0.00 sec)

mysql> call square(@num);
Query OK, 0 rows affected (0.02 sec)

mysql> select @num;
+------+
| @num |
+------+
| 9 |
+------+
1 row in set (0.00 sec)

您可能感兴趣的文档:

--结束END--

本文标题: mysql存储过程 in out inout

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

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

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

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

下载Word文档
猜你喜欢
  • MySQL存储过程in、out、inout参数的案例
    小编给大家分享一下MySQL存储过程in、out、inout参数的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文章目录存储...
    99+
    2024-04-02
  • MySQL存储过程详解 mysql 存储过程
    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Proce...
    99+
    2024-04-02
  • inout在mysql存储中的使用方法
    这篇文章主要介绍inout在mysql存储中的使用方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql数据库的存储里,我们已经学过了输入和输出的参数。还有一种参数结合了前面所说两种参数的优势,既能输入也可以输...
    99+
    2023-06-14
  • 分析Oracle存储过程中的out参数
    本篇内容主要讲解“分析Oracle存储过程中的out参数”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“分析Oracle存储过程中的out参数”吧!一、什么是存储...
    99+
    2024-04-02
  • MySQL之存储过程
    我的小站:我的博客 1.1 存储过程简介 存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数的值 MySQL 5.0 版本开始支持存储过程。 存储过程(Stored Procedur...
    99+
    2023-09-02
    数据库 mysql sql
  • mysql存储过程golang
    随着互联网应用的不断发展,数据存储和处理成为了每一个应用的核心部分。而MySQL是一款开源的关系型数据库管理系统,它被广泛应用于许多企业和Web应用。在MySQL中,存储过程是一种可编程的SQL语句集合,它可以被多次调用和重复使用。本文主要...
    99+
    2023-05-15
  • 如何创建带有 IN 参数的 MySQL 存储过程?
    为了让它理解,我们使用名为“student_info”的表,它具有以下值 -mysql> Select * from student_info; +-----+---------+------------+---------...
    99+
    2023-10-22
  • mysql存储过程翻页
    mysql5.6.20版本 开发提了一个需要分页的存储过程需求,刚来时理解是,只要带入一个变量,根据变量计算下值,就直接分页实现了...可结果,创建存储过程的时候报错了...查了很多资料,后来才得知,li...
    99+
    2024-04-02
  • mysql有存储过程吗
    这篇文章主要介绍“mysql有存储过程吗”,在日常操作中,相信很多人在mysql有存储过程吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql有存储过程吗”的疑惑有所帮...
    99+
    2024-04-02
  • mysql 存储过程详解
    前言 在项目开发中,经常会遇到这样一种场景,当修改A表的一条数据时,需要关联修改B表、C表甚至其他更多表的数据,为什么会这样呢? 在真实的业务场景中,往往一张表的数据关联的业务是多样的,举例来说,用户在页面上完成一个订单,对服务端来说,与这...
    99+
    2023-08-17
    mysql 存储过程详解 mysql 存储过程使用 mysql 存储过程
  • ORACLE存储过程in关键字使用
    一、问题描述:写了一个存储过程(只取了半截,能说明命题即可)CREATE OR REPLACE  PROCEDURE "MONTH_RPT_CENT...
    99+
    2024-04-02
  • mysql存储过程保存在哪
    mysql 存储过程保存在 mysql.proc 表中,该表存储了存储过程的所有信息,包括名称、定义、创建者和修改时间。 MySQL 存储过程保存在哪里? MySQL 中的存储过程保存...
    99+
    2024-04-22
    mysql
  • 浅谈MYSQL存储过程和存储函数
    目录1. 什么是存储过程和存储函数?2. 创建存储过程3. 创建存储函数4. 存储过程和存储函数的使用5. 带有if语句的存储过程6. 带有循环语句的存储过程7. 带有事务的存储过程8. 带有游标的存储函数9. 存储过程...
    99+
    2023-05-05
    MYSQL存储过程 MYSQL 存储函数
  • mysql存储过程的简介
    小编给大家分享一下mysql存储过程的简介,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql存储过程:首先操作数据库语言S...
    99+
    2024-04-02
  • mysql存储过程是什么
    这篇文章给大家分享的是有关mysql存储过程是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、定义存储过程(Stored Procedure)是在大型数据库系统中,一组为了...
    99+
    2024-04-02
  • Python 执行 mysql 存储过程
    mysql 创建简单的临时表 tmp create database test; use test; DROP TABLE IF EXISTS `tmp`; CREATE TABLE `tmp` ( `id` int(11...
    99+
    2023-01-30
    存储过程 Python mysql
  • mysql数据的存储过程
    MySQL存储过程是一组预定义的SQL语句集合,可以在数据库中进行预先编译和存储,并在需要时进行调用和执行。存储过程通常用于处理复杂...
    99+
    2023-08-22
    MySQL
  • 关于MySQL的存储过程与存储函数
    目录初识存储过程存储过程语法存储过程调用存储函数的使用语法函数的调用对比存储函数和存储过程初识存储过程 理解:含义: 存储过程(Stored Procedure)是在大型数据库系统中...
    99+
    2023-05-19
    MySQL存储过程 MySQL存储函数
  • 细谈Mysql的存储过程和存储函数
    1 存储过程 1.1 什么是存储过程 存储过程是一组为了完成某项特定功能的sql语句集,其实质上就是一段存储在数据库中的代码,他可以由声明式的sql语句(如CREATE,UPDATE,SELECT等语句...
    99+
    2024-04-02
  • mysql存储过程与存储函数实例分析
    这篇文章主要介绍了mysql存储过程与存储函数实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql存储过程与存储函数实例分析文章都会有所收获,下面我们一起来看看吧。...
    99+
    2022-11-30
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作