存儲引擎就是指表格的類型,數據引擎決定了表在計算中的存儲方式。
mysql
mysql>show engines \G;
或者
sql
mysql>show variables like 'have%';
mysql>show variables like 'storage_engine';
優勢:支持事務處理、外鍵,支持崩潰修復能力和併發控制
數據庫
缺點:佔用空間較大,讀寫效率稍差
安全
優勢:處理速度快,佔用空間少
併發
缺點:不支持事務的完整性和併發性
函數
表格的全部數據存儲在內存中,內存出現異常會影響數據的完整性。
oop
優勢:數據存儲在內存中,處理速度很是快。
spa
缺點:安全性比較差,數據容易丟失,生命週期短。
code
MySQL的結束符默認的是 ';',改變結束符用關鍵字delimiter
orm
格式爲:DELIMITER+'更換符'
eg:將結束符改成'//', delimiter //
格式; create procedure 名稱()
begin
statement;
end;
eg: create procedure p()
begin
select * from t;
end;
調用存儲過程; call 名稱();
存儲過程當中的參數有三種類型: in,out,inout
形式:create procedure ([[in|out|inout]參數名稱 參數類型……])
in:輸入參數,表示該參數的值必須在調用的存儲過程時指定,在存儲過程當中修改該參數的值不能被返回,該參數爲初始值。
out:輸出參數,該值可在存儲過程內被改變,並可返回。
inout:輸入輸出參數,調用時指定,而且可被改變和返回。
變量聲明格式:declare variable_name[,variable_name……] datatype [default value];
其中,datatype爲MySQL數據類型:int float date varchar(length)…
a.變量賦值: 格式: set 變量名=表達式值
b.用戶變量
select name from mysql.proc where db='數據庫名稱';
或者
select routine_name from information_schema.routines where routine_schema='數據庫名稱';
或者
show procedure status where db='數據庫名稱';
存儲過程的詳細查詢:
show create procedure 數據庫.存儲過程名稱;
alter procedure
drop procedure 和刪除表格同樣
create function 函數名([參數名稱 參數類型...]) returns 返回類型
begin
statement;
end;
eg: create function getCount(n int)returns int
begin
declare var int;
set var=10;
return var+n;
end;
調用函數:select getSum(n); eg: select getCount(10);