存儲過程的相關學習

存儲引擎

    存儲引擎就是指表格的類型,數據引擎決定了表在計算中的存儲方式。
mysql

    1.查看MySql數據庫支持的存儲引擎

mysql>show engines \G;

     或者
sql

mysql>show variables like 'have%';

    2.查詢默認的存儲引擎

mysql>show variables like 'storage_engine';

InnoDB存儲引擎

    優勢:支持事務處理、外鍵,支持崩潰修復能力和併發控制
數據庫

    缺點:佔用空間較大,讀寫效率稍差
安全

MYISAM存儲引擎

    優勢:處理速度快,佔用空間少
併發

    缺點:不支持事務的完整性和併發性
函數

MEMORY存儲引擎

    表格的全部數據存儲在內存中,內存出現異常會影響數據的完整性。
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   和刪除表格同樣

    ⑥控制語句

        1)條件語句     if-then-else 語句
        2)case語句  
        3)循環語句
                a. while…end while
                b.repeat…until 條件  end repeat
                c.loop… end loop;
                d.labels 標號
        4)iterate迭代:經過引用符合語句的標號來從新開始符合語句。

建立MySQL函數命令

    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);     

相關文章
相關標籤/搜索