linux 存储结构

zhende / 2023-07-20 / 原文

存储过程是可以完成特点的一组sql语句完成功能。

目录

一、存储结构

二、实际操作

三、存储过程的参数

四、总结

 

 

 

 

 

 

 

一、存储结构

  1.存储结构概述

    MysQL数据库存储过程是一组为了完成特定功能的SQL语句的集合。

     存储过程这个功能是从5.0版本才开始支持的,它可以加快数据库的处理速度,增强数据库在实际应用中的灵活性。存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来,这个过程经编译和优化后存储在数据库服务器中。当需要使用该存储过程时,只需要调用它即可。操作数据库的传统SQL语句在执行时需要先编译,然后再去执行,跟存储过程一对比,明显存储过程在执行上速度更快,效率更高。存储过程在数据库中创建并保存,它不仅仅是SQL语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。

  2.优点

    (1)执行一次后,会将生成的二进制代码驻留缓冲区,提高执行效率

    (2)SQL语句加上控制语句的集合,灵活性高

    (3)在服务器端存储,客户端调用时,降低网络负载

    (4)可多次重复被调用,可随时修改,不影响客户端调用

    (5)可完成所有的数据库操作,也可控制数据库的信息访问权限

  3.存储过程应用

    存储过程在数据库中L 创建并保存,它不仅仅是 SQ语句的集合,还可以加入一些特殊的控制结构,也可以控制数据的访问方式。存储过程的应用范围很广,例如封装特定的功能、 在不同的应用程序或平台上执行相同的函数等等。

  4.触发器

    (1)MySQL触发器是一种特殊的存储过程,它是在数据库表中定义的一种自动化操作,当特定的数据库事件发生时,触发器会自动执行相应的SQL语句。MySQL触发器可以在数据插入、更新或删除时触发,从而实现对数据库的自动化操作。

    (2)MySQL触发器可以用于实现复杂的业务逻辑和数据校验,例如:在插入或更新数据时,自动计算某些字段的值、自动更新相关表格中的数据、自动记录操作日志等。MySQL触发器的编写需要遵循一定的规则,如定义触发器的触发事件、触发条件、触发动作等。

    (3)使用MySQL触发器可以提高数据操作的效率和安全性,避免了手动操作产生的人为错误和漏洞,同时也减轻了数据库管理员的工作负担。但需要注意的是,过多的触发器也会影响数据库性能,应该适度使用。

二、实际操作

delimiter $$    #将语句的结束符号从分号;临时修改,以防出问题,可以自定义
create procedure ee(in inname varchar(16))    #创建存储过程,过程名自定义,()可带参数
  begin                       #过程体以关键字BEGIN开始
  select * from test1 where a_name='aaaa';      #过程体语句
  end$$                   #过程体以关键字END结尾
delimiter ;                     #将语句的结束符号恢复为分号
call ee('aaaa');                      #调用存储过程​
​​​
show create procedure XXX\G                    #查看某个储存过程的具体信息

   1.创建存储过程

     2.调用成功

   3.查看存储过程

   4.查看存储过程状态

   5.查看指定存储过程信息

 

 三、存储过程的参数

  1.参数

    IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
    OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
    INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

    即表示调用者向过程传入值,又表示过程向调用者传出值(只能是变量)

  2.实际操作 

 

 

   3.修改存储过程

alter procedure ff modifies sql data sql security invoker;
 
modifies sql data:表名子程序包含写程序的语句
 
security:安全等级
 
invoker:当定义为 invoker 时,只要执行者有执行权,就可以成功执行

  

 

   4.删除存储过程

 

四、总结

    MySQL存储过程是一组预编译的SQL语句集合,可以被调用和执行。存储过程可以完成复杂的数据处理、逻辑判断和业务流程控制等功能,提高了数据库的安全性和性能。MySQL存储过程具有以下特点:首先,存储过程可以减少网络流量,提高数据库性能;其次,存储过程可以在数据库内部实现复杂的业务逻辑,提高业务处理效率;此外,存储过程可以提高数据库的安全性,防止SQL注入等安全问题。MySQL存储过程可以通过命令行或可视化工具创建和调用,具有较高的灵活性和可维护性。在实际开发中,存储过程可以用于数据清洗、ETL、数据分析等场景,提高数据处理效率和数据质量。