当前位置:   article > 正文

MySQL 存储过程(实验报告)_mysql存储过程实验报告总结

mysql存储过程实验报告总结

一、实验名称: 存储过程 

二、实验日期: 2024 年5  月 25 日

三、实验目的:

  • 掌握MySQL存储过程的创建及调用;

四、实验用的仪器和材料:

硬件:PC电脑一台;

配置:内存,2G及以上  硬盘250G及以上

软件环境:操作系统 windows7以上

数据库环境:MySQL5.7或MySQL8.0.20

五、实验步骤和方法

练习:(基于实验3的表结构及数据)

1、创建存储过程p_cx,实现可根据各种商品所属类别进行查询商品编号,名称,所属类别及价格。

2、创建一存储过程p_intbm,通过带参数的存储过程向表bmxx中插入一条数据,传入参数为bmbh,bmmc,并且如果插入主键重复数据,则将bmbh和bmmc插入错误记录表splog中,数据插入时间赋为当前日期,操作标志位赋上'insert'。错误记录表splog建表语句如下。

  1. CREATE TABLE splog (
  2. spbjlog char(8),
  3. spmclog varchar(20),
  4. sjlog datetime,
  5. Bz varchar(10));

实验准备:

  1. create database test11;
  2. use test11;
  3. #创建商品信息表
  4. create table spxx
  5. (spbh char(8) not null primary key,
  6. spmc varchar(20) not null,
  7. sslb varchar(8) not null,
  8. jg float(10,2) not null,
  9. sl int(4) not null
  10. )ENGINE=InnoDB default charset=utf8;
  11. insert into spxx values('10000001','空调','电器',1500,10),
  12. ('10000002','书包','文具',100,20),
  13. ('10000003','卷纸','日用品',30,50);
  14. #创建部门信息表
  15. create table bmxx
  16. (bmbh char(8) not null primary key,
  17. bmmc varchar(10) not null)ENGINE=InnoDB default charset=utf8;
  18. #部门信息表插入数据
  19. insert into bmxx values('1001','业务'),('1002','技术'),('1003','售后'),('1004','管理');

   

六、实验结果或结论:即根据实验过程中所见到的现象和测得的数据,作出结论。

创建存储过程p_cx,实现可根据各种商品所属类别进行查询商品编号,名称,所属类别及价格:

  1. #创建存储过程p_cx,实现可根据各种商品所属类别进行查询商品编号,名称,所属类别及价格。
  2. delimiter //
  3. create procedure p_cx(in csslb varchar(8))
  4. begin
  5. select spbh,spmc,sslb,jg from spxx where sslb = csslb;
  6. end //
  7. delimiter ;
  8. # 存储过程的调用alter
  9. call p_cx('文具');
  10. call p_cx('电器');

 

  创建一存储过程p_intbm,通过带参数的存储过程向表bmxx中插入一条数据,传入参数为bmbh,bmmc,并且如果插入主键重复数据,则将bmbh和bmmc插入错误记录表splog中,数据插入时间赋为当前日期,操作标志位赋上'insert':

  1. delimiter //
  2. create procedure p_intbm(in ibmbh char(8),ibmmc varchar(10))
  3. Begin
  4. declare done varchar(10);
  5. DECLARE CONTINUE HANDLER FOR 1062 set done='false';
  6. Insert into bmxx values(ibmbh,ibmmc);
  7. If done='false' then
  8. select '插入重复数据';
  9. insert into splog values(ibmbh,ibmmc,current_time(),null);
  10. end if;
  11. set done='true';
  12. end //
  13. delimiter ;
  14. select * from bmxx;
  15. call p_intbm('1006','运维'); //重复运行几次,专门记录'插入重复数据'的日志表(splog)会记录下来
  16. drop procedure p_intbm;
  17. select * from splog;
日志为空,目前没有重复插入数据

实验心得可写上实验成功或失败的原因,实验后的心得体会、建议等。

创建存储过程能够提高性能,存储过程在数据库中编译和存储,可以减少网络流量,提高性能。创建存储过程具有重用性:存储过程可以被多个应用程序调用,提高代码的重用性。可以提高安全性:通过存储过程,可以控制对数据库的访问权限,提高安全性。创建存储过程还能够简化复杂操作:存储过程可以包含复杂的业务逻辑,简化数据库操作。

在实践过程中,熟悉存储过程的语法和结构,了解存储过程的创建和执行过程,掌握存储过程中的语句格式,参数传递方式等。在编写存储过程前,需要明确存储过程的目的和实现的功能,并且规划好存储过程的整体逻辑。需要注意存储过程的性能问题:存储过程的性能直接影响数据库的整体性能,因此需要注意存储过程的优化,比如尽量减少数据库的访问次数,避免不必要的操作等。需要注意安全问题:存储过程中可能包含敏感数据,因此需要注意存储过程的安全性,比如对存储过程进行权限控制等。

创建存储过程需要一定的经验积累和技巧,因此需要多练习并不断总结经验。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/783961
推荐阅读
相关标签
  

闽ICP备14008679号