MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)

news2024/11/25 11:56:41

目录

介绍

特点

基本语法

创建

调用

查看

删除 

示例 


介绍

存储过程是事先经过编译存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。

可以假设,P1就是select,alter等SQL语句的集合。

特点

  • 封装,复用

可以把某一业务SQL封装在存储过程中,需要用到的时候直接调用即可。

  • 可以接收参数,也可以返回数据

在存储过程中,可以传递参数,也可以接收返回值。

  • 减少网络交互,效率提升

如果涉及到多条SQL,每执行一次都是一次网络传输。 而如果封装在存储过程中,我们只需要网络交互一次可能就可以了。

基本语法

创建

CREATE PROCEDURE 存储过程名称 ([ 参数列表 ])
BEGIN
-- SQL语句
END ;

调用

CALL 名称 ([ 参数 ]);

查看

SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'xxx'; 
-- 查询指定数据库的存储过程及状态信息
-- select * from information_schema.routines where routine_schema = 'xxx';

SHOW CREATE PROCEDURE 存储过程名称 ; -- 查询某个存储过程的定义
-- show create procedure 存储过程名称;

删除 

DROP PROCEDURE [ IF EXISTS ] 存储过程名称 ;

示例 

-- 创建
create procedure p1()
begin
select count(*) from student;
end;


-- 调用
call p1();


-- 查看
select * from information_schema.ROUTINES 
where ROUTINE_SCHEMA = 'xxx';

show create procedure p1;


-- 删除
drop procedure if exists p1;

要注意一点:

如果在命令行中执行创建存储过程的指令,会因为SQL语句中的分号而让指令提前提交;所以,在命令行中,执行创建存储过程的SQL时,需要通过关键字 delimiter 指定SQL语句的
结束符。

delimiter ¥¥   // 将语句的结束标志设置成其他任意字符


delimiter ;     // 设置回原来的分号‘;’

END


学习自:黑马程序员——MySQL数据库课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1161405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快速入手maven

文章目录 Maven介绍Maven安装和配置基于IDEA的Maven工程创建梳理Maven工程GAVP属性Idea构建Maven JavaSE工程Idea构建Maven JavaEE工程1. 手动创建2. 插件方式创建 Maven工程项目结构说明Maven核心功能依赖和构建管理依赖传递和冲突依赖导入失败场景和解决方案扩展构建管理和插…

只需 4 个简单步骤即可为您的 ML 系统充电

使用 DALL 生成的图像。D-R型 一、说明 这篇文章将带您了解我通过 4 个简单步骤优化任何 ML 系统以进行闪电般快速的训练和推理的过程。 想象一下:你终于被安排在一个很酷的新ML项目中,你正在训练你的经纪人计算一张照片中有多少只热狗,它的成…

任正非说:人家问我:“你怎么一天到晚游手好闲?”我说我是管长江的堤坝的。

你好!这是华研荟【任正非说】系列的第26篇文章,让我们聆听任正非先生的真知灼见,学习华为的管理思想和管理理念。 一、我们不是靠人来领导这个公司,我们用规则的确定性来对付结果的不确定。人家问我:“你怎么一天到晚游…

NEWSTART2022 web week1

01HTTP flag{f1cb35f5-05de-4559-8f99-28e1f11df403} 02Head?Header! 或者xxf头:localhost 03我真的会谢 这个题目比之前有意思多了 可知是vim缓存,利用vim缓存知识: 使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除。vim异常…

亚马逊云科技:让生成式AI真正走向普惠

伴随着ChatGPT的横空出世,生成式AI(Artificial Intelligence Generated Content,也称AIGC)大潮也以锐不可当之势席卷全球。从各行各业的商业领袖,到千千万万的程序员和开发者,都在思考如何借助生成式AI技术…

Leetcode刷题详解——两两交换链表中的节点

1. 题目链接:24. 两两交换链表中的节点 2. 题目描述: 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 …

vue自定义组件:中线分割拖动盘

在GitHub上可以找到类似的组件,比如4年前发布的vue2版本的 Vue Split Pane, 但是我还是自己写了一个类似的: 组件效果: 特点: 不是照抄别人的。同时支持vue2、vue3(组件内部使用选项式API风格&#xff09…

【JavaScript保姆级教程】switch分支与while循环

文章目录 前言一、Switch分支1.1 switch基本结构1.2 break语句1.3 default标签1.4 下面是几个Switch分支的示例代码:示例1: 根据星期数输出对应的中文星期名称示例2: 根据用户输入的颜色选择执行不同的操作 二、While循环:2.1 while循环基本格式2.2 cont…

学习性能测试线路图

性能测试学习线路图(建议) 1、概览 纵向划分3颗子树:vugen,controller,monitor。优先学习vugen脚本开发以及调试。 横向划分为2层:基础知识以及高级应用。 2、基础知识 2.1、Loadrunner工具使用 2.1.1、建议学习路径 Vugen开发脚本(函数使用&#x…

2.2 - 网络协议 - IP协议,IP地址划分,报文格式,数据分片,抓包实战

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 IP协议 1、IP地址划分2、IP协议报文格式3、IP协议数…

Git(七).git 文件夹瘦身,GitLab 永久删除文件

目录 一、问题背景二、问题复现2.1 新建项目2.2 上传大文件2.3 上传结果 三、解决方案3.1 GitLab备份与还原1)备份2)还原 3.2 删除方式一:git filter-repo 命令【推荐】1)安装2)删除本地仓库文件3)重新关联…

图的广度优先遍历的单源路径、无权图的最短路径问题、BFS性质附Java代码

目录 使用BFS求解单源路径问题 BFS重要性质 无权图的最短路径问题 使用BFS求解单源路径问题 import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.Queue;public class SingleSourcePath {private Graph G;private i…

Greenplum管理和监控工具-gpcc-web介绍

Greenplum管理和监控工具-gpcc-web介绍 1. gpcc-web简介 ​ gpcc(Greenplum Command Center)的Web用户界面是一个强大的工具,它可以帮助用户管理Greenplum数据库集群,提高效率,优化性能,并确保数据的安全…

安防监控项目---Cortex-A9和zigbee传感器数据上传至网页

文章目录 前言一、A9平台数据的采集与上传二、共享内存上传数据到CGI三、设备代码总结 前言 书接上期,我们大概来梳理一下,已经完成的需求有哪些了,从html下发指令控制Cortex-A9平台硬件,其中主要实现的有控制LED,蜂鸣器&#xf…

AI大模型时代网络安全攻防对抗升级,瑞数信息变革“下一代应用与数据安全”

AI与大模型技术加速普及,安全领域也在以创新视角聚焦下一代应用安全WAAP变革,拓展新一代数据安全领域。近日瑞数信息重磅发布了瑞数全新API扫描器、API安全审计、数据安全检测与应急响应系统及分布式数据库备份系统四大新品。此次发布在延续瑞数信息Bot自…

【中国知名企业高管团队】系列55:奇瑞汽车

昨天华研荟介绍了吉利集团的现状,创始人李书福先生的故事,以及吉利集团的现任高管团队。我们了解到现在的吉利集团品牌多元化,吉利汽车只是其中的一个品牌和产业集团,整个吉利集团有十余个汽车品牌,还有多个网约车品牌…

力扣第416题 *** 分割等和子集 c++ 新题 动态规划 中的 01背包问题

题目 416. 分割等和子集 中等 相关标签 数组 动态规划 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums [1,5,11,5] 输出:true 解释…

qt 系列(二)---qt designer通过设置控件样式表进行背景颜色设置

1. 前言 一般Layouts不可以进行改变样式表,当我们想修改背景样式表,同时又不改变其他控件的颜色时,可以选择List View 控件改变背景颜色。 2. 设置背景 (1)配置 .qrc 文件 新建mypicture.qrc文件,记事本打…

【刷题宝典NO.0】

目录 素数的判定 打印素数 打印水仙花数 百钱买百坤 输出闰年 逆序打印一个整数的每一位 输出乘法口诀表 数字9出现的次数 二进制1的个数 输出一个整数的偶数位和奇数位的二进制序列 求两个整数的最大公约数 求两个整数的最小公倍数 小乐乐与欧几里得 小…

C#,数值计算——积分方程与逆理论Quad_matrix的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Quad_matrix : UniVarRealMultiValueFun { private int n { get; set; } private double x { get; set; } public Quad_matrix(double[,] a) { this.n a…