sqlserver------数据库的存储过程(练习)

news/2024/11/30 9:43:38/

对于数据库的存储过程之前的专题有讲过

这里具体讲述存储过程的编写方法:

例题:有heat表和eatables两张表,分别为:

eatables

heat:protein(蛋白质),fat(脂肪),sugar(含糖量),kj(热量),以100克为单位

1.写一个存储过程Diet,以食物重量(克)为参数,输出该重量的不同类产品中,蛋白质成分最高的食物及其蛋白质含量。输出类似如下:

exec Diet 200

由于检索内容较为复杂:

所以先写检索内容:

select name,a.type,maxfrom(select type,max(protein)*(@num/100) max from eatables,heatwhere heat.id = eatables.idgroup by type)p,eatables as a,heat as bwhere b.protein*(@num/100)=p.max and a.id=b.id

接着加上存储过程:

create procedure Diet(@num int
)
as
begindeclare @name varchar(10),@type varchar(10),@max decimal(8,2)declare diet_cursor cursor forselect name,a.type,maxfrom(select type,max(protein)*(@num/100) max from eatables,heatwhere heat.id = eatables.idgroup by type)p,eatables as a,heat as bwhere b.protein*(@num/100)=p.max and a.id=b.id
open diet_cursor
fetch next from diet_cursor into @name,@type,@max
while @@FETCH_STATUS=0
begin
print '在' +@type+'食品中'
print '每'+convert(varchar,@num)+'克'+@name+'含有的蛋白质最高,达到'+convert(varchar,@max)+'克'
fetch next from diet_cursor into @name,@type,@max
end
close diet_cursor
deallocate diet_cursor
end

输入

exec Diet 200

2.写一个存储过程HeatReport,找出平均糖含量最高的食物及其糖含量。输出类似如下:
exec HeatReport;

先写检索过程:

select top 1 type,avg_sugar from(select type,sum(sugar)/count(1) as avg_sugar from eatables,heatwhere eatables.id=heat.idgroup by type)porder by p.avg_sugar desc

再写存储过程

create procedure HeatReport
as
begindeclare @type varchar(10),@avg_sugar decimal(8,2)declare diet_cursor cursor forselect top 1 type,avg_sugar from(select type,sum(sugar)/count(1) as avg_sugar from eatables,heatwhere eatables.id=heat.idgroup by type)porder by p.avg_sugar descopen diet_cursorfetch next from diet_cursor into @type,@avg_sugarwhile @@FETCH_STATUS=0beginprint'在面类,米面类,水产类食品中'print @type+'的平均糖含量最高,达到每100克食物含有'+convert(varchar,@avg_sugar)+'克'fetch next from diet_cursor into @type,@avg_sugarend
close diet_cursor
deallocate diet_cursor
end

输入
exec HeatReport

得:


http://www.ppmy.cn/news/423161.html

相关文章

2017艾普兰机智云全家福

AWE艾普兰奖的知名度从家电领域已经扩展到消费电子领域以及周边领界,成为各界公认的具有跨界影响力的实力评选。每年也都成为各品牌企业的必争之荣誉。堪称中国家电与消费电子行业奥斯卡!家电与消费电子领域的最高荣尚! 机智云致力于在移动互…

智能家居物联网化将成为AWE大会最大看点

AWE大会已经在今日9点半开幕,AWE在今年将扩张至8个展馆,其整体展示规模达到11万平米,这是以往都无法匹敌的。海尔、美的、格力、海信、创维、TCL、康佳、格兰仕、澳柯玛、新飞、美菱、奥马、方太、老板、万和、万家乐、华帝、帅康、樱花、格美…

【观察】 通盘无妙手,看SmartX如何构建增长根基

申耀的科技观察 读懂科技,赢取未来! 超融合自诞生以来,几乎很快就赢得了市场各方的认可,并从一个相对较小范围的应用领域,逐渐成长为目前企业构建软件定义数据中心,乃至未来实现多云管理架构中一个重要的基…

IoT方案|机智云智慧家电互联互通解决方案

[ 行业背景 ] 过去10年,在移动互联网、云计算、物联网技术快速发展的推动下,产品智能化逐渐成为家电和消费电子类产品标配,在丰富产品功能性外,有效提升了用户使用的舒适度和便利,并随着场景化需求的增加,形…

获3500万美元A轮融资,滴普科技用数字智能加速企业升级

2019年9月24日,滴普科技DEEPEXI 2.0 新品发布暨A轮融资战略发布会在北京隆重召开,发布会以“聚合数字、链接智慧”为主题,由甲子光年创始人张一甲担任主持人,与来自晨兴资本、高瓴资本、IDG资本、BAI贝塔斯曼亚洲投资基金、初心资…

描绘新十年智慧生活蓝图,AWE2021圆满闭幕

3月25日,以“AWE新十年 智竞未来”为主题的2021年中国家电及消费电子博览会(AWE2021)在上海虹桥国家会展中心顺利闭幕。 作为疫情后第一个线下举办的世界级家电及消费电子产业展会,这场举世瞩目的科技盛宴全方位展示了家电、消费电…

Pytest自动化测试的三种运行方式

目录 1、主函数模式 2、命令行模式 3、通过读取pytest ini配置文件运行 (最主要运用的方式) 总结: Pytest 运行方式共有三种: 1、主函数模式 运行所有 pytest.main() 指定模块 pytest.main([-vs],,./testcase/test_day1.py)…

【Mo 人工智能技术博客】电商购物评论的情感分析

随着网上购物越来越流行,人们对于网上购物的需求变得越来越高,这让京东,淘宝等电商平台得到了很大的发展机遇。但是,这种需求也推动了更多的电商平台的发展,引发了激烈的竞争。在这种电商平台激烈竞争的大背景下&#…