码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mysql的存储过程


    目录

    1.概念

    2. 存储过程的优点

    3. 存储过程的应用

    1 创建存储过程

    2 调用存储过程

     3.查看存储过程

     4 查看某个存储过程的具体信息

    5 存储过程的参数


    1.概念

    存储过程是一组为 了完成特定功能的SQI语句集合。

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

    2. 存储过程的优点

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

    3. 存储过程的应用

    1 创建存储过程

    DELIMITER

    #delimiter,将语句的结束符号从分号;临时改为两个
    (可以是自定义) CREATE PROCEDURE Proc() #procedure,创建存储过程,过程名为Proc,不带参数

    -> BEGIN #bengin过程体以关键字BEGIN开始

    -> select * from store_info; #过程体语句

    -> END $$ #过程体以关键字END结束

    DELIMITER ; #将语句的结束符号恢复为分号

    2 调用存储过程

    CALL Proc;

     3.查看存储过程

    SHOW CREATE PROCEDURE [数据库.]存储过程名;

    SHOW CREATE PROCEDURE Proc\G

     4 查看某个存储过程的具体信息

    SHOW PROCEDURE STATUS LIKE '%Proc%'\G

    5 存储过程的参数

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

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

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

     输入参数

    delimiter $$

    create procedure Proc1(in myname char(50))

    ->begin

    ->select * from can01 where name = myname;

    ->end $$

    delimiter ;

    call Proc1('zhangsan');

     输出参数

    delimiter $$

    create procedure Proc2(in myname char(50),out outid int)

    ->begin

    ->select id into outid from can01 where name = myname;

    ->end $$

    delimiter ;

    call proc2('lisi',@out_id);

    select @out_id;

     输入输出参数

    delimiter $$

    create procedure Proc3(inout inout_id int)

    ->begin

    ->select count(id) into inout_id from can01 where id

    ->end $$

    delimiter ;

    set @inoutid=2;

    call Proc3(@inoutid);

    select @inoutid;

     

  • 相关阅读:
    基于Java的新闻资讯平台系统设计与实现(源码+lw+部署文档+讲解等)
    uniapp地图围栏代码
    学习git博客
    【Android 屏幕适配】屏幕适配通用解决方案 ⑦ ( PercentRelativeLayout 百分比布局方案 | 该布局已废弃本方案仅做参考 )
    MyBatis学习:MyBatis框架下执行SQL语句传递实体类参数
    Codeforces Round #620 (Div. 2)ABC
    C#判断字符串的显示宽度
    Elementor Pro 3.5 使用 Scroll Snap 和 Progress Tracker 改善用户体验
    Flutter快学快用09 项目脚手架:一个命令构建 Flutter 项目
    redis数据库基础知识
  • 原文地址:https://blog.csdn.net/m0_71931851/article/details/127727198
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号