zoukankan      html  css  js  c++  java
  • MySQL之存储过程和函数

    存储过程和函数:
    1.创建存储过程和函数:
    存储过程:
    delimiter $$
    create procedure proc_name()
    BEGIN
    查询语句; // 记得加分号
    END
    $$
    delimiter ;
    函数:
    delimiter $$
    create function func_name(属性字段 数据类型)
    returns 数据类型 // 这的数据类型与下面查询语句查询的属性字段数据类型相同
    BEGIN
    return (查询语句)
    END
    $$
    delimiter ;
    2.使用存储过程和函数:
    存储过程:
    call proc_name;
    函数:
    select func_name(参数);
    3.查看存储过程:
    show procedure status;
    show function status;
    show create procedure proc_name;
    show create function func_name;
    4.修改:
    ALTER PROCEDURE procedure_name
      [characteristic…]
    ALTER FUNCTION function_name
      [characteristic…]
    5.删除:
    DROP PROCEDURE proce_name;
    DROP FUNCTION func_name;
    例子:
    DROP PROCEDURE IF EXISTS emplayee_count;
    DELIMITER $
    #创建存储过程
    CREATE PROCEDURE emplayee_count (OUT NUM INTEGER)
    BEGIN
    #声明变量
    DECLARE   emplayee_sal INTEGER;DECLARE   flag INTEGER;
    #声明游标
    DECLARE cursor_emplayee
      CURSOR FOR SELECT sal FROM t_employee;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
    #设置结束标志
    SET flag=0;SET NUM=0;‘
    #打开游标
    OPEN cursor_emplayee;
    #遍历游标指向的结果集
    FETCH cursor_emplayee INTO emplayee_sal;
    WHILE flag<>1 DO
    IF emplayee_sal >999 THEN
    SET num=num+1;
    END IF;
    FETCH cursor_emplayee INTO emplayee_sal;
    END WHILE;
    #关闭游标
    CLOSE cursor_emplayee;
    END$
    DELIMITER ;
     
    如何使用:
    call emplayee_count(@count);
    select @count;
     
  • 相关阅读:
    (转)如何搭建一个vue项目
    vue项目设置自动打开浏览器
    vue项目关闭代码校验
    前端面试知识点
    图片瀑布流,so easy!
    详细梳理ajax跨域4种解决方案
    css实现内容不相同的左右两个div等高
    简单了解css3轮廓outline
    vue事件监听机制
    table-layout:fixed
  • 原文地址:https://www.cnblogs.com/wadmwz/p/7498246.html
Copyright © 2011-2022 走看看