mysql 儲存過程基礎 MySQL基礎 儲存過程

2021-10-19 18:25:56 字數 953 閱讀 1276

儲存過程

定義:將一批為了完成特定功能的sql語句集,根據傳入的引數(也可沒有),呼叫,完成單個sql語句更複雜的功能

儲存過程思想很簡單,就是sql語句層面上的**封裝和重用

優點:1) 可封裝,並隱藏複雜的業務邏輯;2) 可回傳值,且可接受引數

缺點:因支援的程式語言不通,效能調校和撰寫,受限於各種資料庫系統

建立儲存過程示例

delimiter $$

-- 建立儲存過程

create procedure p_user(

int m int,-- in 表示該引數是傳入引數,不能當作返回值

int n int,

out res int-- out 表示該引數是返回引數,只能作為返回值,不用於接收

-- inout 表示既可以接收傳入的值也可以當作返回值

begin

select username from user_info where uid between m and n;

set res=0;

end $$

delimiter ;

-- 1.在mysql中呼叫

set @res=10

call p_user(2,4,10); -- 該語句報錯

call p_user(2,4,@res) -- 正確的呼叫方式

select @res; -- 執行成功,@res變數的值發生改變

-- 2.在python中呼叫

pymysql連線mysql

獲取到游標物件cursor

通過游標物件cursor.callproc('p_user',(2,4,10))

# 引數內部原理:@_p_user_0=2,@_p_user_1=4,@_p_user_2=10

游標物件cursor.execute('select @_p_user_2;')

# 如果值發生改變,說明執行成功

Mysq 儲存過程

drop procedure if exists xl 建立儲存過程 delimiter 轉譯字元 使用 代替 create procedure xl begin select from fd car report end delimiter 轉譯字元 使用 代替 call xl 呼叫儲存過程 de...

mysql儲存過程基礎

delimiter create procedure ss in x1 int begin insert into pro id values x1 end delimiter call ss 1004 檢視 方法一 直接查詢,比較實用,檢視當前自定義的儲存過程 select specific na...

MYSQL基礎十 儲存過程

mysql命令的執行流程 sql語句 mysql引擎 分析 語法正確 可識別命令 執行 執行結果 返回 儲存過程是sql語句和控制語句的預編譯集合,以乙個名稱儲存並作為乙個單元處理。儲存過程的意義在於省略了分析和識別命令的過程,直接得到結果。因此大大的節省了編譯時間。效率是很高的。儲存過程的優點 增...