• 九、数据库之存储过程和函数


    1、说明:

    • 相同点:都类似于java中的方法,将一组完成特定功能的逻辑语句包装起来,对外暴露名字

    • 区别:

      返回值适用场景
      存储过程0个、多个批量插入、批量更新
      函数1个数据处理后返回一个结果

    2、存储过程

    零、含义

    • 一组预先编译好的SQL语句的集合,理解成批处理语句,后续使用就

    零、好处

    • 提高重用性
    • sql语句简单
    • 减少了和数据库服务器连接的次数,提高了效率

    一、创建 ★

    create procedure 存储过程名(参数模式 参数名 参数类型)
    begin
    	存储过程体
    end
    
    • 注意:
      1、参数模式:in(表示这个参数需要传入值)、out(这个参数可以作为返回值)、inout,其中in可以省略
      2、存储过程体的每一条sql语句都需要用分号结尾

      3、存储过程体内只有一条SQL语句时,可以省略begin…end

      4、存储过程体的结尾可以加上上文中使用delimiter设置的结束标志

    二、调用

    call 存储过程名(实参列表)
    
    • 举例:
    1. 创建并调用空参列表

      #创建
      delimiter $
      create procedure myp1()
      begin
      	insert into admin(username,password)
      	values('zhao','1111'),('qian','2222'),('sun','3333');
      end $
      
      #调用
      call myp1() $
      
    2. 创建并调用in模式的参数:call sp1(‘值’);

    3. 创建并调用out模式的参数:set @name; call sp1(@name);select @name;

    4. 创建并调用inout模式的参数:set @name=值; call sp1(@name); select @name;

    三、查看

    show create procedure 存储过程名;
    

    四、删除

    drop procedure 存储过程名;
    

    3、函数

    一、创建
    create function 函数名(参数名 参数类型) returns  返回类型
    begin
    	函数体
    end
    
    • 注意:
      • 函数体中肯定需要有return语句
      • 函数只有一句时,begin…end可以省略
      • delimiter , 然 后 用 ,然后用 结尾;
      • 自己生命变量接受查询值,然后返回
    二、调用
    select 函数名(实参列表);
    
    三、查看
    show create function 函数名;
    
    四、删除
    drop function 函数名;
    
  • 相关阅读:
    Leetcode 1005. K 次取反后最大化的数组和(终于解决)
    Leetcode 1071. 字符串的最大公因子
    Leetcode 1002. 查找共用字符
    Leetcode 1053. 交换一次的先前排列(牛,做出来了)
    Leetcode 1046. 最后一块石头的重量
    Qt 将QGraphicsView视图界面保存为图片(转)
    dos中的清屏命令
    seurat单细胞数据分析实现 DimHeatmap函数
    R语言中将数据框或者矩阵的数据转换为一行
    R语言中rnorm、runif生成符合正太分布和均匀分布的随机数
  • 原文地址:https://www.cnblogs.com/liuzhixian666/p/13829355.html
Copyright © 2020-2023  润新知