• 23、函数


    一、函数
    一组预先编译好的sql语句的集合,可以理解为批处理语句
    优点:
    提高代码的重用性
    简化操作
    减少了编译次数并且减少了和数据库服务器的连接次数,提高效率
    区别:
    存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
    函数:有且仅有1个返回,适合做处理数据后返回一个结果
    语法:
    create function 函数名(参数列表) returns 返回类型
    begin
    函数体
    end
    注意:
    1、参数列表包含参数名、参数类型
    2、函数体:如果没有returns语句一定会报错,虽然returns不放在函数体最后也不会报错,但是没有意义,不建议这样写
    3、函数体仅有一句话,则可以省略begin end
    4、使用delimiter语句设置结束标记
     
    二、调用语法
    select 函数名(参数列表);
    -- 1、无参有返回
    -- 案例:返回公司的员工个数
    delimiter $
    create function hs1() returns int
    begin 
    declare ct int default 0; # 定义变量
    select count(*) into ct  # 赋值
    from employees; 
    return ct;  # 返回变量值
    end $
    
    -- 调用
    select  hs1();
    
    -- 2、有参有返回
    -- 案例1:根据员工名返回工资
    delimiter $
    create function hs2(name varchar(20)) returns double
    begin
    set @ne=0;
    select salary into @ne from employees where last_name=name;
    return @ne;
    end $
    select salary from employees where last_name='K_ing';
    
    -- 注意:如果最终查询结果有2个值,则会返回空
    select hs2('Kochhar');
    
    -- 案例2:根据部门号返回该部门的平均工资
    delimiter $
    create function hs3(bmid int) returns double
    begin
    declare sy double default 00.00;
    select avg(salary) into sy from employees where department_id=bmid;
    return sy;
    end $
    
    -- 调用
    select hs3(60) as avg_salary;
     
    三、查看函数
    show create function 函数名;
     
    四、删除函数
    drop function 函数名;
     
     
     
  • 相关阅读:
    根据对象中某个元素进行排序
    Bootstrap 弹出框(Popover)插件
    echarts+bmap 去掉地图左下角的logo
    get提交参数中存在空格
    long类型的转换为正常时间格式遇到的问题
    jQuery validate使用过程中遇到的问题
    问题 G: 最长公共子串问题
    1567. 乘积为正数的最长子数组长度(dp)
    C. Parsa's Humongous Tree(树形dp)
    1558. 得到目标数组的最少函数调用次数
  • 原文地址:https://www.cnblogs.com/luohuasheng/p/16488704.html
Copyright © 2020-2023  润新知