博客
关于我
mysql存储过程详解
阅读量:790 次
发布时间:2023-02-12

本文共 1130 字,大约阅读时间需要 3 分钟。

MySQL存储过程详解

存储过程简介

存储过程是一组SQL语句的集合,经编译后存储在数据库中。用户通过指定存储过程名称并提供参数(如有需)来调用执行。它可以看作是一种模拟面向对象方法的工具,用于封装复杂操作或提高性能。

存储过程优势

  • 灵活性:支持流控制语句,适合复杂操作。
  • 可重用:创建后可多次调用,无需重复代码。
  • 性能优化:预编译后优化,执行速度更快。
  • 减少网络流量:传输仅调用语句。
  • 安全机制:通过权限控制数据访问。
  • MySQL存储过程创建

    创建格式

    CREATE PROCEDURE [过程名]([过程参数[,...]]) [特性...] {语句}

    示例:

    DELIMITER //CREATE PROCEDURE proc1(OUT s INT)BEGIN    SELECT COUNT(*) INTO s FROM user;END//DELIMITER ;

    分割符设置

    • 使用DELIMITER //DELIMITER ;设定存储过程的分隔符。
    • ;为默认分隔符,需前置处理以避免误解。

    参数类型

    • IN:输入参数,不能修改。
    • OUT:输出参数,可修改并返回。
    • INOUT:输入输出参数,可读写。

    变量使用

    定义变量

    DECLARE var_name [DEFAULT value] type;

    变量赋值

    SET var = expression;

    用户变量

    @var_name

    注释

    • 使用--行注释。
    • 使用/* */多行注释。

    存储过程调用

    • 使用CALL语句调用存储过程。
    • 示例:
    CALL proc_name([参数值[,...]]);

    存储过程查询

    • 查看存储过程列表:

      SELECT name FROM mysql.proc WHERE db='数据库名';
    • 查看存储过程详细:

      SHOW CREATE PROCEDURE 数据库.存储过程名;

    存储过程修改与删除

    • 修改存储过程:

      ALTER PROCEDURE proc_name;
    • 删除存储过程:

      DROP PROCEDURE proc_name;

    控制语句

    条件语句

    IF condition THEN    [操作]ELSE    [操作]END IF;

    循环语句

    REPEAT    [操作]UNTIL condition;END REPEAT;

    标签使用

    LABEL: label_name;[操作]

    基本函数

    字符函数

    • CONCATSUBSTRINGTRIM等。

    数学函数

    • ROUNDFLOORCEILING等。

    日期时间函数

    • DATE_FORMATNOWTIME_TO_SEC等。

    通过以上方法,开发者可以充分利用MySQL存储过程的优势,提升数据库性能和开发效率。

    转载地址:http://vrbfk.baihongyu.com/

    你可能感兴趣的文章
    Mysql学习总结(6)——MySql之ALTER命令用法详细解读
    查看>>
    Mysql学习总结(70)——MySQL 优化实施方案
    查看>>
    Mysql学习总结(71)——MySQL 重复记录查询与删除总结
    查看>>
    Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
    查看>>
    Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
    查看>>
    Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
    查看>>
    Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
    查看>>
    Mysql学习总结(75)——并发量大、数据量大的互联网业务数据库设计军规
    查看>>
    Mysql学习总结(76)——MySQL执行计划(explain)结果含义总结
    查看>>
    Mysql学习总结(77)——温故Mysql数据库开发核心原则与规范
    查看>>
    Mysql学习总结(78)——MySQL各版本差异整理
    查看>>
    Mysql学习总结(79)——MySQL常用函数总结
    查看>>
    Mysql学习总结(7)——MySql索引原理与使用大全
    查看>>
    Mysql学习总结(80)——统计数据库的总记录数和库中各个表的数据量
    查看>>
    Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
    查看>>
    Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
    查看>>
    Mysql学习总结(83)——常用的几种分布式锁:ZK分布式锁、Redis分布式锁、数据库分布式锁、基于JDK的分布式锁方案对比总结
    查看>>
    Mysql学习总结(84)—— Mysql的主从复制延迟问题总结
    查看>>
    Mysql学习总结(85)——开发人员最应该明白的数据库设计原则
    查看>>
    Mysql学习总结(8)——MySql基本查询、连接查询、子查询、正则表达查询讲解
    查看>>