mysql简单操作存储过程

是对sql语句的预编译

它的优点

1.存储过程一次编译后,存储在数据库中,后续调用不需要再编译,执行速度快。

2.存储过程是在数据库内部进行数据处理,相较于外部程序调用接口(如Java 程序的 JDBC 接口)访问数据库内部数据,性能更优

它的缺点

1.存储过程依赖于数据库,例如Oracle的存储过程和MySQL的存储过程语法存在差异。若需要从Oracle迁移到MySQL,带来的改造量将是巨大的,这也是部分架构人员不推荐使用存储过程的原因。
2.存储过程将处理逻辑和数据库绑定,不利于系统解耦。
3.存储过程代码管理困难,不利于团队协作开发;当数据库表变化时,可能会影响存储过程。
一般银行项目,很老的项目中会大量使用存储过程,但是目前很多公司都慢慢的使用其他方案代替存储过程,但是因为涉及很多部分,所以替换难度也是很大

主要是二次开发难度增加,阅读性很差

表准备

CREATE TABLE net_type(
   id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
   n_type VARCHAR(20) COMMENT '网站类型',
   n_time VARCHAR(20) COMMENT '类型添加时间',
   n_user VARCHAR(20) COMMENT '类型添加人'
)

 创建添加的存储过程

 

DELIMITER $$

USE `yourheartTest`$$

DROP PROCEDURE IF EXISTS `pkg_net_type`$$

CREATE DEFINER=`qiuxie`@`%` PROCEDURE `pkg_net_type`(IN nType VARCHAR(20),IN nUser VARCHAR(20))
BEGIN
      INSERT INTO net_type(n_type,n_time,n_user) VALUE(nType,NOW(),nUser);
    END$$

DELIMITER ;

  调用

CALL pkg_net_type('存储过程学习','xiaomi')

  创建查询存储过程

 

 

 

 

 

DELIMITER $$

USE `yourheartTest`$$

DROP PROCEDURE IF EXISTS `get_net_type`$$

CREATE DEFINER=`qiuxie`@`%` PROCEDURE `get_net_type`(IN nUser VARCHAR(255))
BEGIN
    
    SELECT  *  FROM  net_type  WHERE n_user=nUser;
    END$$

DELIMITER ;

  

 

posted @ 2022-07-28 23:56  不忘初心2021  阅读(131)  评论(0编辑  收藏  举报