存储过程练习 超市管理系统

思维导图:

create database  chaoshilc--创建一个数据库
go
use chaoshilc--使用这个数据库
go

create table gongying--创建一个供应商的表格
(
  gcode int primary key identity(1001,1),--供应商编号,主键
  gname varchar(20),--名称
  gsdh varchar(20),--电话
  gsdz varchar(20)--地址
)

--向供应商表格中添加数据
insert into gongying values(‘可口可乐‘,‘232323‘,‘山东青岛‘)
insert into gongying values(‘花生油‘,‘323232‘,‘山东济南‘)
insert into gongying values(‘绿茶‘,‘565656‘,‘山东日照‘)
insert into gongying values(‘矿泉水‘,‘656565‘,‘山东潍坊‘)
insert into gongying values(‘红星二锅头‘,‘878787‘,‘北京‘)

create table cangku--创建一个仓库的表格
(
  ccode int primary key identity(100001,1),--产品编号,主键
  cname varchar(20),--产品名称
  cshu int,--产品数量
  cjin decimal(18,2),--进价
  cgcode int--供应商编号,供应商表格中gcode的外键
)

--向仓库表格中添加数据
insert into cangku values(‘可口可乐‘,1600,2,1001)
insert into cangku values(‘花生油‘,800,40,1002)
insert into cangku values(‘绿茶‘,1300,8,1003)
insert into cangku values(‘矿泉水‘,1200,1,1004)
insert into cangku values(‘红星二锅头‘,1500,2,1005)

create table chaoshi--创建一个超市的表格
(
  cccode int,--产品编号,仓库表格中ccode的外键
  ccname varchar(20),--产品名称
  ccshu int,--产品数量
  cshou decimal(18,2)--售价
)

--向超市表格中添加数据
insert into chaoshi values(100001,‘可口可乐‘,50,3)
insert into chaoshi values(100002,‘花生油‘,30,80)
insert into chaoshi values(100003,‘绿茶‘,100,20)
insert into chaoshi values(100004,‘矿泉水‘,60,2)
insert into chaoshi values(100005,‘红星二锅头‘,70,5)

select*from gongying
select*from cangku
select*from chaoshi

--1.跟苹果公司apple建立合作关系,编号为1006,电话是888888,地址是美国
insert into gongying values(‘苹果公司‘,‘888888‘,‘美国‘)--直接添加一条苹果公司的数据到供应商表中

--2.新进iphone6s和ipd5各10部,进价3000,3500,拿到超市各2部,售价为4500,5000

--因为手机和平板分别10部,超市两部,则仓库中留下8部,分别把两件商品添加到仓库8部,超市2部
insert into cangku values(‘iphone6s‘,8,3000,1006)
insert into cangku values(‘ipad‘,8,3500,1006)
insert into chaoshi values(100006,‘iphone6s‘,2,4500)
insert into chaoshi values(100007,‘ipd‘,2,5000)
--3.卖掉可口可乐10瓶,(需要判断超市货够不够,若不够加上仓库的货看看够不够,若够就卖掉,拿两瓶放超市,
--若不够有多少卖多少,通知可口可乐公司需要进货)
create proc jilu--创建一个名为jilu的存储过程,下面返回一个参数为卖掉的数量
@mai int
as
begin
    declare @ping int,@shu int--定义两个变量用来接收超市和仓库现有的100001商品的数量
    select @ping=ccshu from chaoshi where cccode=100001--查询超市现有的这件商品的数量用@ping接收
    select  @shu=cshu from cangku where ccode=100001--查询仓库现有这件商品的数量用@shu接收

    if @ping>@mai--如果超市现有的商品数量大于要卖掉的数量
    begin
        update chaoshi set ccshu=@ping-@mai where cccode=100001--则update更新的意思,超市卖掉@mai后,设置超市现在商品数量为@[email protected]
    end

    else if  @ping<@mai--如果超市现有商品数量小于卖掉数量,则去仓库看一下
    begin
        if @ping+@shu>@mai--如果超市加仓库的数量大于卖掉数量,则看一下卖掉后仓库的剩余
        begin
            if (@ping+@shu)-@mai>=2--如果仓库剩余大于等于2
            begin
                update chaoshi set ccshu=2 where cccode=100001--则拿两瓶去超市,update更新超市现有数量为2
                update cangku set cshu=@shu+@ping-@mai-2 where ccode=100001--因为仓库剩余的拿走两瓶去超市,则更新仓库现在的数量为卖掉后剩余的减去2
            end
            else if(@ping+@shu)-@mai<2 and (@ping+@shu)-@mai>0--如果仓库剩余小于2大于0,则全部拿去超市
            begin
                update chaoshi set ccshu=@shu+@ping-@mai where cccode=100001--更新现在超市的这件商品的数量为超市和仓库原有的总量减去卖掉的数量
                update cangku set cshu=0 where ccode=100001--仓库现在没有了这件商品,则数量为0
            end
        end
        else if @ping+@shu<@mai--如果超市加仓库的数量小于要卖的数量,则有多少卖多少,卖掉后仓库与超市这件商品的数量为0
        begin
            update chaoshi set ccshu=0 where cccode=100001--更新超市表中这件商品数量为0
            update cangku set cshu=0 where ccode=100001--更新仓库表中这件商品数量为0
            print‘需要进货‘--提醒一下需要进货
        end
    end
end
go--选中执行一下这个存储过程使其生效,只能执行一次

exec jilu 10--执行jilu这个存储过程返回一个参数10 ,在jilu里@mai这个变量中,代表要卖掉的数量

--4.跟1001公司关系破裂,所有有关1001公司的产品需要全部退货
delete from chaoshi where cccode=100001--把超市表中1001这个公司的商品数据删除,表中这个公司商品编号为100001
delete from cangku where ccode=100001--把仓库表中的数据也删除
delete from gongying where gcode=1001--把公司表中这个公司信息删除

--5.进货:100003号商品新进30
create proc shangbu--创建一个shangpu的存储过程
@s int--变量@s接收下面调用时给的参数值,新进商品的的数量
as
begin
declare @p int--声明一个变量@p
select @p=cshu from cangku where ccode=100003 --查询仓库中100003号商品现有的数量赋值到变量@s中
set @p=@s+@p --设置新进商品数量@s加上原有商品数量@p重新给@p赋值,现在@p里是进货后产品数量
update cangku set cshu=@p where ccode=100003--更新一下现在仓库中100002号商品数量,把@p中的值赋值到仓库数量中
end
go
exec shangbu 30--执行shangpu这个存储过程,参数为30,新进商品的的数量,接收于变量@s中
select cshu from cangku where ccode=100003--查询现在仓库中100003这件商品的数量
时间: 2024-10-07 10:04:25

存储过程练习 超市管理系统的相关文章

超市管理系统---总结篇

花费一周左右的时间完成一个练习项目:超市管理系统,基于C#winform+ADO.NET+SQLServer,分为前台系统+后台系统.有兴趣的小伙伴可以围观: GitHub: https://github.com/EasonDongH/SupermarketManagementSystem 总结一下: 技术点: ADO.NET:带参数SQL:存储过程:三层架构:分页查询等 学习点: 三层的练习:分页查询的实现 原文地址:https://www.cnblogs.com/EasonDongH/p/8

超市管理系统—NABCD模型

1) N (Need 需求) 需求分析: 超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生.依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力.物力,改善了员工的并且能够快速反映出商品的进.销.存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率. 2) A (Approach 做法) 本系统主要包括四大模块,分别是人事管理模块,销售管理模块,进货管理模块,库存管理模块.每

超市管理系统制定测试计划

http://www.cnblogs.com/panguangmei/ 超市管理系统测试计划 1. 简介 1. 1目的 超市管理系统“超市管理系统测试计划”文档有助于实现以下目标: 确定超市管理系统的信息和应超市管理系统测试的软件构件. 针对超市管理系统推荐可采用的超市管理系统测试策略,并对这些策略加以说明. 确定所需的资源,并对超市管理系统测试的工作量进行估计. 列出超市管理系统超市管理系统测试项目的可交付元素. 1. 2背景 对超市管理系统(构件.应用程序.系统等)及其目标进行简要说明.需要

文献综述十一:基于商品的商业超市管理系统的改进

一.基本信息 标题:基于商品的商业超市管理系统的改进 时间:2017 出版源:潍坊学院学报 文件分类:对商品系统的研究 二.研究背景 根据超市实际需求进行扩展 ,由重结果向行为转为重过程控制 ,实现超市系统的自动管理和优化. 三.具体内容 大部分超市系统的商品管理着重点在于数据库管理.供应链管理等理论性研究,而国外的先进品类管理软件水土不服,不适合国内的超市管理特点.本文献主要从调研 .采购 .订单 .收货 .库存 .销售到回款等各个环节实施全程计算机控制 ,实现系统的自动判断和优化.文献的主要

SSM超市管理系统

每天记录学习,每天会有好心情.*^_^* 今天将为大家分析一个基于SSM的超市管理系统的设计与实现,给超市管理营造 出了一种现代化的气氛,至少也能促使人们的管理观念进行一点更新或者给超市罩上一层现代管理的外衣.采用当前非常流行的B/S体系结构,以JSP作为开发技术,主要依赖SSM技术框架,mysql数据库建立本系统.关键词,管理系统的设计与实现,超市管理系统设计与实现,设计超市管理系统),基于SSM的超市管理系统的设计与实现项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIP

哪里可以找到基于JAVA设计帮做的超市管理系统

一,关于我们我们是专业从事于定做计算机相关毕业设计,拥有专业的写手团队和严格的保密制度.我们的工程师们在软件工程开发与设计的各个领域积累了丰富的经验,保证服务水平.我们致力于为客户提供各专业高质量的毕业设计定做服务,为即将毕业的同学提供毕业设计指导.毕设代做.毕设定制等一站式服务.强大的专业能力,高效的服务水平,多年以来一直深得客户好评,毕业只有一次,我们将尽心尽力为你完成毕设. 联系我们:.扣.扣.号(幺零三贰三七幺贰幺) 与我们取得联系,向我们提出您的写作要求:我们咨询师会根据您的服务需求和

学习时用的软件最新 开发环境为Visual Studio 2010,数据库为SQLServer2005,使用.net 4.0开发。 超市管理系统

一.源码特点 1.采用典型的三层架构进行开发.模板分离,支持生成静态 伪静态..购物车.登陆验证.div+css.js等技术二.功能介绍 1.本源码是一个超市在线购物商城源码,该网上商城是给超市便利店等零售批发实体店定制的网上商城,主要针对周边配送,后台可定义配送范围,可在线支付和货到付款! 2.用户注册,需要填写正确手机号码 获得验证码输入正确才能注册成功,保证用户信息的准确性,真实性.其它在线购物商城的常规功能,该系统都有,非常适合学习或二次开发使用,欢迎下载三.菜单功能       前台页

超市管理系统简易版

1 import java.util.ArrayList; 2 import java.util.Scanner; 3 4 public class Shopp { 5 6 public static void mainMenu()//菜单 7 { 8 System.out.println("==============欢迎光临超市=============="); 9 System.out.println("1:货物清单"+ " " + &qu

光辉超市管理系统

2.实现菜单选项功能,如下图: 对于这个我是满怀激动的,因为这个项目好像涵盖了C#和数据库基础这本书的大部分内容,可以说是全部内容都有涉及,,所以我是很想写好. 首先:搭框架 在写代码的时候 按题目要求:功能1是超市购物先输出商品列表,然后根据购买情况打印小票, 分析得到:1:输出输出商品列表 方法可以用Command的ExecuteReader()方法如下 //调用Command 的ExecuteReader()方法得到SqlDataReader类对象r#region 输出商品列表