• 了解sql存储过程


            存储过程的定义:在大型数据库系统中 , 一组为了完成特定功能的 SQL 语句集 , 存储在数据库中 , 经过第一次编译后再次调用不需要再次编译 , 用户通过指定存储过程的名字并给出参数 (如果该存储过程带有参数) 来执行它 , 存储过程是数据库中的一个重要对象 ; 存储过程中可以包含 逻辑控制语句 和 数据操纵语句 , 它可以接受参数 , 输出参数 , 返回单个或多个结果集以及返回值 。

    优点:精简,可维护性高,安全性更高。

    缺点:可移植性差

    我这里就简单介绍一下优缺点,我主要是来讲一下怎么用。

    存储过程的基本格式;

    create produce 存储名(参数)

    begin

       sql语句;

    end;

    怎么调用:call 存储名(参数);

    怎么删除:drop produce if exists 存储名;

    怎么使用带参数的存储过程,我举个例子

    create procedure GetScores(
        out minScore decimal(8,2),
        out avgScore decimal(8,2),
        out maxScore decimal(8,2)
    )
    begin
        select min(score) into minScore from user;
        select avg(score) into avgScore from user;
        select max(score) into maxScore from user;
    end;

    调用此存储过程,首先参数前面你要加@

    call getscores(@minscore,@avgscore,@maxscore)//写存储过程的时候不用加@.当你传入参数使用的时候要加上@。为了减少出错,写存储过程的时候变量名最好都加个2@.

    记住返回的值都在@minscore,@avgscore,@maxscore这几个参数里也就是调用前世参数,调用后是结果。

    所以选取值时应用select @minscore,@avgscore,@maxscore.

    注意:记住sql的三个参数MySql 支持 IN (传递给存储过程) , OUT (从存储过程传出) 和 INOUT (对存储过程传入和传出) 类型的参数 , 存储过程的代码位于 BEGIN 和 END 语句内 , 它们是一系列 SQL 语句 , 用来检索值 , 然后保存到相应的变量 (通过指定INTO关键字) ;

    解释一下就是通过INTO来传值。

    create procedure GetNameByID(
        in userID int,
        out userName varchar(200)
    )
    begin
        select name from user
        where id = userID
        into userName;
    end;

    上面的代码就是传入useid,然后传出usename

  • 相关阅读:
    为什么大多数IOC容器使用ApplicationContext,而不用BeanFactory
    重温Java泛型,带你更深入地理解它,更好的使用它!
    看完了这篇,面试的时候人人都能单手撸冒泡排序!
    JAVA基础4---序列化和反序列化深入整理(Hessian序列化)
    VS Code 变身小霸王游戏机!
    equals()方法和hashCode()方法详解
    openFeign远程调用时使用Mybatis-plus的IPage接口进行返回分页数据失败的记录
    通过express快速搭建一个node服务
    UML 类图
    jdk命令行工具系列——检视阅读
  • 原文地址:https://www.cnblogs.com/xyyshishuaige/p/8667445.html
Copyright © 2020-2023  润新知