• 数据库-存储过程


     ###############    存储过程    ##############

    """
    3.存储过程
    那么什么是存储过程呢?怎么创建、查看和删除存储过程呢?存储过程有什么优点?
    存储过程:类似于函数(方法),简单的说存储过程是为了完成某个数据库中的特定功能而编写的语句集合,
    该语句集包括SQL语句(对数据的增删改查)、条件语句和循环语句等。
    
    1. 查看现有的存储过程
    show procedure status;
    2 .删除存储过程
    drop procedure 存储过程名称;
    3. 调用 存储过程
    call 存储过程名称(参数入/出类型 参数名 数据类型);
    
    #############################
    4.创建存储过程
    # 1.体会封装
    create procedure p1 ()
    begin
        select * from account;
    end
    
    # 2, SQL 体会参数
    create procedure p2(in i int,out n varchar(50))
    begin
     select name into n from account where id = i;
    end
    
    -- 调用
    set @name =null;
    CALL p2(1,@name);
    select @name;
    注意1: mysql中有三种出入参数类型:分别为:1. in 入参类型  2.out 出参类型   3. inout 出入参类型
    注意2: into 关键字 可以 将前面字段的查询结果 执行 给 into 后面的变量.
    
    #3.SQL 体会控制
     create procedure p3(in x int,in c char(1))
     begin
        if c ='d' then
             select * from account where money >x;
       else
             select * from account where money <x;
      end if;
    end
    
    #4.体会循环:计算1-100累加的和,并且返回计算结果.
    create procedure p4(inout n int)
    begin
          DECLARE sum int default 0; -- 设置总和变量,并且指定初始值0
          declare i int; -- 声明变量
          set i = 0;    -- 通过set为变量设置值
        while i<=n DO  -- 开始循环
                set sum = sum +i;
                set i = i+1;
          end while; -- 结束循环
    
        select sum; -- 提供结果
    
         set n = sum;--将计算结果提供给 输出变量 n;
    end;
    
     -- 调用:
     set @n = 100;
     call p4(@n);
     select @n;
    
    
    """
  • 相关阅读:
    javaweb中带标签体的自定义标签
    javaweb带父标签的自定义标签
    Filter的常见应用
    Filter内容
    JFace TableViewer性能改善 -- 使用VirtualTable
    SWT table性能改善 -- 使用VirtualTable
    java自动探测文件的字符编码
    [小技巧]Filezilla无法确定拖放操作目标,由于shell未正确安装__解决办法
    批量导出VBA工程中的Source
    开源许可证知多少
  • 原文地址:https://www.cnblogs.com/andy0816/p/12635670.html
Copyright © 2020-2023  润新知