首页 > 数据库 >头歌数据库实验六:存储过程

头歌数据库实验六:存储过程

时间:2024-05-29 18:44:32浏览次数:16  
标签:存储 调用 sno 代码 头歌 参数 proc 数据库

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

use demo;
 
#代码开始
#在S表中增加一列供应零件总数量(sqty),默认值为0。
ALTER TABLE s ADD sqty INT DEFAULT 0;
 
 
#代码结束
 
desc s;

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

use demo;
 
#代码开始
#1、定义简单存储过程:计算所有供应商供应零件总数量并修改供应商相关列sqty。
 
DELIMITER //
CREATE PROCEDURE proc_1 () BEGIN
    UPDATE s SET sqty = ( SELECT SUM( qty ) FROM spj WHERE spj.sno = s.sno );
END//
 
#2、调用存储过程。
CALL proc_1();
 
 
#代码结束
 
select * from s;

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

use demo;
 
#代码开始
#1、定义带参数存储过程:查询返回指定供应商的供应零件总数量。
drop procedure if exists proc_2;
delimiter //
create procedure proc_2(in isno char(2),OUT osqty INT)
begin
    select sum(qty) into osqty from spj where sno=isno;
end //
 
 
 
#2、调用带参数存储过程。
#以供应商S1为参数,调用存储过程,将结果存入@sqty1
call proc_2('S1',@sqty1);
 
#以供应商S2为参数,调用存储过程,将结果存入@sqty2
call proc_2('S2',@sqty2);
 
#代码结束
 
select @sqty1,@sqty2

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

use demo;
 
#代码开始
#1、定义带参数存储过程:插入一个指定供应商信息 ('S6','泰欣',40,'十堰')(所有信息由参数提供)。
 
DELIMITER //
CREATE PROCEDURE proc_insert (
    p_sno CHAR ( 2 ),
    p_sname VARCHAR ( 10 ),
    p_status INT,
    p_city VARCHAR ( 10 )) BEGIN
    DECLARE
        v_count INT;
    SELECT
        COUNT(*) INTO v_count 
    FROM
        s 
    WHERE
        sno = p_sno;
    IF
        v_count > 0 THEN
        SELECT
            ( '供应商已存在,请重新插入!' );
        
        ELSEIF v_count = 0 THEN
        INSERT INTO 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、定义带参数存储过程:删除指定零件代码的供应信息,并返回删除的元组数。
drop procedure if exists delete_info;
delimiter //
create procedure delete_info(in p_pno char(7),out d_num int)
begin
delete from spj where pno = p_pno;
select row_count() into d_num;
end //
 
#2、调用带参数存储过程。
#以零件代码P5为参数,调用存储过程,将结果存入@p_count1
call delete_info("P5",@p_count1);
 
#以零件代码P6为参数,调用存储过程,将结果存入@p_count2
call delete_info("P6",@p_count2);
 
#代码结束
 
select @p_count1,@p_count2

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

use demo;
 
#代码开始
#1、定义带参数存储过程:修改指定代码项目的其它信息(所有信息由参数提供)。
DELIMITER //
CREATE PROCEDURE proc_update (
    p_jno CHAR ( 2 ),
    p_jname VARCHAR ( 10 ),
    p_city VARCHAR ( 10 )) BEGIN
    DECLARE
        p_count INT;
    SELECT
        COUNT(*) 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';

标签:存储,调用,sno,代码,头歌,参数,proc,数据库
From: https://www.cnblogs.com/whwh/p/18220891

相关文章

  • 基于Springboot + vue实现的网上订餐系统--附源码+论文+数据库
    基于Springboot+vue实现的网上订餐系统摘 要随着我国经济的飞速发展,人们的生活速度明显加快,在餐厅吃饭排队的情况到处可见,近年来由于新兴IT行业的空前发展,它与传统餐饮行业也进行了新旧的结合,很多餐饮商户开始通过网络建设订餐系统,通过专门的网上订餐系统,一方面节省了用......
  • django 多数据库接入相关操作
    多数据库注册在配置文件中的default同级进行注册即可DATABASES={"default":{.....},"aaa":{.....},"bbb":{.....},}建立数据表模型模型建立后做一些操作让使用更加便携,其他使用此模型的时候正常  Aaa......
  • 数据在内存中存储
    目录1.整数在内存中的存储 2.⼤⼩端字节序3.浮点数在内存中的存储浮点数概念例题 浮点数存储4.浮点数补充说明浮点数取的过程解释例题1.整数在内存中的存储   整数在二进制中表示方法有:原码、反码、补码。对于正整数 以“1”为例原、反、补码......
  • Oracle如何诊断远程访问数据库慢/超时等问题小结
    管理维护Oracle数据库的时候,有时候会碰到用户(应用程序)远程连接/访问数据库非常慢,甚至连接超时的问题。这里简单总结一下遇到这类问题的方法,仅供参考,如有疏漏或不足之处,敬请指正。文中部分内容来自官方文档DocID1679567.1[1]遇到这类问题,首先应该检查/排除网络问题,一般来说,有......
  • Labels and Databases for Mac( 数据库标签制作软件)1.8.0版
     LabelsandDatabasesforMac一款数据库标签制作和设计软件。LabelsandDatabases可以帮助您使用各种内置标签格式创建标签、信封和卡片,并使用用户数据库中包含的信息填充它们,即使用MailMerge创建和打印标签。LabelsandDatabasesforMac(数据库标签制作软件)软件......
  • Java语言,MySQL数据库;SSM 心理咨询预约管理系统19086(免费领源码)计算机毕业设计项目推荐
    目 录摘要1绪论1.1背景及意义1.2研究现状1.3ssm框架介绍1.4论文结构与章节安排2 心理咨询预约管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能......
  • python3.x中ORM框架SQLObject使用SQLite数据库随笔
    1、如果未安装SQLObject首先要安装,在管理员CMD下,输入如下命令:pipinstallsqlobject2、创建数据库文件,并建立数据库连接,通过修改SQLObject内置的sqlhub的processConnection属性,具体代码如下sqlobject.sqlhub.processConnection=sqlobject.connectionForURI('sqlite:.......
  • macos php 如何链接神通数据库aci
    环境:macosphp版本:7.4利用:docker我得先喷一下刚开始装的x86官网上下载的居然没有pdo扩展最后在网上找到了arm64的扩展简直了...1。编写dockerfileFROMbai615/arm64-php:7.4.33-fpmRUNsed-i's/deb.debian.org/mirrors.tuna.tsinghua.edu.cn/g'/etc/apt/sources.lis......
  • 【Linux】存储管理
    一、文件系统1、类型:ext3、ext4、xfs…2、inode   概念:记录文件的属性、大小、权限…,一个文件占用一个inode,大小为128byte。查看inode数量:语法:df -i3、block  概念:存储文件的实际数据,文件较大时会占用多个block,默认大小为4G。二、文件链接1、软链接 ......
  • ubuntu 更改docker默认存储目录
    经过确认园内博客大多数是CentOS下的方式,找到一篇ubuntu下的,但是他是通过建立软连接的方式。这里放上我在官方论坛上找到的方法,参考链接1.停止docker服务sudosystemctlstopdocker2.更改daemon文件在/etc/docker下面的daemon.json,如何没有则创建sudovim/etc/docker/d......