# sqlserver------数据库的存储过程（练习）

eatables

heat：protein（蛋白质），fat（脂肪），sugar（含糖量），kj（热量）,以100克为单位

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

exec Diet 200

s

elect name,a.type,max
from(select type,max(protein)*(@num/100) max from eatables,heat
where heat.id = eatables.id
group by type)p,
eatables as a,heat as b
where b.protein*(@num/100)=p.max and a.id=b.id

create procedure Diet(
@num int
)
as
begin
declare @name varchar(10),@type varchar(10),@max decimal(8,2)
declare diet_cursor cursor for
select name,a.type,max
from(select type,max(protein)*(@num/100) max from eatables,heat
where heat.id = eatables.id
group by type)p,
eatables as a,heat as b
where 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,heat
where eatables.id=heat.id
group by type)p
order by p.avg_sugar desc

create procedure HeatReport
as
begin
declare @type varchar(10),@avg_sugar decimal(8,2)
declare diet_cursor cursor for
select top 1 type,avg_sugar from
(select type,sum(sugar)/count(1) as avg_sugar from eatables,heat
where eatables.id=heat.id
group by type)p
order by p.avg_sugar desc
open diet_cursor
fetch next from diet_cursor into @type,@avg_sugar
while @@FETCH_STATUS=0
begin
print'在面类，米面类，水产类食品中'
print @type+'的平均糖含量最高，达到每100克食物含有'+convert(varchar,@avg_sugar)+'克'
fetch next from diet_cursor into @type,@avg_sugar
end
close diet_cursor
deallocate diet_cursor
end

exec HeatReport

SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库，该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品：云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能，强力支撑各种企业应用，同时也包含了微软的License费用，减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver

|
7天前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
33 2
|
8天前
|
SQL 存储 关系型数据库

【6月更文挑战第11天】
44 3
|
7天前
|

MySQL数据库进阶第四篇（视图/存储过程/触发器）
MySQL数据库进阶第四篇（视图/存储过程/触发器）
11 1
|
8天前
|
SQL 弹性计算 API

309 1
|
15天前
|
SQL 存储 数据库

106 2
|
18天前
|

12 0
|
18天前
|

MySQL数据库——存储过程-游标（介绍-声明游标、打开游标、获取游标记录、关闭游标，案例）
MySQL数据库——存储过程-游标（介绍-声明游标、打开游标、获取游标记录、关闭游标，案例）
19 0
|
18天前
|

MySQL数据库——存储过程-循环（while、repeat、loop）
MySQL数据库——存储过程-循环（while、repeat、loop）
56 0
|

|
21天前
|
SQL 监控 安全
sql server数据库监控
SQL Server数据库监控是收集、聚合和监控SQL服务器的各种指标的过程，旨在维护SQL数据库的运行状况和可用性，优化性能，并预防或快速响应错误。以下是一些关于SQL Server数据库监控的核心
21 1