实验六 存储过程

实验六 存储过程

第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流程控制语句详解

    MySQL流程控制语句是一种在MySQL中用来控制程序执行流的结构。它们允许您在程序中使用条件和循环语句来控制程序的执行路径。 下面是MySQL中的几种流程控制语句: IF语句 IF语句在MySQL中使用非常普遍,它允许您在程序中使用条件判断语句来决定程序的执行流程。IF语句的格式如下: IF(condition,statement1,statement2)…

    MySQL 2023年3月10日
    00
  • Centos 6.3将Mysql 5.1.61升级为mysql 5.6.19遇到的问题及解决方式

    更新yum源 CentOS 6.3自带的yum源中没有MySQL5.6,则需要添加新的yum源。 示例: sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm 卸载旧版本Mysql 如果系统中已经安装了旧版本的MySQL,则需要卸载掉。 示例: sudo…

    MySQL 2023年5月18日
    00
  • MySQL数据库-错误1166 Incorrect column name

    当我们在使用MySQL数据库时,有时候会遇到错误1166,其中错误提示信息为“Incorrent column name”,这个错误通常是由于我们在MySQL的查询语句中使用了不存在的列而造成的。下面我将详细讲解如何解决这个问题。 1.检查列名是否正确 MySQL中的错误1166通常是由于我们在查询语句中使用了不存在的列名称造成的,所以我们需要检查列名是否正…

    MySQL 2023年5月18日
    00
  • IDEA下Maven项目中通过JDBC连接MySQL数据库

    1. 在当前Maven项目的pom.xml文件中导入数据库依赖: <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependenc…

    MySQL 2023年4月11日
    00
  • MySQL之join查询优化方式

    MySQL是目前广泛应用于Web应用程序和许多独立软件的开源关系型数据库管理系统。JOIN是MySQL中广泛使用的一种查询语句,可以将两个或多个表中的数据进行关联。然而,JOIN查询语句的效率和性能常常受到关注。这篇文章的重点是MySQL中Join查询的优化方式,介绍了一些基本技巧和优化策略。 基本技巧 确保正确的索引:使用索引可以快速定位需要查询的数据,从…

    MySQL 2023年5月19日
    00
  • hadoop中hive配置mysql

    1.首先下载hive 下载地址   选择带有 bin 选项的  ,不然以后还要自己编译 解压安装 移动到/usr/local/hive  下 进入hive目录,进入conf cp hive-env.sh.template hive-env.sh cp hive-default.xml.template hive-site.xml cp hive-log4j2…

    MySQL 2023年4月13日
    00
  • mysql proxy问题的解决方法

    MySQL Proxy是一个轻量级的代理服务器,可以将应用程序和MySQL数据库服务器之间的通信拦截并分析。在实际应用中,使用MySQL Proxy进行监控和管理可以提高MySQL数据库的稳定性和性能。但是,MySQL Proxy也存在一些问题,比如连接泄漏、崩溃等。下面是关于如何解决MySQL Proxy问题的攻略: 步骤一:查看日志文件 MySQL Pr…

    MySQL 2023年5月18日
    00
  • Mysql排序的特性详情

    MySQL排序是指对数据进行按照指定的字段或条件进行排序,以方便数据查询和展示。下面我们将详细讲解MySQL排序的特性详情: 排序的基本语法 MySQL排序语法如下: SELECT column1, column2, … FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], … …

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