当前位置:网站首页>存储过程的介绍与基本使用
存储过程的介绍与基本使用
2022-07-07 11:19:00 【汤键.TJ】
目录
介绍
- 存储过程和函数是事先经过编译并存储在数据库中的一段SQL语句的集合
好处:
- 提高代码的复用性
- 减少数据在数据库和应用服务器之间的传输,提高效率
- (对于数据库来说,后期要定义在一台或多台服务器上,后面再传输的话肯定会影响效率)
- 减少代码层面的业务处理
存储过程和函数的区别(几乎没有区别)
- 存储函数必须有返回值
- 存储过程可以没有返回值
创建和调用存储过程
创建存储过程
- -- 修改结束分隔符
- delimiter $
- -- 创建存储过程
- create procedure 存储过程名称(参数列表)
- begin
- SQL语句列表
- end$
- -- 修改结束分隔符
- delimiter ;
调用存储过程
- call 存储过程名称(实际参数)
实例演示
数据准备
-- 创建学生表 CREATE TABLE student( id INT PRIMARY KEY auto_increment, -- 学生id name VARCHAR(20), -- 学生姓名 age INT, -- 学生年龄 gender VARCHAR(5), -- 学生性别 score INT -- 学生成绩 ); -- 添加数据 INSERT INTO student VALUES (NULL,'张三',23,'男',95),(NULL,'李四',24,'男',98),(NULL,'王五',25,'女',100),(NULL,'赵六',26,'女',90);
创建和调用存储过程
-- 创建stu_group()存储过程,封装 分组查询总成绩,并按照总成绩升序排序的功能 delimiter $ CREATE PROCEDURE stu_group() BEGIN SELECT gender,SUM(score) getsum FROM student GROUP BY gender ORDER BY getsum ASC; END$ delimiter ;
-- 调用stu_group()存储过程 CALL stu_group;
存储过程的查看和删除
查看数据库中所有的存储过程
- select * from mysql.proc where db='数据库名称'
删除存储过程
- drop procedure [if exists] 存储过程名称
实例操作
-- 查看dp1数据库中所有的存储过程 SELECT * FROM mysql.proc WHERE db='dp1';
-- 删除存储过程 DROP PROCEDURE IF EXISTS stu_group;
边栏推荐
- What if the xshell evaluation period has expired
- Blog recommendation | Apache pulsar cross regional replication scheme selection practice
- test
- . Net ultimate productivity of efcore sub table sub database fully automated migration codefirst
- Smart cloud health listed: with a market value of HK $15billion, SIG Jingwei and Jingxin fund are shareholders
- How to continue after handling chain interruption / sub chain error removed from scheduling
- ISPRS2021/遥感影像云检测:一种地理信息驱动的方法和一种新的大规模遥感云/雪检测数据集
- 怎样重置火狐浏览器
- JS判断一个对象是否为空
- Conversion from non partitioned table to partitioned table and precautions
猜你喜欢
随机推荐
基于鲲鹏原生安全,打造安全可信的计算平台
centso7 openssl 报错Verify return code: 20 (unable to get local issuer certificate)
Query whether a field has an index with MySQL
共创软硬件协同生态:Graphcore IPU与百度飞桨的“联合提交”亮相MLPerf
Blog recommendation | Apache pulsar cross regional replication scheme selection practice
@What is the difference between resource and @autowired?
怎样重置火狐浏览器
飞桨EasyDL实操范例:工业零件划痕自动识别
滑轨步进电机调试(全国海洋航行器大赛)(STM32主控)
Go language learning notes - structure
Isprs2021/ remote sensing image cloud detection: a geographic information driven method and a new large-scale remote sensing cloud / snow detection data set
博文推荐|Apache Pulsar 跨地域复制方案选型实践
服务器到服务器 (S2S) 事件 (Adjust)
MongoDB 遇见 spark(进行整合)
ISPRS2021/遥感影像云检测:一种地理信息驱动的方法和一种新的大规模遥感云/雪检测数据集
飞桨EasyDL实操范例:工业零件划痕自动识别
JS function 返回多个值
ESP32构解工程添加组件
Analysis of DHCP dynamic host setting protocol
线程池拒绝策略最佳实践