MySQL 儲存程式之儲存過程

2021-09-10 18:10:14 字數 2944 閱讀 9667

1.儲存引擎簡介

是mysql的核心,一組軟體包括快取軟體,語法語義分析,解析的軟體等,不同的儲存引擎提供不同的儲存機制,索引技巧,鎖定水平等功能。可以根據不同的功能來設定不同的儲存引擎。

innodb:事務性資料庫的首選,執行安全性資料庫,行鎖定和外來鍵。

顯示支援的儲存引擎:show engines;

修改預設儲存引擎:my.ini -> default -storage-engine=innodb

在我的前面資料庫基礎章節章節中講到mysql的歷史,開始到4.0版本mysql使用的是myisam(起先叫isam),4.0開始支援innodb儲存引擎,而且後來被證明是對於mysql的最佳的事務儲存引擎(5.1版本開始支援事務管理),但是由於在當時即2023年先後經歷sun公司和oracle公司的收購,所以一直延遲到5.5版本才正式將innodb設定為預設的mysql儲存引擎(innodb已經被oracle早被oracle收購)。

2.常規用儲存引擎與比較
myisam,innodb,memory

innodb是事務型資料庫的首選,執行安全性資料庫,行鎖定和外來鍵。mysql5.5之後預設使用。

myisam插入速度和查詢效率較高,但不支援事務。

memory將表中的資料儲存在記憶體中,速度較快。

功能

myisam

memory

innodb

儲存限制

256tb

ram64tb

支援事務

nono

yes支援全文索引

yesno

no支援樹索引

yesyes

yes支援雜湊索引

noyes

no支援資料快取

non/a

yes支援外來鍵

nono

yes1.基本概念

一組儲存和執行在資料庫伺服器端的程式。儲存程式總是在伺服器的程序或者執行緒的記憶體中執行的。

2.儲存程式分類
儲存過程:有輸入輸出引數,可以執行一組sql指令。

儲存函式:有乙個返回值,可以對sql進行有效擴充套件。

觸發器:指事件響應,比如執行insert語句後執行另外乙個動作。

3.儲存程式
儲存於服務端的程式,一般在服務端的程序或者執行緒中執行

優缺點:

優點:效率上的提高,簡化開發

缺點:占用服務端資源,資料遷移時也要把這些儲存過程遷移過去。

1.無引數儲存過程
-- 查詢所有記錄

delimiter

// -- 定義結束標識

create

procedure sel_user(

)begin

select username from

user

;end

//;-- 呼叫

call sel_user(

)

2.帶引數儲存過程之按模式傳遞引數
引數的模式in, out, inout,預設是輸入模式,即in模式

eg1:in模式傳參
-- 根據員工編號來查詢名稱

delimiter

// -- 定義結束標識

create

procedure sel_name(eno int

)--eno int 是預設輸入的簡寫:in eno int

begin

select ename from mktest.emp where empno=eno;

end//;

-- 呼叫

call sel_name(

7788

)

eg2:inout模式傳參
delimiter

//;create

procedure sel_name3(

inout v_nj varchar(20

))begin

select job from mktest.emp where ename=v_nj;

end//;

-- 外部定義變數,檢視變數:select @job;

set@job

='smith'

;-- 呼叫

call sel_job(

@job

)

3.流程控制
delimiter

//create

procedure score(s int

)begin

declars v_level varchar(10

);-- 內部定義變數v_level

if s>

80then

set v_level=

'a';

-- 變數賦值

elseif s>=

60then

set v_level=

'b';

else

set v_level=

'c';

endif

select v_level -- 檢視變數的值

end//;

--呼叫

call score(80)

;

Mysql 之儲存過程

b 簡介 b mysql 儲存過程是從 mysql 5.0 開始逐漸增加新的功能。儲存過程可以提高資料庫的處理速度,同時也可以提高資料庫程式設計的靈活性。b 優點 b 1 儲存過程增強了sql語言的功能和靈活性。儲存過程可以用流控制語句編寫,有很強的靈活性,可以完成複雜的判斷和較複雜的運算。2 儲存...

mysql之儲存過程

mysql之儲存過程 儲存過程 注意 儲存過程名稱後面必須加括號,哪怕該儲存過程沒有引數傳遞 1.基本語法 create procedure sp name begin end修改命令結束符 delimiter 例 建立procedure create procedure myproce begin...

Mysql之儲存過程

1.進入到資料庫中檢視 是否有相關的儲存過程資料 show procedure status where db test 2.建立簡單的儲存過程 create procedure hi select hello 3.呼叫儲存過程 call hi 事例 三 mysql 儲存過程特點 建立 mysql ...