存储的过程

 一、存储过程

  1.1 概述

    存储过程可以轻松而高效的去完成这个需求,有点类似shell脚本里的函数

  1.2 特点

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

  1.3 优点

  1. 执行一次后,会将生成的二进制代码驻留缓冲区(提高执行效率)
  2. 灵活性高
  3. 降低网络负载
  4. 可多次重复被调用,可随时修改,不影响客户端调用(独立性强)
  5. 可完成所有的数据库操作,也可控制数据库的信息访问权限(控制级别高)

  1.4 语法

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

    解释:

存储过程的主体都分,被称为过程体

以BEGIN开始,以END结束,若只有一条sQL语句,则可以省略BEGIN-END

以DELIMITER开始和结束

mysgl>DEL工M工TER $$      $$是用户自定义的结束符 


省略存储过程其他步骤


mysql>DELIMITER ;  分号前有空格

  1.5 查看存储过程

    语法:SHOW CREATE PROCEDURE [数据库.]存储过程名;        //查看某个存储过程的具体信息

  1.5.1 查看指定存储过程信息

  举例: 

  1.6 存储过程的参数

IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)


OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)


INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

即表示调用者向过程传入值,又表示过程向调用者传出值(只能是变量)

  1.7 修改存储过程

ALTER PROCEDURE <过程名>[<特征>... ]


ALTER PROCEDURE GetRole MODIFIES SQL DATA SQL SECURITY INVOKER;


MODIFIES sQLDATA:表明子程序包含写数据的语句


SECURITY:安全等级


invoker:当定义为INVOKER时,只要执行者有执行权限,就可以成功执行。

  1.8  删除存储过程

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

DROP PROCEDURE IF EXISTS Proc;

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

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

相关文章

快速创建zookeeper集群

先说明&#xff0c;我很穷&#xff01;&#xff01;&#xff0c;开不了多个虚拟机&#xff0c;zookeeper集群的3个节点都放在同一个虚拟机&#xff0c;所以搭建是一个伪集群&#xff0c;因为一个服务器挂机&#xff0c;所有节点都会停止。工作实际情况安装到三个服务器&#xf…

【C++】STL 标准模板库

前言 在前一章种我们介绍了C中的模板的使用&#xff0c;这是一种泛型编程&#xff0c;模板的使用能让我们减少大量的相似代码&#xff0c;减少我们的代码量与工作量&#xff0c;写出更加高效简洁的代码&#xff0c;模板如此好用&#xff0c;但还是要我们先出写一个泛型类或函数…

(一)基于IDEA的JAVA基础9

循环结构及特点 while循环 do while循环 for 循环 特点:有循环条件 循环起始值 循环自增量(每次自增的量) 循环操作 while循环 语法: 初始部分//定义变量的地方&#xff0c;声明变量 while(循环条件){ 循环操作&#xff1b; 迭代部分&#xff1b; } 流程图: 练习:打…

giteed的使用

1. 将工作区的内容添加到暂存区 你的工作区要有内容&#xff08;.git 不算&#xff09; 注意&#xff1a;空文件可以添加&#xff0c;但是空文件夹不管 如果没有形成历史版本之前&#xff0c;暂存区的同名文件会被覆盖 //打开命令行&#xff0c;切换到 .git所在的目录&…

CleanMyMac X2024专业免费的国产Mac笔记本清理软件

非常高兴有机会向大家介绍CleanMyMac X 2024这款专业的Mac清理软件。它以其强大的清理能力、系统优化效果、出色的用户体验以及高度的安全性&#xff0c;在Mac清理软件市场中独树一帜。 CleanMyMac X2024全新版下载如下: https://wm.makeding.com/iclk/?zoneid49983 一、主要…

光伏百科|分布式光伏电站如何开展运维管理工作?

随着经济的不断发展和生活水平的日益提高&#xff0c;节能环保已经成为全社会的责任和共识&#xff0c;分布式光伏电站作为清洁能源走进了千家万户。然而&#xff0c;在分布式光伏电站运行期间&#xff0c;面临监管困难、系统繁多、火灾隐患和运维不当等困难&#xff0c;该如何…

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数(二)

标定系列——预备知识-OpenCV中实现Rodrigues变换的函数&#xff08;二&#xff09; 说明记录 说明 简单介绍罗德里格斯变换以及OpenCV中的实现函数 记录

机器视觉矿山安全生产风险预警系统

一、简介 十四五规划和2035年远景目标纲要针对企业安全生产提出了多项要求。其中&#xff0c;提高安全生产水平要求完善和贯彻执行安全生产责任制&#xff0c;建立公共安全隐患排查和安全预防控制体系&#xff0c;要求将安全生产提升至预防和控制阶段。 目前&#xff0c;矿山…

案例研究|DataEase实现物业数据可视化管理与决策支持

河北隆泰物业服务有限责任公司&#xff08;以下简称为“隆泰物业”&#xff09;创建于2002年&#xff0c;总部设在河北省高碑店市&#xff0c;具有国家一级物业管理企业资质&#xff0c;通过了质量体系、环境管理体系、职业健康安全管理体系等认证。自2016年至今&#xff0c;隆…

鸿蒙HarmonyOS应用开发之NDK开发导读

NDK&#xff08;Native Development Kit&#xff09;是OpenHarmony SDK提供的Native API、相应编译脚本和编译工具链的集合&#xff0c;方便开发者使用C或C语言实现应用的关键功能。NDK只覆盖了OpenHarmony一些基础的底层能力&#xff0c;如C运行时基础库libc、图形库、窗口系统…

uniapp实现单选组件覆盖选中样式

uniapp实现单选组件覆盖选中样式 完整代码&#xff1a; <!-- 是否选择组件: trueOfFalseChooseBtn --> <template><view class"is-true-body"><view class"btn-con" :class"isTrue ? btn-con-active : " click"clic…

牛客NC79 丑数【中等 堆、优先级队列 Java,Go,PHP Go和PHP中我自己实现了优先级队列】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/6aa9e04fc3794f68acf8778237ba065b 思路 注意&#xff1a; 数据范围&#xff1a;0≤n≤2000&#xff0c; 2000肯定到不了&#xff0c;最多到1690&#xff0c;相同题目链接&#xff1a;https://www.lintcode.com…