数据库10(代码相关语句)

while循环

declare @avgprice numeric(10,2)
set @avgprice=(select avg(price)from titles)
//自定义参数
while @avgprice<10
//循环条件
begin
update titles
set price=price*1.1
end
//循环语句操作,当avgprice<10,所有price都加0.1

case语句

查询authors表,当state为各种情况时,为新加的一列赋上不同的值。功能类似于C语言中的switch语句

select *, //加逗号
case state
when’CA’ then ‘California’
when ‘KS’ then ‘kaness’
when ‘MI’ then ‘Michigan’
when ‘IN’ then ‘India’
when ‘MD’ then ‘Maryland’
when ‘UT’ then ‘Utah’
when ‘HN’ then ‘hunan’
else ‘Other’
end as statename
from authors

存储过程

创建一个存储过程名为searchbook,自定义变量后可以查询符合条件的对象信息,使用自定义变量可以让用户自定义查询条件。
create procedure searchbook
@inputlow float,
@inputhigh float

as
begin
select title,price,pub_name
from titles inner join publishers
on(publishers.pub_id=titles.pub_id)
where price>@inputlow and price<@inputhigh
end

//查询语句:
exec searchbook 10.1, 20.2
使用存储过程后,用户可以用很简单的查询语句传入参数,查询到自己想要的结果
–存储过程优点,3-4条
–1.简化代码
–实现共享,提高开发速度
–隔离复杂性
–简化软件分发
–提高运行速度

写一个存储过程,查询在某个价格区间的书籍
如果该价格区间没有任何书,则给出销量最高的3本书
create procedure searchbook
@inputlow float,
@inputhigh float //全局变量

as
begin

declare @num int //局部变量
set @num=(select count(*) from titles
where price>@inputlow and price<@inputhigh)

//if语句
if @num>0
begin
select title,price,pub_name
from titles inner join publishers
on(publishers.pub_id=titles.pub_id)
where price>@inputlow and price<@inputhigh
end

//else语句
else
begin
select top 3 title,price,pub_name
from titles inner join publishers
on(publishers.pub_id=titles.pub_id)
order by ytd_sales desc
end

end
//查询语句
exec searchbook 30,50.1

output参数

设一个全局变量out为OUTPUT,在存储过程中定义它的数据,
在使用查询语句时,用户可以自定义变量,将OUTPUT的值赋给该变量,用select语句得到输出

//定义存储结构
create procedure searchbook1
@inputlow int,
@inputhigh int,
@out int OUTPUT //定义全局变量为OUTPUT

as
begin
select title,price,pub_name
from titles inner join publishers
on(publishers.pub_id=titles.pub_id)
where price>@inputlow and price<@inputhigh

//定义OUTPUT的数据
set @out=(select count(*) from titles
where price>@inputlow and price<@inputhigh)
end

//查询语句
declare @myout int
exec searchbook1 30,50, @myout OUTPUT
select @myout

可能报错

1.超出了存储过程、函数、触发器或视图的最大嵌套层数(最大层数为 32)
可能是触发器的影响,在 titles 或者 publishers 表上存在触发器,执行 SELECT 语句时,触发器会被触发,导致嵌套调用。
解决:
– 禁用 titles 表上的所有触发器
DISABLE TRIGGER ALL ON titles;
– 禁用 publishers 表上的所有触发器
DISABLE TRIGGER ALL ON publishers;
2.CREATE/ALTER PROCEDURE’必须是查询批次中的第一个语句
在 SQL Server 里,CREATE PROCEDURE 语句需要作为一个批次里的首个语句,它的前面不应有其他语句
如果有其他语句,可使用 GO 关键字来划分不同的批次
如报错1需要增加语句
可如下:

//添加语句
DISABLE TRIGGER ALL ON titles;
DISABLE TRIGGER ALL ON publishers;
GO

//原语句
create procedure searchbook1
@inputlow int,
@inputhigh int,
@out int OUTPUT

as
begin
select title,price,pub_name
from titles inner join publishers
on(publishers.pub_id=titles.pub_id)
where price>@inputlow and price<@inputhigh

set @out=(select count(*) from titles
where price>@inputlow and price<@inputhigh)
end; //加分号
GO

declare @myout int
exec searchbook1 30,50, @myout OUTPUT
select @myout

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

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

相关文章

Redis 下载与安装(Windows版)

一、下载 1、redis官网&#xff1a; https://redis.io/downloads/ 2、Github下载地址&#xff1a; https://github.com/MicrosoftArchive/redis/releases 二、安装 1、打开一个命令窗口&#xff0c;通过 cd 命令进入到你解压的目录 2、输入命令 &#xff0c;启动 Redis&…

在高数据速度下确保信号完整性的 10 个关键策略

随着越来越多的传感器连接到系统&#xff0c;需要快速、可靠和安全地传输更多数据&#xff0c;对带宽和设计复杂性的需求也在增加。优先考虑的是确保从 A 发送到 B 的信号不会失真。 确保信号完整性 对于设计依赖于持续准确数据流的数据密集型应用程序的工程师来说&#xff0c…

NAT、代理服务、内网穿透

NAT、代理服务、内网穿透 1、NAT1.1、NAT过程1.2、NAPT2、内网穿透3、内网打洞3、代理服务器3.1、正向代理3.2、反向代理1、NAT 1.1、NAT过程 之前我们讨论了IPv4协议中IP地址数量不充足的问题。NAT技术是当前解决IP地址不够用的主要手段,是路由器的一个重要功能。 NAT能够将…

利用互斥锁或者利用逻辑过期解决缓存击穿问题

缓存击穿问题概述 缓存击穿是指某个 热点数据缓存过期 时&#xff0c;大量并发请求直接穿透缓存&#xff0c;同时访问数据库&#xff0c;导致数据库压力骤增甚至崩溃。以下是基于 互斥锁 和 逻辑过期 的解决方案&#xff1a; 一、缓存击穿的核心原因 热点数据失效&#xff1a…

Vue3组合式API内核解析:从原子状态到企业级架构

一、组合逻辑原子化设计 1.1 状态管理层级拓扑 1.2 组合单元类型对照表 类型典型实现适用场景复用维度UI逻辑单元useForm/useTable表单/列表交互100%跨项目复用业务逻辑单元useOrderFlow订单流程控制同项目跨模块设备能力单元useGeolocation地理位置获取跨技术栈复用状态管理…

新生宿舍管理系统

收藏关注不迷路&#xff01;&#xff01; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff08;免费咨询指导选题&#xff09;&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;希望帮助更多…

从零上手GUI Guider学习LVGL——Button

视频教程请关注我b站&#xff1a;同学_好好学习&#xff0c;这里只是做相应的笔记文稿 从零上手GUI Guider学习LVGL——Buttton 前言&#xff1a; 首先我们为什么要学习LVGL设计工具呢&#xff1f; 1 降低开发难度 2 提高开发效率 所以我们需要学习一款合适的设计工具 在b站很少…

【AAOS】【源码分析】Car UX Restrictions

AAOS UX的核心理念:安全驾驶是驾驶员的首要责任。汽车制造商和应用程序开发人员的所有设计都必须反映这一优先事项。 AAOS平台允许设备制造商(OEM)对不同驾驶状态下的限制进行定制。 驾驶员分心指南 只有符合Driver Distraction Guidelines的应用才可以在驾驶过程中运行。…

jvm调优工具arthas(阿尔萨斯)安装与使用---实践

jvm调优工具arthas(阿尔萨斯)安装与使用—实践 Arthas 是Alibaba开源的Java诊断工具&#xff0c;深受开发者喜爱。 当你遇到以下类似问题而束手无策时&#xff0c;Arthas可以帮助你解决&#xff1a; 这个类从哪个 jar 包加载的&#xff1f;为什么会报各种类相关的 Exception…

机器学习期末

选择题 以下哪项不是机器学习的类型&#xff1f; A. 监督学习 B.无监督学习 C.半监督学习 D.全监督学习 D 哪一个是机器学习的合理定义? A、机器学习是计算机编程的科学 B、机器学习从标记的数据中学习 C、机器学习是允许机器人智能行动的领域 D、机器学习能使计算机能够在…

3DMAX粒子流样条线生成器PFSpliner使用方法详解

3DMAX粒子流样条线生成器&#xff0c;是一款功能强大且富有创意的工具。它能够为“粒子流源”的每一个粒子生成专属的动画样条线&#xff0c;这些样条线描绘出粒子在空间中的运动轨迹&#xff0c;就如同为粒子绘制出了一条条独特的“运动地图”。更为出色的是&#xff0c;这些样…

Maven中clean、compil等操作介绍和Pom.xml中各个标签介绍

文章目录 前言Maven常用命令1.clean2.vaildate3.compile4.test5.package6.verify7.install8.site9.deploy pom.xml标签详解格式<?xml version"1.0" encoding"UTF-8"?>(xml版本和编码)modelVersion&#xff08;xml版本&#xff09;groupId&#xff…

Centos7.6安装JDK 1.8教程

前提&#xff1a;先把jdk1.8文件上传到usr/local目录下&#xff0c;文件名如&#xff1a;jdk-8u151-linux-x64.tar.gz 1. 解压 JDK 压缩包 假设 jdk-8u151-linux-x64.tar.gz 文件位于 /usr/local 目录下。 进入 /usr/local 目录&#xff1a; cd /usr/local 解压文件&#…

EuroCropsML:首个面向少样本时间序列作物分类的多国基准数据集

2025-04-15&#xff0c;由慕尼黑工业大学等机构创建的 EuroCropsML 数据集&#xff0c;这是一个结合了农民报告的作物数据与 Sentinel-2 卫星观测的时间序列数据集&#xff0c;覆盖了爱沙尼亚、拉脱维亚和葡萄牙。该数据集为解决遥感应用中作物类型数据空间不平衡问题提供了新的…

将python项目打包成Windows后台服务

前文,我开发了一个基于windows11与本地deepseek实现的语音助手,之前是通过CMD直接执行项目的main.py文件。但是这样不适合移植,现在想将其生成一个exe文件,以及部署成windows的后台服务。 关于语音助手的开发与发布,可以看的CSDN文章:一个基于windows11与本地deepseek实…

yolov8复现

Yolov8的复现流程主要包含环境配置、下载源码和验证环境三大步骤&#xff1a; 环境配置 查看电脑状况&#xff1a;通过任务管理器查看电脑是否有独立显卡&#xff08;NVIDIA卡&#xff09;。若有&#xff0c;后续可安装GPU版本的pytorch以加速训练&#xff1b;若没有&#xff0…

Yocto项目实战教程 · 第4章:4.1小节元数据

&#x1f50d; B站相应的视频教程&#xff1a; &#x1f4cc; Yocto项目实战教程-第4章-4.1小节-元数据 记得三连&#xff0c;标为原始粉丝。 在嵌入式Linux系统构建中&#xff0c;Yocto项目凭借其高度模块化、可配置的特性成为主流工具。而其背后的关键支撑之一&#xff0c;便…

《AI大模型应知应会100篇》第23篇:角色扮演技巧:让AI成为你需要的专家

第23篇&#xff1a;角色扮演技巧&#xff1a;让AI成为你需要的专家 摘要 在当今人工智能快速发展的时代&#xff0c;大模型已经不仅仅是简单的问答工具&#xff0c;它们可以通过角色扮演技巧模拟各类专家身份&#xff0c;从而为用户提供更专业、更有针对性的服务。本文将深入探…

Windows系统安装RustDesk Server的详细步骤和客户端设置

Windows系统安装RustDesk Server的详细步骤 在Windows系统上安装RustDesk Server涉及几个关键步骤,包括安装必要的依赖、下载RustDesk Server程序、配置并启动服务。以下是详细的步骤: 1. 安装Node.js和PM2 RustDesk Server的某些版本可能需要Node.js环境来运行,而PM2是一…

如何实现一个构造函数继承另一个构造函数的属性和方法?给出ES5和ES6两种方式

在 JavaScript 中&#xff0c;构造函数继承可以通过 原型链 和 构造函数调用 实现。以下是 ES5 和 ES6 的实现方式&#xff1a; ES5 实现方式 关键步骤 继承实例属性&#xff1a;在子构造函数中调用父构造函数的 call/apply&#xff0c;绑定 this。继承原型方法&#xff1a;将…