zoukankan      html  css  js  c++  java
  • mysql的存储过程

    什么是存储过程

    1. 一组可编程的函数,是为了完成特定功能的SQL语句集
      经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
    2. 存储过程就是具有名字的一段代码,用来完成一个特定的功能。
    3. 创建的存储过程保存在数据库的数据字典中

    为什么要用存储过程

    1. 将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用
    2. 批量处理
    3. 统一接口,确保数据的安全
    4. 相对于oracle数据库来说,MySQL的存储过程相对功能较弱,使用较少。

    存储过程的创建和调用

    创建存储过程

    CREATE PROCEDURE 名称()
       BEGIN
       语句
       END $$
    

    调用存储过程

    call  名称();
    

    删除存储过程

    drop procedure  名称
    

    存储过程变量

    1. 在存储过程中声明一个变量
    2. 使用DECLARE语句
      DECLARE 变量名 数据类型(大小) DEFAULT 默认值;
      可以声明一个名为total_sale的变量,数据类型为INT,默认值为0
    DECLARE total_sale INT DEFAULT 0;
    
    1. 分配变量值
      要为变量分配一个值,可以使用SET语句
    SET total_count = 10;
    

    使用SELECT INTO语句将查询的结果分配给一个变量

    SELECT COUNT(*) INTO total_products FROM products
    
    1. 变量的范围
      如果在存储过程中声明一个变量,那么当达到存储过程的END语句时,它将超出范围,因此在其它代码块中无法访问

    存储过程参数

    三种类型

    1. IN:表示调用者向过程传入值(传入值可以是字面量或变量)

    2. OUT:表示过程向调用者传出值

    3. INOUT:INOUT参数是IN和OUT参数的组合。

    定义参数:create produce name(模式,参数名称 数据类型(大小))

    存储过程语句

    1. IF语句
    IF expression THEN 
       statements;
    END IF;
    ##################
    IF expression THEN
       statements;
    ELSE
       else-statements;
    END IF;
    
    1. CASE语句
    CASE  case_expression
       WHEN when_expression_1 THEN commands
       WHEN when_expression_2 THEN commands
       ...
       ELSE commands
    END CASE;
    
    1. 循环
    WHILE expression DO
       statements
    END WHILE
    #############
    REPEAT
     statements;
    UNTIL expression
    END REPEAT
    

    查看存储过程

    查看所有存储过程:

    SHOW PROCEDURE STATUS;
    

    查看指定数据库中的存储过程

    SHOW PROCEDURE STATUS WHERE db = 'My_test4';
    

    查看指定存储过程源代码

    SHOW CREATE PROCEDURE 存储过程名
    
  • 相关阅读:
    前端3
    前端-1
    第三十七章 MYSQL(二)
    第三十六章 MYSQL语句(一)
    第三十五 MYSQL 语句
    数字转换成中文大小写、金额大小写
    NPOI随笔——图片在单元格等比缩放且居中显示
    NPOI随笔——单元格样式CellStyle问题
    C++、C#、VB各语言日志代码
    .NET认识与理论总结
  • 原文地址:https://www.cnblogs.com/joker-dj/p/12822112.html
Copyright © 2011-2022 走看看