【简单认识MySQL存储过程】

文章目录

  • 一、简介
    • 1、概述
    • 2、存储过程中的控制结构及应用场景
    • 3、存储过程的优点
    • 4、语法
  • 二、示例
    • 1、创建存储过程
    • 2、查看存储过程
    • 3、 修改存储过程
    • 4、删除存储过程


一、简介

1、概述

存储过程在使用过程中是将常用或者复杂的工作预先使用sql语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。存储过程在执行上比传统sql速度更快、执行效率更高。

2、存储过程中的控制结构及应用场景

存储过程在数据库中 创建并保存,它不仅仅是SQ语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。存储过程的应用范围很广例如封装特定的功能、 在不同的应用程序或平台上执行相同的函数等等。

3、存储过程的优点

执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率;
SQL语句加上控制语句的集合,灵活性高;
在服务器端存储,客户端调用时,降低网络负载;
可多次重复被调用,可随时修改,不影响客户端调用;
可完成所有的数据库操作,也可控制数据库的信息访问权限。

4、语法

CREATE PROCEDURE <过程名> ([过程参数[,…] ]<过程体>
[过程参数[,…] ] 格式
<过程名>: 尽量避免与内置的函数或字段重名
<过程体>: 语句
[ IN I OUT I INOUT ]<参数名><类型>

二、示例

1、创建存储过程

#将语句的结束符从分号;临时改为两个$$(可自定义)
mysql> delimiter $$
#创建存储过程,过程名为proc,不带参数
mysql> create procedure proc()
#以关键字begin开始-> begin
#存储过程中有哪些参数-> create table xx (id int (10), name char(10),score int (10));  
#插入数据-> insert into xx values (1,'hmbb',18);
#过程体语句-> select * from xx; 
#过程体以关键字end结束-> end $$
Query OK, 0 rows affected (0.02 sec)
#讲语句的结束符号恢复为分号
delimiter ;

2、查看存储过程

mysql>  show create procedure proc\G
*************************** 1. row ***************************Procedure: procsql_mode: PIPES_AS_CONCAT,ANSI_QUOTES,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTIONCreate Procedure: CREATE DEFINER="root"@"localhost" PROCEDURE "proc"()
begin
create table xx (id int (10), name char(10),score int (10));  
insert into xx values (1,'hmbb',18); 
select * from xx; 
end
character_set_client: utf8
collation_connection: utf8_general_ciDatabase Collation: utf8_general_ci
1 row in set (0.00 sec)
#查看指定存储过程信息
mysql> SHOW PROCEDURE STATUS like '%proc%'\G
*************************** 1. row ***************************Db: className: procType: PROCEDUREDefiner: root@localhostModified: 2023-07-20 14:56:12Created: 2023-07-20 14:56:12Security_type: DEFINERComment: 
character_set_client: utf8
collation_connection: utf8_general_ciDatabase Collation: utf8_general_ci
1 row in set (0.00 sec)

3、 修改存储过程

格式

ALTER PROCEDURE <过程名>[<特征>... ]
#示例
ALTER PROCEDURE GetRole MODIFIES SQL DATA SQL SECURITY INVOKER;

4、删除存储过程

存储过程内容的修改方法是通过删除原有存储过程,之后再以相同的名称创建新的存储过程。EXISTS检验存不存在

DROP PROCEDURE IF EXISTS Proc;

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

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

相关文章

vue父组件和子组件数据传递

vue --父组件向子组件传递数据 父组件&#xff1a; <template><div class"parent"><p>父组件&#xff1a;{{ msg }}</p><Child message"Hello, I am parent!"></Child></div> </template><script>…

pytest钩子函数(一):引导钩子和调试钩子

前言 pytest这个框架提供了非常多的钩子。通过这些钩子我们可以对pytest 用例收集、用例执行、报告输出等各个阶段进行干预&#xff0c;根据需求去开发对应的插件&#xff0c;以满足自己的使用场景。 01 什么是钩子函数&#xff1f; 钩子函数在pytest称之为Hook函数,它pytes…

【Linux】udp客户端windows版以及Tcp服务器的实现

windows版客户端更适合大多数人~ 文章目录 一. udp客户端windows版二.Tcp服务器的实现总结 一、udp客户端windows版 首先我们将上一篇文章中实现的udp大型聊天室的代码进行修改&#xff0c;注意我们只修改服务端代码将代码修改的很简单就好&#xff0c;因为我们只是做一个如何…

【Flume 01】Flume简介、部署、组件

1 Flume简介 Flume是一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统 主要特性&#xff1a; 它有一个简单、灵活的基于流的数据流结构&#xff08;使用Event封装&#xff09;具有负载均衡机制和故障转移机制一个简单可扩展的数据模型(Source、Channel、Sink) Sou…

使用“OpenCV函数”和“ORB-SLAM2源码中的ExtractORB()函数”提取ORB特征点

#include "ORB/global_defination/global_defination.h" // 导入ORB的全局定义 #include "ORB/ORBFeature.hpp" // 导入ORB特征相关的头文件using namespace ORB; // 使用ORB命名空间int main(int argc, char** argv) {google::InitGoogleLogging(argv[…

Zookeeper的基本概念以及安装

Zookeeper简介 Zookeeper是一个分布式的(多台机器同时干一件事情),开源的分布式应用程序协调服务,是Google公司Chubby产品,是Hadoop和Base重要的组件,.它是一个分布式应用程序提供一致性的服务的软件,提供的功能包括:配置服务,域名服务,分布式同步,组服务等 Zookeeper目…

SpringCloud使用log4j日志框架教程

前言 上一篇文章我们介绍了《SpringCloud使用logback日志框架教程》&#xff0c;本文我们再来介绍下log4j2。 Log4j2是一款流行的Java日志框架&#xff0c;它提供了高度可配置的日志记录功能&#xff0c;支持多种不同的输出格式和目标&#xff0c;比如文件、控制台、数据库等…

多肽试剂1801415-23-5,Satoreotide,UNII-S58172SSTS,应用在多肽标记及修饰上

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ Satoreotide&#xff0c;UNII-S58172SSTS Product structure Product specifications 1.CAS No&#xff1a;1801415-23-5 2.Molecular formula&#xff1a;C58H72ClN15O14S2 3.Molecular weight&#xff1a;1302.9 4.Packa…

手机word文档怎么转换成pdf?分享两种方法

手机word文档怎么转换成pdf&#xff1f;在如今信息化的时代&#xff0c;电子文档已经成为人们日常办公不可或缺的一部分。随着科技的不断进步&#xff0c;电子文档的格式也在不断发展。PDF作为电子文档的一种重要格式&#xff0c;被广泛使用。那么&#xff0c;如何将手机上的Wo…

一)Stable Diffusion使用教程:安装

目前AI绘画最火的当属Midjorney和Stable Diffusion&#xff0c;但是由于Midjourney没有开源&#xff0c;因此我们主要分享下Stable Diffusion&#xff0c;后面有望补上Midjourney教程。 本节主要讲解Stable Diffusion&#xff08;以下简述SD&#xff09;的下载和安装。 1&…

MyBatis学习笔记——2

MyBatis学习笔记——2 一、MyBatis核心配置文件详解1.1、environment&#xff08;环境&#xff09;1.2、transactionManager&#xff08;事务管理器&#xff09;1.3、dataSource&#xff08;数据源&#xff09;1.4、properties1.5、mapper 二、在WEB中应用MyBatis&#xff08;使…

[SQL挖掘机] - GROUP BY语句

介绍: group by 是 sql 中用于对结果集进行分组的关键字。通过使用 group by&#xff0c;可以根据一个或多个列的值将结果集中的行分组&#xff0c;并对每个分组应用某种聚合函数&#xff08;如 count、sum、avg 等&#xff09;以生成汇总信息。这样可以方便地对数据进行分类、…

xml命名空间

xml命名空间 一个xml文档中可以包含多个元素和属性&#xff0c;在文档中使用多个DTD文件时&#xff0c;可能会碰到相同的元素&#xff0c;而这些名称相同的元素可能代表了完全不同的含义&#xff0c;为了防止命名冲突&#xff0c;W3C提供了一个推荐标准-XML命名空间 命名空间有…

题目:2099.找出和最大的长度为 k 的子序列

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;2099. 找到和最大的长度为 K 的子序列 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 首先新建一个 nums.length 维数据&#xff0c;每一维的长度为 2&#xff0c;然后将 nums 数组中元素放…

轮播图添加删除

轮播图页面和对话框搭建 页面简单布局 <template><div id"banner"><el-space direction"vertical" :size"20" style"width: 100%"><h1>轮播图管理</h1><div style"text-align: right"&g…

商城-学习整理-基础-分布式组件(三)

目录 一、前言二、Spring Cloud&Spring Cloud Alibaba1、Spring Cloud 与Spring Cloud Alibaba简介2、为什么使用Spring Cloud Alibaba3、版本选择4、项目中的依赖 三、Spring Cloud Alibaba-Nacos作为注册中心1、Nacos1&#xff09;、下载 nacos-server2&#xff09;、启动…

golang log标准库

不喜饶过 源码部分 type Logger struct {mu sync.Mutex // ensures atomic writes; protects the following fieldsprefix string // prefix on each line to identify the logger (but see Lmsgprefix)flag int // propertiesout io.Wri…

29-使用RocketMQ做削峰处理

1、初识RocketMQ 1.1、Apache 下载RocketMQ https://downloads.apache.org/rocketmq/ 1.2、RocketMQ官方网站 https://rocketmq.apache.org/zh/ 1.3、RocketMQ在GitHub文档 https://github.com/alibaba/spring-cloud-alibaba/wiki/RocketMQ 1.4、RocketMQ官方网站文档 …

ZGC垃圾收集器-JVM(十五)

上篇文章说了G1的特性&#xff0c;无分代&#xff0c;复制算法&#xff0c;大内存就可以用G1&#xff0c;可预测stw时间等特性。 G1垃圾收集分类-JVM&#xff08;十四&#xff09; ZGC收集器 -XX:UseZGC ZGC&#xff08;Z Garbage Collector&#xff09;是在jdk11新加入的低…

42. 接雨水

42.接雨水 这是一个简单的动态规划问题&#xff0c;虽然leetcode将它归结为困难。 但是我感觉它难度应该达不到&#xff0c;可能归结为中等比较合适0x1 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨…