存储过程和函数是数据库中的一段SQL语句的集合。

studentinfo表数据:

存储过程的创建与调用

语法:

# 创建存储过程
DELIMITER $             # 修改分隔符
CREATE PROCEDURE pro1() # 创建存储过程
BEGIN                   # sql语句开始SELECT gender,COUNT(gender) ct FROM studentinfo GROUP BY gender ORDER BY ct DESC;
END$                    # sql语句结束
DELIMITER ;             # 修改分隔符
# 调用存储过程
CALL pro1();

存储过程的查看和删除

语法:

存储过程变量的使用

语法:

# 存储过程变量
DELIMITER $                                 # 修改分隔符
CREATE PROCEDURE pro2()                     # 创建存储过程
BEGIN                                       # sql语句开始DECLARE var1 VARCHAR(50) DEFAULT ''; # 定义变量var1 varchar类型 默认为''DECLARE var2 INT DEFAULT 0;             # 定义变量var2 int类型 默认为0SET var1 = 'hello word!';               # 变量赋值SELECT COUNT(*) INTO var2 FROM studentinfo WHERE gender='男';   # 变量赋值SELECT var1,var2;                     # 查询变量
END$                                        # sql语句结束
DELIMITER ;                                 # 修改分隔符
# 调用存储过程
CALL pro2();

存储过程的传参

语法:

# 存储过程传参
DELIMITER $                                             # 修改分隔符
CREATE PROCEDURE pro4(IN orderColumn VARCHAR(50),OUT columnNames VARCHAR(50))   # 创建存储过程
BEGIN                                                   # sql语句开始DECLARE sql1 VARCHAR(500) DEFAULT '';SET columnNames='id,学生姓名,年龄,性别,班级id';IF (orderColumn='' OR orderColumn IS NULL) THEN      # 如果为空SELECT * FROM studentinfo ORDER BY id;ELSE                                                # 否则SET sql1=CONCAT("SELECT * FROM studentinfo ORDER BY ",orderColumn,";");SET @SQL_sg=sql1;                             # 转为全局变量PREPARE stmt_sg FROM @SQL_sg;                  # 准备sql语句EXECUTE stmt_sg ;                              # 执行sql语句DEALLOCATE PREPARE stmt_sg;                        # 释放sql语句END IF;
END$        # sql语句结束
DELIMITER ; # 修改分隔符
# 调用存储过程
CALL pro4('',@columnNames);

SELECT @columnNames;

总结:

存储过程和函数的好处

1、提高代码的复用性

2、减少数据在数据库和引用服务器之间的传输,提高效率。

3、减少代码层面的业务处理。

4、以编程的思维去编写sql代码

打卡第13天,欢迎对数据库感兴趣的朋友一起讨论、交流,请多指教!

MySQL存储过程的使用相关推荐

  1. 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码

    mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...

  2. MySQL 存储过程传参之in, out, inout 参数用法

    存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名  参数类型 ..) in :给参数传入值,定义的参数就得到了值 ou ...

  3. mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法

    本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. DELIMITER ...

  4. MySQL存储过程详解

    1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...

  5. mysql存储过程语法及实例

    存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...

  6. mycat mysql 存储过程_MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程...

    1 环境说明 VM 模拟3台MYSQL 5.6 服务器 VM1 192.168.31.187:3307 VM2 192.168.31.212:3307 VM3 192.168.31.150:  330 ...

  7. mysql 存储过程 格式化_转 mysql 存储过程初探

    https://www.cnblogs.com/qmfsun/p/4838032.html MySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/ ...

  8. hibernate mysql 存储过程_hibernate调用mysql存储过程

    hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...

  9. mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园

    一. 简介:网上关于存储过程的使用有很多的例子,但大多实现的功能比较简单,由于本人对SQL语句还不是很熟悉,更别说存储过程了,所以在实现该例子的时候遇到了很多问题,现在拿给大家来分享. 二. 在本例子 ...

  10. MySQL 存储过程初研究

    最近在做一个移动设备多类型登录的统一用户系统.其中记录用户资料的部分,因为涉及到更换设备的相同用户.同一个用户多类型同时具备的情况,所以想分辨出尽量少的用户去合理记录,就需要多次查询.于是决定研究一下 ...

最新文章

  1. 参数 相等_ANSYS DesignXplorer 参数化优化在水冷板流道设计中的应用
  2. Android --- 屏幕方向screenOrientation属性详解
  3. java进阶之路学习笔记
  4. 使用 YOLOv5 训练自动驾驶目标检测网络
  5. SQL Server-SQL事务处理(Stransaction)
  6. 使用Javascript在Leetcode中的ACM模式下无法获取输入数据的问题
  7. MySQL GUI图形化界面常用软件推荐
  8. linux中正则表达式的用法自解
  9. 【Y9000x】单硬盘UEFI+GPT基于Win10安装Ubuntu18.04
  10. 681_python安装win32com模块
  11. 利用python自动发送邮件(无敌详细讲解版)
  12. MIUI 13 去除输入法广告
  13. 无法启动此程序,因为计算机中丢失MSVCR71.dll.丢失的解决方法分享
  14. php 786.00,美國佛羅裡達州區號786
  15. 超声波的四个特性_超声波有什么特点
  16. (5)多体量子态与统计力学基础
  17. Java使用@Value获取不到值
  18. c++编写函数实现字符串中指定字符位置插入字符串
  19. C#调用bartender进行动态打印以及批量打印的完整教程
  20. 请问nj文件如何用html的解析,nj.renderH

热门文章

  1. 第十章:在Spark集群上掌握比较重要的图操作之Computing Degree
  2. 5 重启应用_iphone8黑屏怎么办 iphone8黑屏重启方法【详细介绍】
  3. php+引用swf,php – 嵌入flv和swf位于webroot之外
  4. python 连接oracle学习
  5. Javascript 中 JSON 与对象 的相互转换
  6. visual assist x_可能是最美溜背,大众探岳X能否重新定义轿跑SUV?
  7. 加密软件漏洞评测系统_苹果向用户推送macOS Big Sur 11.0.1正式版系统_华强北软件网_软件行情_软件新闻_软件评测_手机应用文章...
  8. java实现并发连接池_java并发实战:连接池实现
  9. ios微内核和鸿蒙微内核,华为发布基于微内核、面向全场景的分布式操作系统:鸿蒙OS...
  10. ubuntu meld比较文件差异