• mysql学习笔记-存储过程与函数


    1、存储过程

    语法

    CREATE
        [DEFINER = user]
        PROCEDURE sp_name ([proc_parameter[,...]])
        [characteristic ...] routine_body
    
    proc_parameter:
        [ IN | OUT | INOUT ] param_name type

    2、自定义函数

    CREATE
        [DEFINER = user]
        FUNCTION sp_name ([func_parameter[,...]])
        RETURNS type
        [characteristic ...] routine_body
    
    func_parameter:
        param_name type

    3、存储过程与自定义函数区别

    
    存储过程实现的过程要复杂一些,而函数的针对性较强;
    
    存储过程可以有多个返回值,而自定义函数只有一个返回值;
    
    存储过程一般独立的来执行,而函数往往是作为其他SQL语句的一部分来使用;

    存储过程说白了就是把经常使用的SQL语句或业务逻辑封装起来,预编译保存在数据库中,当需要的时候从数据库中直接调用,省去了编译的过程.提高了运行速度;
    同时降低网络数据传输量

    4、SHOW STATUS 、SHOW CREATE 以及系统的information_schema表

    • MySQL中可以使用 SHOW STATUS 语句或 SHOW CREATE 语句查看存储过程和函数的状态信息 ,也可以直接从系统的information_schema中查询。
    • CREATE PROCEDURE test_1(IN invalue INT(11),OUT outvalue INT(11))
      BEGIN
          set outvalue = 100 * invalue;
      END;
      
      CREATE FUNCTION test_2(invalue INT(11))RETURNS INT(11)
      BEGIN
          RETURN (100 * invalue);
      END;
      
      -- 查看状态
      SHOW PROCEDURE STATUS;
      SHOW PROCEDURE STATUS LIKE 'test_%';
      SHOW FUNCTION STATUS;
      
      -- 查看定义
      SHOW CREATE PROCEDURE test_1;
      SHOW CREATE FUNCTION test_2;
      
      -- information_schema.Routines表中查看
      SELECT * FROM information_schema.ROUTINES where ROUTINE_NAME='test_1';
  • 相关阅读:
    leetcode两数之和go语言
    百度地图省市php获取
    odbc。INI配置
    php 批量脚本检测语法错误
    mac下docker安装php链接使用国产数据库驱动
    php连接神通数据库 ci框架
    预处理数据
    phpword读取内容和样式 生成新的内容
    php生成gitbook路径
    英语学习
  • 原文地址:https://www.cnblogs.com/shishibuwan/p/10974634.html
Copyright © 2020-2023  润新知