MySQL——流程控制

一、IF條件語句

語法

IF condition THENstatements;
ELSEIF condition THENstatements;
ELSEstatements;
END IF;

判斷成績等級

# 判斷成績等級
# 輸入學生的編號,取出學生的第一門課,然后判斷當前的課程的等級
drop procedure if exists p2;
delimiter $$
create procedure p2(in stuId int)
begin-- 定義局部變量declare myScore double default 0.0;declare myCname varchar(20);-- 查詢學生的成績select score,cname into myScore,myCnamefrom v4 where sid=stuIdorder by score desclimit 1;-- 根據局部變量做判斷if myScore>80 thenselect concat(myCname,'A') 課程情況;elseif myScore<80 and myScore>60 thenselect concat(myCname,'B') 課程情況;elseselect concat(myCname,'C') 課程情況;end if;
end$$
delimiter ;
?
-- 調用存儲過程
call p2(2);
調用SET @grade = '';
CALL a1(85.5, @grade);
SELECT @grade AS '成績等級';
?
SET @grade = '';
CALL a1(59.5, @grade);
SELECT @grade AS '成績等級';

二、CASE條件語句

CASE XWHEN condition1 THEN statements1WHEN condition2 THEN statements2...ELSE statements
END CASE;

根據性別返回稱呼

特性DECLARESET
用途聲明變量并定義類型為已聲明的變量賦值
位置BEGIN...END塊開始,其他語句之前變量聲明后的任意位置
語法DECLARE 變量名 數據類型 [DEFAULT 默認值];SET 變量名 = 值;
作用域局部(當前塊內)可操作局部變量和會話變量
功能限制只能聲明變量只能賦值,不能創建變量
drop procedure if exists p3;
delimiter $$
create procedure p3(in stuId int)
begin-- 定義名字和性別declare name varchar(20);declare gender varchar(20);-- 查詢select sname,ssex into name,genderfrom t_student where sid=stuId;-- 使用判斷case genderwhen '男' thenset gender = '小伙子';when '女' thenset gender = '小姑娘';elseset gender = '妖怪';end case;-- 輸出select name,gender;
end$$
delimiter ;
調用SET @title = '';
CALL a2(1001, @title);
SELECT @title AS '稱呼';
?
SET @title = '';
CALL a2(1003, @title);
SELECT @title AS '稱呼';

三、LOOP循環語句

[loop_label:] LOOPstatements;IF condition THENLEAVE [loop_label];END IF;
END LOOP [loop_label];

計算階乘

DELIMITER //
CREATE PROCEDURE a3(IN p_num INT, OUT p_result INT)
BEGINDECLARE i INT DEFAULT 1;SET p_result = 1;my_loop: LOOPSET p_result = p_result * i;SET i = i + 1;IF i > p_num THENLEAVE my_loop;END IF;END LOOP my_loop;
END //
DELIMITER ;
調用SET @result = 0;
CALL a3(5, @result);
SELECT @result AS '5的階乘';
?
SET @result = 0;
CALL a3(3, @result);
SELECT @result AS '3的階乘';

四、WHILE循環語句

[while_label:] WHILE condition DOstatements;
END WHILE [while_label];

打印數字

DELIMITER //
CREATE PROCEDURE a4(IN p_max INT)
BEGINDECLARE i INT DEFAULT 1;WHILE i <= p_max DOSELECT i AS '當前數字';SET i = i + 1;END WHILE;
END //
DELIMITER ;
調用CALL a4(3);

計算平均分

drop procedure if exists p6;
delimiter $$
create procedure p6()
begindeclare ns varchar(10) default '一二三四五六七八九十';declare name_length int default 2;declare name varchar(10) default '';declare idx int default 0;while char_length(name) < name_lengthdoset idx = floor(char_length(ns) * rand());set name = concat(name, substring(ns, idx, idx + 1));end while;select max(cid) + 1 into idx from t_course;insert into t_course(cid, cname, tid)values (idx, name, 1);
end$$
delimiter ;
?
call p6();
調用SET @avg_score = 0;
CALL a5(1001, @avg_score);
SELECT @avg_score AS '平均分';

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

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

相關文章

C# + Python混合開發實戰:優勢互補構建高效應用

文章目錄 前言&#x1f94f;一、典型應用場景1. 桌面應用智能化2. 服務端性能優化3. 自動化運維工具 二、四大技術實現方案方案1&#xff1a;進程調用&#xff08;推薦指數&#xff1a;★★★★☆&#xff09;方案2&#xff1a;嵌入Python解釋器&#xff08;推薦指數&#xff1…

MLflow 入門

官方主頁 MLflow | MLflow官方文檔 MLflow: A Tool for Managing the Machine Learning Lifecycle | MLflow 0. 簡介 MLflow 是一個開源平臺&#xff0c;專門為了幫助機器學習的從業者和團隊處理機器學習過程中的復雜性而設計。MLflow 關注機器學習項目的完整生命周期&#x…

【藍橋杯選拔賽真題101】Scratch吐絲的蜘蛛 第十五屆藍橋杯scratch圖形化編程 少兒編程創意編程選拔賽真題解析

目錄 scratch吐絲的蜘蛛 一、題目要求 1、準備工作 2、功能實現 二、案例分析 1、角色分析 2、背景分析 3、前期準備 三、解題思路 四、程序編寫 五、考點分析 六、推薦資料 1、scratch資料 2、python資料 3、C++資料 scratch吐絲的蜘蛛 第十五屆青少年藍橋杯s…

智譜最新模型GLM4是如何練成的

寫在前面 這篇博客將基于《ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools》,深入剖析 GLM-4 系列在**模型架構設計、預訓練、后訓練(對齊)、以及關鍵技術創新(如長上下文處理、Agent 能力構建)**等環節的實現邏輯與設計考量,帶你全面了…

第二屆電氣技術與自動化工程國際學術會議 (ETAE 2025)

重要信息 2025年4月25-27日 中國廣州 官網: http://www.icetae.com/ 部分 征稿主題 Track 1&#xff1a;電氣工程 輸配電、電磁兼容、高電壓和絕緣技術、電氣工程、電氣測量、電力電子及其應用、機電一體化、電路與系統、電能質量和電磁兼容性、電力系統及其自…

設備調試--反思與總結

最近回顧項目&#xff0c; 發現&#xff1a;在調試過程中最耽誤時間的可能不是技術難度&#xff0c;而是慣性思維&#xff1b; 例如&#xff1a; 我寫can通信濾波器的時候&#xff0c;可能是不過濾的&#xff1b;是接收所有的id報文&#xff0c;然后用業務邏輯過濾&#xff08…

C++項目:高并發內存池_下

目錄 8. thread cache回收內存 9. central cache回收內存 10. page cache回收內存 11. 大于256KB的內存申請和釋放 11.1 申請 11.2 釋放 12. 使用定長內存池脫離使用new 13. 釋放對象時優化成不傳對象大小 14. 多線程環境下對比malloc測試 15. 調試和復雜問題的調試技…

深度學習入門:神經網絡的學習

目錄 1 從數據中學習1.1 數據驅動1.2 訓練數據和測試數據 2損失函數2.1 均方誤差2.2 交叉熵誤差2.3 mini-batch學習2.4 mini-batch版交叉熵誤差的實現2.5 為何要設定損失函數 3 數值微分3.1 數值微分3.3 偏導數 4 梯度4.1 梯度法4.2 神經網絡的梯度 5 學習算法的實現5.1 2層神經…

【第45節】windows程序的其他反調試手段上篇

目錄 引言 一、通過窗口類名和窗口名判斷 二、檢測調試器進程 三、父進程是否是Explorer 四、RDTSC/GetTickCount時間敏感程序段 五、StartupInfo結構的使用 六、使用BeingDebugged字段 七、 PEB.NtGlobalFlag,Heap.HeapFlags,Heap.ForceFlags 八、DebugPort:CheckRem…

Golang|select

文章目錄 多路監聽超時控制 多路監聽 如果selcet外面沒有for循環&#xff0c;則只會監聽一次&#xff0c;要實現一直監聽的話要加for循環但是如果要設置退出條件的話&#xff0c;break語句只會退出這個select而不會退出for循環 select也可以有default&#xff0c;用于不用等cha…

無人機的群體協同與集群控制技術要點!

一、技術要點 通信技術 高效可靠的通信鏈路&#xff1a;無人機集群需要穩定、低延遲的通信網絡&#xff0c;以實現實時數據傳輸和指令交互。通信方式包括無線自組織網絡&#xff08;Ad Hoc&#xff09;、蜂窩網絡、衛星通信等&#xff0c;需根據任務場景選擇合適的通信技術。…

新手小白如何給個人電腦安裝Deepseek?

準備工作&#xff1a;Ollama安裝包、Chatbox安裝包 一、安裝Ollama 官網下載&#xff1a; 在 Windows 上下載 Ollama&#xff1a;https://ollama.com/download/windows 下載較慢&#xff0c;大家可以自行搜索資源下載&#xff0c;直接雙擊安裝即可。 安裝完畢后&#xff0c;…

Redis之RedLock算法以及底層原理

自研redis分布式鎖存在的問題以及面試切入點 lock加鎖關鍵邏輯 unlock解鎖的關鍵邏輯 使用Redis的分布式鎖 之前手寫的redis分布式鎖有什么缺點&#xff1f;&#xff1f; Redis之父的RedLock算法 Redis也提供了Redlock算法&#xff0c;用來實現基于多個實例的分布式鎖。…

【控制學】控制學分類

【控制學】控制學分類 文章目錄 [TOC](文章目錄) 前言一、工程控制論1. 經典控制理論2. 現代控制理論 二、生物控制論三、經濟控制論總結 前言 控制學是物理、數學與工程的橋梁 提示&#xff1a;以下是本篇文章正文內容&#xff0c;下面案例可供參考 一、工程控制論 1. 經典…

Android 15 中 ApnPreferenceController 的 onStart 和 onStop 調用失效

背景 AOSP對APN入口(Access Point Name)實現中,overried了 onStart 和 onStop ,但實際執行中根本不會進入這兩個接口的邏輯。 Q:MobileNetworkSettings (APN入口Preference所在的界面Fragement承載,TAG是NetworkSettings)的生命周期和ApnPreference 有什么關系? Not…

React 在組件間共享狀態

在組件間共享狀態 有時候&#xff0c;你希望兩個組件的狀態始終同步更改。要實現這一點&#xff0c;可以將相關 state 從這兩個組件上移除&#xff0c;并把 state 放到它們的公共父級&#xff0c;再通過 props 將 state 傳遞給這兩個組件。這被稱為“狀態提升”&#xff0c;這…

階段性使用總結-通義靈碼

序言 前段時間用通義靈碼&#xff0c;參加了下數字中國閩江流域的比賽。https://www.dcic-china.com/competitions/10173 最后成績一般般&#xff0c;106名&#xff0c;大概有2000多人參加這題目&#xff0c;估計有一堆小號。 按照下面這個思路建模的&#xff0c;迭代了大概15…

游戲引擎學習第228天

對上次的內容進行回顧&#xff0c;并為今天的開發環節做鋪墊。 目前大部分功能我們已經完成了&#xff0c;唯一剩下的是一個我們知道存在但目前不會實際觸發的 bug。這個 bug 的本質是在某些線程仍然訪問一個已經被銷毀的游戲模式&#xff08;mode&#xff09;之后的狀態&…

游戲測試入門知識

高內聚指的是一個模塊或組件內部的功能應該緊密相關。這意味著模塊內的所有元素都應該致力于實現同一個目標或功能&#xff0c;并且該模塊應當盡可能獨立完成這一任務。 低耦合則是指不同模塊之間的依賴程度較低&#xff0c;即一個模塊的變化對其它模塊造成的影響盡可能小。理…

L1-2 種鉆石

題目 2019年10月29日&#xff0c;中央電視臺專題報道&#xff0c;中國科學院在培育鉆石領域&#xff0c;取得科技突破。科學家們用金剛石的籽晶片作為種子&#xff0c;利用甲烷氣體在能量作用下形成碳的等離子體&#xff0c;慢慢地沉積到鉆石種子上&#xff0c;一周“種”出了一…