实验六 存储过程

实验六 存储过程

第1关:增加供应商相关列sqty

use demo;

#代码开始

#在S表中增加一列供应零件总数量(sqty),默认值为0。

altertable s add sqty intdefault0;

#代码结束

desc s;

第2关:定义、调用简单存储过程

use demo;

#代码开始

#1、定义简单存储过程:计算所有供应商供应零件总数量并修改供应商相关列sqty。

DELIMITER //

createprocedure proc\_1()--in p\_sno char(2)--

begin

   update s set sqty =(selectsum(qty)from spj where spj.sno = s.sno);

end//

#2、调用存储过程。

call proc\_1();

#代码结束

select\*from s;

第3关:定义、调用带参数存储过程(1)

use demo;

#代码开始

#1、定义带参数存储过程:查询返回指定供应商的供应零件总数量。

dropprocedureifexists proc\_b;

DELIMITER $$

createprocedure proc\_b(IN p\_sno char(2),OUT p\_sqty int)

begin

    selectsum(qty)into p\_sqty from spj where sno = p\_sno;

end$$

#2、调用带参数存储过程。

#以供应商S1为参数,调用存储过程,将结果存入@sqty1

call proc\_b('S1', @sqty1);

-- set @sqty1 = 1100;

-- select @sqty1;

#以供应商S2为参数,调用存储过程,将结果存入@sqty2

call proc\_b('S2', @sqty2);

-- set @sqty2 = 2000;

-- select @sqty2;

#代码结束

select @sqty1,@sqty2

第4关:定义、调用带参数存储过程(2)

use demo;

#代码开始

#1、定义带参数存储过程:插入一个指定供应商信息 ('S6','泰欣',40,'十堰')(所有信息由参数提供)。

DELIMITER $$

CREATEPROCEDURE proc\_insert (

p\_sno CHAR ( 2 ), -- 供应商编号

p\_sname VARCHAR ( 10 ), -- 供应商名称

p\_status INT, -- 供应商状态

p\_city VARCHAR ( 10 ) -- 供应商城市

)

BEGIN

DECLARE v\_count INT; -- 声明一个变量用于存储供应商数量

SELECTCOUNT(\*) INTO v\_count FROM s WHERE sno = p\_sno; -- 查询是否存在相同编号的供应商

IF v\_count \>0THEN-- 如果存在,提示错误信息

SELECT'供应商已存在,请重新插入!';

ELSEIF v\_count =0THEN-- 如果不存在,插入新的供应商信息

INSERTINTO s (sno, sname, status, city) VALUES (p\_sno, p\_sname, p\_status, p\_city);

END IF;

END$$

#2、调用带参数存储过程。

CALL proc\_insert ('S6','泰欣',40,'十堰'); -- 调用存储过程,传入参数

SELECT\*FROM s WHERE sno ='S6'; -- 查询插入的结果

#代码结束

第5关:定义、调用带参数存储过程(3)

use demo;

#代码开始

#1、定义带参数存储过程:删除指定零件代码的供应信息,并返回删除的元组数。

DELIMITER $$

dropprocedureifexists proc\_delete$$

createprocedure proc\_delete(IN p\_pno char(4),OUT p\_count int)

begin

    deletefrom spj where pno = p\_pno;

    -- set p\_count = row\_count();

    selectrow\_count()into p\_count;

end$$

#2、调用带参数存储过程。

#以零件代码P5为参数,调用存储过程,将结果存入@p\_count1

call proc\_delete('P5', @p\_count1);

#以零件代码P6为参数,调用存储过程,将结果存入@p\_count2

call proc\_delete('P6', @p\_count2);

#代码结束

select @p\_count1,@p\_count2

第6关:定义、调用带参数存储过程(4)

use demo;

#代码开始

#1、定义带参数存储过程:修改指定代码项目的其它信息(所有信息由参数提供)。

DELIMITER $$

CREATEPROCEDURE proc\_update (

p\_jno CHAR ( 2 ), -- 项目编号

p\_jname VARCHAR ( 10 ), -- 项目名称

p\_city VARCHAR ( 10 ) -- 项目城市

)

BEGIN

DECLARE p\_count INT; -- 声明一个变量用于存储项目数量

SELECTCOUNT(\*) INTO p\_count FROM j WHERE jno = p\_jno; -- 查询是否存在指定编号的项目

IF p\_count \> 0 THEN-- 如果存在,更新项目信息

UPDATE j SET jname = p\_jname, city = p\_city WHERE j.jno = p\_jno;

END IF;

END$$

#2、调用带参数存储过程。

# 修改工程项目代码 J7(jno) 的信息为: 汽车制造厂 (jname) 十堰 (city)

CALL proc\_update ('J7', '汽车制造厂', '十堰');

#代码结束

select \* from j where jno = 'J7';

原文链接:https://www.cnblogs.com/moeyur/p/17386670.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:实验六 存储过程 - Python技术站

(0)
上一篇 2023年5月9日
下一篇 2023年5月10日

相关文章

  • mysql server is running with the –skip-grant-tables option

    当我们使用MySQL数据库时,有时候可能会遇到”mysql server is running with the –skip-grant-tables option”的提示信息。这种提示信息的意思是MySQL服务器正在运行时跳过了授权表。通常这种情况发生在我们忘记MySQL的root密码时,因为授权表的内容包括用户名和密码。 针对这种情况,整理了以下针对U…

    MySQL 2023年5月18日
    00
  • 查看MySQL的错误日志的方法

    查看MySQL的错误日志可以帮助我们了解MySQL在运行过程中所发生的错误,便于我们及时发现问题并解决。以下是查看MySQL错误日志的方法: 查看MySQL的配置文件 首先,我们需要先查看MySQL的配置文件my.cnf(或my.ini)中的配置项”log_error”是否开启,这个设置控制着MySQL是否在错误发生时将信息输出到错误日志中。我们可以使用如下…

    MySQL 2023年5月18日
    00
  • MySQL 之 索引原理与慢查询优化

    1. 索引介绍 需求:   一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。说起加速查询,就不得不提到索引了。 索引:    简单的说,相当于图书的目录,可以帮助用户快速的找到需要的内容.    在MySQL中也…

    MySQL 2023年4月13日
    00
  • MySQL(win7x64 5.7.16版本)下载、安装、配置与使用的详细图文教程

    MySQL(win7x64 5.7.16版本)下载、安装、配置与使用的详细图文教程 1. 下载 在MySQL官方网站(http://dev.mysql.com/downloads/)上,我们可以找到MySQL Community Edition的页面。在操作系统选项中,选择Windows,版本选项中选择MySQL Community Server版本,下载适…

    MySQL 2023年5月18日
    00
  • node读取MySQL数据

    var Client = require(‘mysql’).createConnection({ host:’127.0.0.1′, user:’root’, password:’root’, database: ‘angular’, charset:’UTF8′ }) console.log(‘Connecting to MySQL…’); http …

    MySQL 2023年4月12日
    00
  • <经验杂谈>Mysql中字符串处理的几种处理方法concat、concat_ws、group_concat

    Mysql中字符串处理的几种处理方法concat、concat_ws、group_concat以下详情: MySQL中concat函数使用方法:CONCAT(str1,str2,…)   返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。 注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二…

    MySQL 2023年4月13日
    00
  • GreatSQL社区月报 | 2023.03

    GreatSQL社区月报 | 2023.03 GreatSQL 是一个开源的 MySQL 技术路线数据库社区,社区致力于通过开放的社区合作,构建国内自主 MySQL 版本及开源数据库技术,推动中国开源数据库及应用生态繁荣发展。 为了帮助社区的小伙伴们更好地了解 GreatSQL 社区的实时进展,我们决定每月更新发布一次 GreatSQL 社区月报。月报的主要…

    MySQL 2023年4月17日
    00
  • Python – Django – 使用 Pycharm 连接 MySQL 数据库

    在 Pycharm 的右上方找到 Database 点击 依次点击,选择 MySQL 数据库 点击 Download 下载驱动文件 下载完成后对数据库的相关信息进行填写 填写完成后点击“Test Connection”,如果出现 Successful 就说明连接成功 然后点击“应用”,再点击“确定” 左边这个窗口是写 SQL 语句的地方  例如查询 app0…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部