網站首頁 編程語言 正文
創建SQL存儲過程需要使用到的語法
- 創建存儲過程
CREATE 存儲過程的名稱(參數)
BEGIN
...需要執行的SQL語句
END
- 調用
CALL 存儲過程的名稱(參數)
個人看法,這就是一個函數...
無參數
CREATE PROCEDURE p_student_select()
BEGIN
SELECT * FROM student;
END
CALL p_student_select()
帶參
# out其實就是cpp里的引用變量,in就是值傳遞
CREATE PROCEDURE p_count(OUT count int)
BEGIN
SELECT COUNT(*) into count FROM student;
END
set @num = 10; # 定義變量
CALL p_count(@num); #我的數據有11條
SELECT @num as num; #這里的num已經是11了
--這個就是一個調用參數的函數
CREATE PROCEDURE p_studnt_selectById(in id int)
BEGIN
SELECT * FROM student WHERE studentNo = id;
END
CALL p_studnt_selectById(4)
兩個參數
#兩個參數是一樣的用法
CREATE PROCEDURE p_result_test(out num int, in id int)
BEGIN
SELECT COUNT(*) INTO num FROM result WHERE studentNo = id;
END
set @num = 0;
CALL p_result_test(@num, 3);
SELECT @num as num
declare關鍵字的使用
# declare的作用是用來定義變量
CREATE PROCEDURE p5()
BEGIN
DECLARE studentName VARCHAR(10); #創建了一個變量
set @studentName = 'HELLO'; #給變量賦值
END
CALL p5();
SELECT @studentName
-- 說明了declare定義的變量可以在外部直接調用
IF語句
#if語句沒啥說的,代碼直接能看懂
CREATE PROCEDURE p6(in id int)
BEGIN
IF(id = 0) THEN
SELECT * FROM student;
ELSE
SELECT * FROM teacher;
END IF;
END
case語句
#看代碼...
CREATE PROCEDURE p7(in tab VARCHAR(10))
BEGIN
CASE tab
WHEN 'student' THEN
SELECT * FROM student;
WHEN 'teacher' THEN
SELECT * FROM teacher;
END CASE;
END
loop語句
CREATE PROCEDURE p9(IN id INT)
BEGIN
addloop: LOOP
set id = id + 1;
SELECT id;
IF id > 10 THEN
LEAVE addloop;
ELSE
SELECT * FROM student;
END IF;
END LOOP addloop;
END
repeat
CREATE PROCEDURE p10(in count int)
BEGIN
REPEAT
set count = count + 1;
SELECT count;
UNTIL count > 10 END REPEAT; #count >10跳出
END
while
CREATE PROCEDURE p11(in num int)
BEGIN
while num < 10 DO
SELECT num;
SET num = num + 1;
END WHILE;
END
原文鏈接:https://blog.csdn.net/ht_vIC/article/details/121372997
相關推薦
- 2022-10-08 如何在React項目中引入字體文件并使用詳解_React
- 2022-05-05 碎片拼接技術恢復XenServer服務器SQL?Server數據庫數據_XenServer
- 2024-01-13 SpringCloud Alibaba——Nacos1.x配置中心長輪詢機制
- 2022-03-25 如何使用postman(postman的使用方法詳解)
- 2022-03-20 C++學習筆記之類與對象詳解_C 語言
- 2022-04-21 Python?數據類型中的字符串和數字_python
- 2022-10-12 Android自定義View實現遙控器按鈕_Android
- 2022-08-31 python中ndarray數組的索引和切片的使用_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支