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

news2024/11/18 3:05:27

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

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

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

eatables

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

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

exec Diet 200

由于检索内容较为复杂:

所以先写检索内容:

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

接着加上存储过程:

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

得:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络自顶向下】如何学好计网-第四章网络层

第四章 网络层 学习目的: 理解网络层服务的主要原理 网络岑服务模型转发(forwarding)和路由(routing)的概念对比路由器的工作原理路由算法及路由协议 完成简单的组网及IP地址和路由配置 4.1 引言 网络层提供的功能…

前端vue自定义简单实用下拉筛选 下拉菜单

前端vue自定义简单实用下拉筛选 下拉菜单, 下载完整代码请访问: https://ext.dcloud.net.cn/plugin?id13020 效果图如下: #### 使用方法 使用方法 <!-- titleArr: 选择项数组 dropArr: 下拉项数组 finishDropClick: 下拉筛选完成事件--> <ccDropDownMenu :titleA…

解密Prompt系列3. 冻结LM微调Prompt: Prefix-tuning Prompt-tuning P-tuning

这一章我们介绍在下游任务微调中固定LM参数&#xff0c;只微调Prompt的相关模型。这类模型的优势很直观就是微调的参数量小&#xff0c;能大幅降低LLM的微调参数量&#xff0c;是轻量级的微调替代品。和前两章微调LM和全部冻结的prompt模板相比&#xff0c;微调Prompt范式最大的…

21. 算法之动态规划

1. 概念 动态规划(Dynamic Programming)&#xff0c;是一种分阶段求解的方法。动态规划算法是通过拆分问题&#xff0c;定义问题状态和状态之间的关系&#xff0c;使得问题能够以递推&#xff08;或者说分治&#xff09; 的方式去解决。 首先是拆分问题&#xff0c;就是根据问…

生产报工软件怎么选?一定要看这几点,值得收藏!

生产报工软件怎么选&#xff1f; 适合项目型企业&#xff0c;支持移动端报工&#xff1b;可以进行工时上报、工时统计、人力成本核算&#xff1b;满足中大型企业需求。 题主的要求可以说非常具有代表性了&#xff0c;今天我们就来看一看如何寻找到这样的报工系统。 一、为什…

Alibaba Cloud Linux安装Nginx以及常用命令

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装C编译器&#xff0c;以及所需要的库二、下载和安装PCRE三.Ngxin相关命令 总结 前言 提示&#xff1a;系统是Alibaba Cloud Linux 3.2104 LTS 64位&…

批量更新状态功能在设备巡检、人员管理、工序流转等场景的应用

二维码已被应用在了各式各样的场景中&#xff0c;譬如教育培训、会议签到、产品展示等等。其中有很多场景需要一次性运用到大量的二维码&#xff0c;如人员管理、工序流转、设备巡检等&#xff0c;可以使用批量添加记录功能使工作效率近一步提升。 原先为一批二维码添加记录时…

dubbo3 Cluster wrapper初始化及extensionloader分析

从以下代码&#xff0c;可以看到dubbo默认的服务是failover SPI("failover") public interface Cluster {String DEFAULT "failover";Adaptive<T> Invoker<T> join(Directory<T> directory, boolean buildFilterChain) throws RpcExce…

达梦MPP集群搭建、DEM管理工具搭建MPP集群应用

说明... 3 两节点MPP集群手动搭建... 4 1、配置dm.ini 4 2、配置dmmal.ini 5 3、配置dmmpp.ctl 5 4、启动EP01和EP02数据库实例&#xff0c;系统搭建完成。... 6 MPP使用&#xff1a;... 6 使用DEM管理系统搭建MPP3节点集群... 10 一、达梦DEM部署... 11 1、创建DEM库…

计算机网络管理 常见的计算机网络管理工具snmputil,Mib browser,SNMPc管理软件的功能和异同

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

【C++ 基础篇:25】:【重要模板】C++ 算术(赋值)运算符重载及自增自减运算符重载【以 Date 日期类为例】

系列文章说明 本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大…

LabVIEW开发监测太阳能电池和损伤检测

LabVIEW开发监测太阳能电池和损伤检测 使用LabVEW监测太阳能电池的实时数据&#xff0c;利用LabVIEW实现太阳能跟踪和损伤检测。使用了太阳能电池板&#xff0c;Arduino UNO板&#xff0c;电压&#xff08;0-25V&#xff09;传感器LDR&#xff0c;温度传感器和伺服电机。Solar…

基于ubuntu20.4搭建的K8S集群新增工作节点带GPU显卡过程记录

基于ubuntu20.4搭建的K8S集群新增工作节点带GPU显卡过程记录 1、创建虚拟机引导选择efi 2、添加显卡,修改虚拟机-高级参数,添加以下两个参数 pciPassthru.64bitMMIOSizeGB:192 pciPassthru.use64bitMMIO:TRUE否则可能无法开机。 3、添加直通显卡,安装显卡驱动。 3.1、查…

Redis集群详细介绍从0开始-包括集群的Jedis开发

集群 为什么需要集群-高可用性 1、生产环境的实际需求和问题 容量不够&#xff0c;redis 如何进行扩容&#xff1f;并发写操作&#xff0c; redis 如何分摊&#xff1f;主从模式&#xff0c;薪火相传模式&#xff0c;主机宕机&#xff0c;会导致ip 地址发生变化&#xff0c;…

linuxOPS系统服务_linux文件权限管理

什么是权限 **权限&#xff1a;**在计算机系统中&#xff0c;权限是指某个计算机用户具有使用软件资源的权利。 权限的目的 文件权限的设置目的&#xff1a;是想让某个用户有权利操作文件 权限的分类 普通权限rwx 用户正常情况去操作文件所具有的权限 高级权限st 用户对某…

FPGA基础知识-任务和函数

目录 学习目标 学习内容 1.任务和函数的区别 2.任务 3.函数 学习时间 学习总结 学习目标&#xff1a; 1.理解任务和函数之间的区别。 2.理解定义任务所需的条件&#xff0c;学会任务的声明和调用。 3.理解定义函数所需的条件&#xff0e;学会函数的声明和调用。 学习…

JavaScript之ES6高级语法(四)

本文是我在学习过程中记录学习的点点滴滴&#xff0c;目的是为了学完之后巩固一下顺便也和大家分享一下&#xff0c;日后忘记了也可以方便快速的复习。 ES6高级语法(四&#xff09; 前言一、深浅拷贝1.1、浅拷贝1.2、深拷贝1.2.1、递归实现深拷贝1.2.2、js库lodash里面cloneDee…

你们软件测试面试最难的一道题是什么?

在测试面试时&#xff0c;面试官往往会出一个简单的场景让大家进行测试点设计来考察大家的测试设计能力&#xff0c;题目看似简单实则蕴藏杀机&#xff0c;测试人员需要根据自己的工作年限做出不同的回答方可过关。 如果你工作1-2年&#xff0c;那么你只需要回答功能方面的测试…

源来Intel——开放原子全球峰会

文章目录 Intel的开源之路AI领域边缘人工智能在中国的发展趋势边缘人工智能领域的挑战生态系统解决方案英特尔针对边缘人工智能的产品总结 英特尔基础软件赋能中国生态Intel : 软件优先 推动中国市场中国Linux操作系统生态Intel全力投入中国开源社区开发国产Linux厂商&#xff…

I2C中的时钟同步与仲裁

时钟同步和仲裁 在单主设备中&#xff0c;不需要时钟同步和仲裁。而在多设备时&#xff0c;多个主设备可以同时在空闲的总线上开始发送数据&#xff0c;这时就需要仲裁决定哪一个来控制总线并完成它的数据传输&#xff0c;有时候也需要时钟同步来协同设备间的工作。而这正是通过…