MySQL存储过程的使用
存储过程和函数是数据库中的一段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存储过程的使用相关推荐
- 常用MySQL函数存储过程_解析MySQL存储过程、常用函数代码
mysql存储过程的概念: 存储在数据库当中可以执行特定工作(查询和更新)的一组SQL代码的程序段. mysql函数的概念: 函数是完成特定功能的SQL语句,函数分为内置函数和自定义函数(user-d ...
- MySQL 存储过程传参之in, out, inout 参数用法
存储过程传参:存储过程的括号里,可以声明参数. 语法是 create procedure p([in/out/inout] 参数名 参数类型 ..) in :给参数传入值,定义的参数就得到了值 ou ...
- mysql中leave和_MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法
本文主要向大家介绍了MySQL数据库之Mysql存储过程使用LEAVE实现MSSQL存储过程中return语法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. DELIMITER ...
- MySQL存储过程详解
1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储 ...
- mysql存储过程语法及实例
存储过程如同一门程序设计语言,同样包含了数据类型.流程控制.输入和输出和它自己的函数库. --------------------基本语法-------------------- 一.创建存储过程 c ...
- 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 ...
- mysql 存储过程 格式化_转 mysql 存储过程初探
https://www.cnblogs.com/qmfsun/p/4838032.html MySQL命令执行sql文件的两种方法 https://www.cnblogs.com/mark-chan/ ...
- hibernate mysql 存储过程_hibernate调用mysql存储过程
hibernate调用mysql存储过程 在最近的项目中,碰到一小段数据库数据分析的程序,需要结合多张表联合查询或涉及到子查询,项目主要采用的java ee开发,使用了hibernate框架,由于这些 ...
- mybatis mysql 存储过程_Mysql 存储过程+Mybatis调用实现插入操作例子 | 学步园
一. 简介:网上关于存储过程的使用有很多的例子,但大多实现的功能比较简单,由于本人对SQL语句还不是很熟悉,更别说存储过程了,所以在实现该例子的时候遇到了很多问题,现在拿给大家来分享. 二. 在本例子 ...
- MySQL 存储过程初研究
最近在做一个移动设备多类型登录的统一用户系统.其中记录用户资料的部分,因为涉及到更换设备的相同用户.同一个用户多类型同时具备的情况,所以想分辨出尽量少的用户去合理记录,就需要多次查询.于是决定研究一下 ...
最新文章
- 参数 相等_ANSYS DesignXplorer 参数化优化在水冷板流道设计中的应用
- Android --- 屏幕方向screenOrientation属性详解
- java进阶之路学习笔记
- 使用 YOLOv5 训练自动驾驶目标检测网络
- SQL Server-SQL事务处理(Stransaction)
- 使用Javascript在Leetcode中的ACM模式下无法获取输入数据的问题
- MySQL GUI图形化界面常用软件推荐
- linux中正则表达式的用法自解
- 【Y9000x】单硬盘UEFI+GPT基于Win10安装Ubuntu18.04
- 681_python安装win32com模块
- 利用python自动发送邮件(无敌详细讲解版)
- MIUI 13 去除输入法广告
- 无法启动此程序,因为计算机中丢失MSVCR71.dll.丢失的解决方法分享
- php 786.00,美國佛羅裡達州區號786
- 超声波的四个特性_超声波有什么特点
- (5)多体量子态与统计力学基础
- Java使用@Value获取不到值
- c++编写函数实现字符串中指定字符位置插入字符串
- C#调用bartender进行动态打印以及批量打印的完整教程
- 请问nj文件如何用html的解析,nj.renderH
热门文章
- 第十章:在Spark集群上掌握比较重要的图操作之Computing Degree
- 5 重启应用_iphone8黑屏怎么办 iphone8黑屏重启方法【详细介绍】
- php+引用swf,php – 嵌入flv和swf位于webroot之外
- python 连接oracle学习
- Javascript 中 JSON 与对象 的相互转换
- visual assist x_可能是最美溜背,大众探岳X能否重新定义轿跑SUV?
- 加密软件漏洞评测系统_苹果向用户推送macOS Big Sur 11.0.1正式版系统_华强北软件网_软件行情_软件新闻_软件评测_手机应用文章...
- java实现并发连接池_java并发实战:连接池实现
- ios微内核和鸿蒙微内核,华为发布基于微内核、面向全场景的分布式操作系统:鸿蒙OS...
- ubuntu meld比较文件差异