SQL一些關于存儲過程和使用的總結

存儲過程:數據庫里的 "定制工具箱"

存儲過程就像一個裝滿工具的箱子,你需要什么功能,就調用對應的工具。它是用 SQL 語句寫好的一段程序,存儲在數據庫里,隨時可以調用。

創建存儲過程 就像在工具箱里放新工具。比如,我們創建一個計算學生總分的存儲過程:

delimiter //
create procedure p_calAvg()
BEGINselect name, chinese + math + english as total from exam;
END //
delimiter ;

delimiter // 是在告訴數據庫,我們暫時不用普通的分號 ; 結束語句,而是用 //,這樣就能完整地創建存儲過程啦!創建完成后別忘了用 delimiter ; 把分號變回來哦。

調用存儲過程 就像從工具箱里拿出工具用:

call p_calAvg();

存儲過程能減少網絡傳輸,提高性能,就像把常用工具放在手邊,隨用隨取。

變量:數據庫里的 "小紙條"

在 MySQL 里,變量就像小紙條,把數據暫時記在上面,之后再用。

系統變量:數據庫自帶的 "便簽"

系統變量是數據庫自己準備好的便簽,分為全局(所有用戶都能看)和會話(只給自己看)兩種:

  • 查看系統變量:SHOW VARIABLES LIKE 'character_set_server';

  • 設置系統變量:SET GLOBAL character_set_server = 'utf8mb4';

用戶自定義變量:你的專屬 "記事本"

你可以自己創建變量來保存臨時數據:

SET @var_name = 123;  -- 賦值
SELECT @var_name;    -- 使用

局部變量:存儲過程里的 "便簽條"

在存儲過程里,變量只能在過程里用,像這樣:

DECLARE var_name INT DEFAULT 0;

變量能幫你保存中間結果,方便后續操作,就像做數學題時先把步驟記下來,最后再算出答案。

SQL 編程:讓數據庫學會 "思考"

SQL 也能像編程一樣,根據條件做不同操作,甚至循環執行,就像給數據庫裝上了 "聰明大腦"。

條件語句:數據庫的 "選擇題"

IF 語句 就像給數據庫出選擇題:

IF score >= 90 THENSET grade = 'A';
ELSEIF score >= 60 THENSET grade = 'B';
ELSESET grade = 'C';
END IF;

CASE 語句 像更靈活的選擇題,有兩種寫法:

  • 簡單 CASE:CASE var_name WHEN 1 THEN 'A' WHEN 2 THEN 'B' ELSE 'C' END

  • 搜索結果 CASE:CASE WHEN score >= 90 THEN 'A' WHEN score >= 60 THEN 'B' ELSE 'C' END

循環語句:數據庫的 "重復播放"

WHILE 循環 像設置個條件,滿足就一直執行:

WHILE i <= 10 DOSET sum = sum + i;SET i = i + 1;
END WHILE;

REPEAT 循環 則是先執行,再判斷是否繼續:

SET i = 0;
REPEATSET sum = sum + i;SET i = i + 1;
UNTIL i > 10
END REPEAT;

LOOP 循環 像個簡單的重復播放,配合 LEAVE(跳出循環)和 ITERATE(繼續循環):

outer_loop: LOOPINNER LOOP: LOOPIF i > 5 THENLEAVE outer_loop;END IF;SET i = i + 1;ITERATE INNER LOOP;END LOOP;
END LOOP;

游標:數據的 "快遞員"

游標能把查詢結果一行行地送過來,方便你逐個處理:

  1. 聲明游標:DECLARE cursor_name CURSOR FOR select...

  2. 打開游標:OPEN cursor_name;

  3. 獲取數據:FETCH cursor_name INTO var_name1, var_name2;

  4. 關閉游標:CLOSE cursor_name;

條件處理程序:數據庫的 "安全員"

條件處理程序能幫數據庫應對各種異常情況,就像給它配了個安全員:

DECLARE CONTINUE HANDLER FOR SQLEXCEPTIONSET error_count = error_count + 1;

存儲函數:數據庫的 "小助手"

存儲函數就像數據庫的小助手,能返回計算結果:

CREATE FUNCTION Fun(n INT) RETURNS INT DETERMINISTIC
BEGINDECLARE total INT DEFAULT 0;WHILE n > 0 DOSET total = total + n;SET n = n - 1;END WHILE;RETURN total;
END

調用時直接用 SELECT Fun(10); 就能拿到結果啦!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/89570.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89570.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89570.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

springCloud -- 微服務01

目錄 一、認識微服務 1.單體架構 2.微服務 3.SpringCloud 二、微服務拆分 1.服務拆分原則 2.服務調用 3. RestTemplate 三、服務注冊和發現 1. 注冊中心原理 2. 服務發現 2.1 服務注冊 2.2 服務發現 四、OpenFeign 一、認識微服務 1.單體架構 單體架構就是整個項目中所有功能…

Deep Multi-scale Convolutional Neural Network for Dynamic Scene Deblurring 論文閱讀

用于動態場景去模糊的深度多尺度卷積神經網絡 摘要 針對一般動態場景的非均勻盲去模糊是一個具有挑戰性的計算機視覺問題&#xff0c;因為模糊不僅來源于多個物體運動&#xff0c;還來源于相機抖動和場景深度變化。為了去除這些復雜的運動模糊&#xff0c;傳統的基于能量優化的…

PDF 拆分合并PDFSam:開源免費 多文件合并 + 按頁碼拆分 本地處理

各位打工人和學生黨們&#xff0c;你知道嗎&#xff0c;處理PDF文件簡直是咱們的日常噩夢啊&#xff0c;尤其是遇到要合并好幾個文件&#xff0c;或者從中摳幾頁出來的時候&#xff0c;簡直頭大如斗&#xff01;今天給你們安利一個神仙工具&#xff0c;PDFSam&#xff0c;聽我的…

AI產品經理面試寶典第32天:AI+工業場景落地核心問題與應答策略

一、AI+工業落地價值怎么答? 面試官:AI在工業領域能創造哪些核心價值?請用具體案例說明 你的回答: AI在工業領域創造價值的底層邏輯是"數據閉環"。以阿里云ET工業大腦為例,通過采集生產線3000+傳感器數據,構建出影響良品率的60個關鍵變量模型。當數據流經AI…

【09】MFC入門到精通——MFC 屬性頁對話框的 CPropertyPage類 和 CPropertySheet 類

文章目錄九、屬性頁對話框的類CPropertyPage類 和 CPropertySheet 類。9.1 CPropertyPage 類&#xff08;1&#xff09;構造函數&#xff08;2&#xff09;CancelToClose()函數&#xff08;3&#xff09;SetModified()函數&#xff08;4&#xff09;可重載函數9.2 CPropertyShe…

Python學習筆記4

時間:2025.7.18學習內容&#xff1a;【語法基礎】if判斷、比較運算符與邏輯運算符一、if判斷if判斷基本格式&#xff1a;if要判斷的條件&#xff0c;條件成立時要做的事情注意&#xff1a;input內默認存儲的是字符串age17 if age<18:print(未成年不能上網) scoreinput(你的成…

20250718-2-Kubernetes 應用程序生命周期管理-Pod對象:基本概念(豌豆莢)_筆記

二、Kubernetes應用程序生命周期管理&#xfeff;1. 課程內容概述主要內容&#xff1a;Pod資源共享實現機制管理命令應用自修復&#xff08;重啟策略健康檢查&#xff09;環境變量Init container靜態Pod2. Pod對象介紹&#xfeff;1&#xff09;Pod基本概念&#xfeff;&#x…

為Notepad++插上JSON格式化的翅膀

文章目錄概要安裝步驟效果展示概要 JSMinNPP.dll 是一個 Notepad 插件&#xff0c;用于壓縮 JavaScript 代碼和格式化JSON字符床。以下是安裝和使用的詳細步驟&#xff1a; 安裝步驟 下載 JSMinNPP.dll 插件 https://pan.quark.cn/s/73dd0ac225be 放置 DLL 文件 打開 Notepa…

STM32-第七節-TIM定時器-3(輸入捕獲)

一、簡介&#xff1a;1.名稱&#xff1a;IC&#xff0c;輸入捕獲2.電路&#xff1a;如圖為通用定時器框圖&#xff0c;下半部分的左半模塊&#xff0c;與輸出比較部分共用捕獲/比較寄存器與引腳。3.功能&#xff1a;當通道輸入引腳出現電平跳變時&#xff0c;當前CNT的值&#…

Console 納管 Elasticsearch 9(二):日志監控

前面介紹過 INFINI Console 納管 Elasticsearch 9&#xff08;一&#xff09;&#xff0c;進行指標監控、數據管理、DSL 語句執行&#xff0c;但日志監控功能需要結合 Agent 才能使用。現在來實現一下&#xff1a; Agent 需要和 ES 部署到同一機器上&#xff0c;這里是在我本地…

實訓十——路由器與TCP/IP模型

補充拓撲圖&#xff08;交換機串聯通信&#xff09;電腦A——交換機S1——交換機S2——電腦B問&#xff1a;A和B如何通信&#xff1f;首先A會將通信的數據封裝好&#xff0c;將源端口、目標端口&#xff0c;源地址、目標地址&#xff0c;源MAC、目標MAC封裝起來&#xff0c;但是…

【Android】ViewBinding(視圖綁定)

一、什么是ViewBindingViewBinding是Android Studio 3.6推出的新特性&#xff0c;旨在替代findViewById(內部實現還是使用findViewById)。通過ViewBinding&#xff0c;可以更輕松地編寫可與視圖交互的代碼。在模塊中啟用ViewBinding之后&#xff0c;系統會為該模塊中的每個 XML…

泛型與類型安全深度解析及響應式API實戰

一、泛型通配符&#xff1a;靈活與安全的平衡術 在Java動物收容所系統中&#xff0c;我們常需要處理不同動物類型的集合。通過泛型通配符&#xff0c;可以構建更靈活的API&#xff1a; class Shelter<T extends Animal> {private List<T> animals new ArrayList&l…

Cookie 與 Session概述

在 Web 開發中&#xff0c;會話跟蹤是一個核心問題。HTTP 協議是無狀態的&#xff0c;這意味著服務器無法直接記住客戶端的狀態。而 Cookie 和 Session 技術的出現&#xff0c;正是為了解決這一難題。一、Cookie概述Cookie&#xff0c;翻譯成中文是小甜點、小餅干的意思。在 HT…

阿里云alicloud liunux3-安裝docker

你這個錯誤&#xff1a;Curl error (35): SSL connect error for https://download.docker.com/linux/centos/8/x86_64/stable/... Error: Failed to download metadata for repo docker-ce-stable: Yum repo downloading error說明你的機器訪問 download.docker.com 的 HTTPS …

【世紀龍科技】汽車故障診斷與排除仿真教學軟件

在汽車產業智能化、電動化轉型加速的今天&#xff0c;汽車維修行業對技術人才的要求已從傳統經驗型向“理論實踐數字化”復合型轉變。然而&#xff0c;實車實訓成本高、安全隱患大、教學場景受限等問題&#xff0c;始終制約著職業教育的高質量發展。江蘇世紀龍科技有限公司立足…

柴油機活塞cad【4張】三維圖+設計說明書

1015柴油機活塞結構設計及溫度場分析 摘 要 隨著科研的進步&#xff0c;內燃機技術得到了快速的發展&#xff0c;低排放高效率的內燃機的發展成為內燃機發展的主要趨勢&#xff0c;活塞作為內燃機的主要組成部件&#xff0c;在內燃機中扮演著至關重要的作用。活塞在內燃機中始終…

雪豹大模型驅動效率革命 華鼎冷鏈科技重構餐飲供應鏈神經網絡

當餐飲行業的開店率高達67.5%、閉店率達61.2%時&#xff0c;供應鏈該如何進行革新與升級&#xff1f; 在鄭州盛大啟幕的第三屆中國火鍋燒烤領潮峰會上&#xff0c;華鼎冷鏈科技CEO王君以“AI驅動智慧供應鏈賦能餐飲行業新升級”為主題分享時稱&#xff0c;當前餐飲行業高閉店率…

汽車功能安全 -- TC3xx外部看門狗

之前聊過TC3xx SMU關于內部看門狗&#xff08;CPU Watchdog 和Safety Watchdog&#xff09;Alarm的處理方法。 汽車功能安全--TC3xx SMU之看門狗alarm處理 在里面我們提到了這些Alarm關聯的功能安全機制&#xff1a; SM[HW]:SCU:ENDINIT_WATCHDOG SM[HW]:SCU:SAFETY_WATCHD…

如何為“地方升學導向型”語校建模?Prompt 框架下的宇都宮日建工科專門學校解析(7 / 500)

如何為“地方升學導向型”語校建模&#xff1f;Prompt 框架下的宇都宮日建工科專門學校解析&#xff08;7 / 500&#xff09; 系列說明 500 所日本語言學校結構化建模實戰&#xff0c;第 7 篇。每篇拆解 1 所學校在 Prompt-QA 系統中的建模策略&#xff0c;分享工程經驗&#x…