实验六 存储过程

yizhihongxing

实验六 存储过程

第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索引性能优化问题解决方案 1. Mysql索引简介 Mysql的索引是一种数据结构,通过对表格中的数据进行排序,方便快速地查找和检索,从而提高查询效率。Mysql中常用的索引有B-Tree索引、HASH索引和FULLTEXT索引等。 2. Mysql索引性能优化问题 在实际开发中,大量数据操作可能会导…

    MySQL 2023年5月19日
    00
  • MySQL性能优化之max_connections配置参数浅析

    MySQL性能优化之max_connections配置参数浅析 什么是max_connections max_connections是MySQL数据库中的一个配置参数,用于设置同时连接到MySQL服务器的最大客户端数量。一旦超过这个数量,新的客户端连接将无法被接受并返回错误信息。 如何设置max_connections 在MySQL配置文件my.cnf中,可…

    MySQL 2023年5月19日
    00
  • 从linux系统mysql导出数据库

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/50763674   1、MySQL数据库导出 /usr/local/mysql/bin/mysqldump -u root -p123456 test> /home/backup/test.sql 其中:root为数据库用户名 123456…

    MySQL 2023年4月13日
    00
  • 解决Mysql的left join无效及使用的注意事项说明

    下面是Mysql的left join无效及使用的注意事项说明的完整攻略。 问题描述 在Mysql中使用left join时,可能会出现left join语句无效的情况。具体表现为:left join语句没有将数据正确地连接到一起,缺失了应有的连接结果。那么,如何解决这个问题呢? 解决方案 在使用Mysql的left join时,需要注意以下几个问题: 1. …

    MySQL 2023年5月18日
    00
  • MySQL怎么过滤重复数据

    本篇内容主要讲解“MySQL怎么过滤重复数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL怎么过滤重复数据”吧! 方法1:加关键字 DISTINCT 在mysql中,可以利用“SELECT”语句和“DISTINCT”关键字来进行去重查询,过滤掉重复的数据,语法“SELECT DISTINCT 字段名 F…

    MySQL 2023年4月16日
    00
  • mysql中,now()函数和sysdate()函数有什么区别?

    问题描述:   今天在看mysql的时间函数,now()和sysdate(),记录下两者之间有什么不同. 实验过程: 1.执行以下的两个语句: mysql> select now(),sleep(2),now(); +———————+———-+———————+ | now() | sl…

    MySQL 2023年4月13日
    00
  • 听说mysql中的join很慢?是你用的姿势不对吧

    关于 MySQL 中的 JOIN 操作慢,主要原因是使用不当,可以通过对 SQL 语句进行优化以及适当的使用索引来提高查询效率。下面我将介绍一些优化技巧来提高 MySQL JOIN 的性能。 1. 选择正确的 JOIN 类型 MySQL 支持多种 JOIN 类型,如 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 OUTER JOIN 等…

    MySQL 2023年5月19日
    00
  • window下mysql 8.0.15 winx64安装配置方法图文教程

    下面进行详细讲解。首先,我们需要明确一下安装mysql 8.0.15的前置条件:需要先安装Visual C++ Redistributable for Visual Studio 2015。 1. 下载并安装Visual C++ Redistributable for Visual Studio 2015 首先,打开Visual C++ Redistribu…

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