數據庫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.pswp.cn/news/901816.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901816.shtml
英文地址,請注明出處:http://en.pswp.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;將…