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指令。3.儲存程式儲存函式:有乙個返回值,可以對sql進行有效擴充套件。
觸發器:指事件響應,比如執行insert語句後執行另外乙個動作。
1.無引數儲存過程儲存於服務端的程式,一般在服務端的程序或者執行緒中執行
優缺點:
優點:效率上的提高,簡化開發
缺點:占用服務端資源,資料遷移時也要把這些儲存過程遷移過去。
2.帶引數儲存過程之按模式傳遞引數-- 查詢所有記錄
delimiter
// -- 定義結束標識
create
procedure sel_user(
)begin
select username from
user
;end
//;-- 呼叫
call sel_user(
)
引數的模式:in, out, inout,預設是輸入模式,即in模式eg1:in模式傳參
eg2:inout模式傳參-- 根據員工編號來查詢名稱
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
)
3.流程控制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
)
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 ...