關於某些人認為的Mysql 儲存過程

2021-09-14 04:08:32 字數 1200 閱讀 5847

我是乙隻斑馬

這篇部落格的**

簡單粗暴的認識mysql的儲存過程

sql部分

這裡的儲存過程很好理解,就是將平時寫的一條幾條sql語句封裝成乙個集合,以乙個名稱儲存作為乙個單元來處理.

優: 因為sql語句的執行需要幾個過程,這裡不仔細介紹,會包含語法檢查和編譯的過程,那麼使用儲存過程就可以將一些已經編譯好的sql語句儲存,在執行速度上就會快很多,而且可以儲存多條,在靈活性上就更好

create

[definer = ]

procedure sp_name([proc_parameter[...]])

[characteristic...] routine_body

proc_parameter:(可變引數型別)

[in|out|inout]

p_id是輸入引數的名稱不能和sql語句中的一樣

關於delimiter 的使用,大家可自行查詢,增強理解

-- 建立乙個儲存過程,作用:根據id刪除記錄,沒有返回值 

delimiter //

create procedure testname(in p_id int)

begin

delete from table where id = p_id;

end//

delimiter ;

-- 使用:刪除id為14的記錄

call testname(14);

-- 刪除(一般不容易修改)

drop procedure testname;

注意:into

-- 建立乙個儲存過程,作用:根據id刪除記錄,返回還剩餘的記錄數 

delimiter //

create procedure testname(in p_id int,out p_leftcounts int)

begin

delete from table where id = p_id;

select count(*) from table into p_leftcounts ;

end//

delimiter ;

-- 使用:刪除id為14的記錄

call testname(14,@a);

-- 檢視a的值

select @a;

mysql關於日期儲存的細節

mysql中的日期型別 如果 birthday date 採用date型別 插入語句 insert into student birthday values 19920506 沒問題 資料庫儲存的資料 1992 05 06 採用 insert into student birthday values...

MySQL 關於儲存過程的操作

儲存過程 一組為了完成特定功能的sql語句集 in 傳入引數 delimiter create procedure mysql in id int begin select from table name where id id end delimiter 其中in是傳進去的變數 drop proc...

mysql的儲存核心 關於mysql的2個核心引數

以上兩個引數是控制mysql磁碟寫入策略以及資料安全性的關鍵引數。innodb flush log at trx commit sync binlog 需要對資料安全性和寫入效能根據業務場景進行權衡設定。innodb flush log at trx commit引數 0 寫效能最好,但當mysql...