Mysql那些事兒之(十二)存儲過程

Mysql那些事兒之(十二)存儲過程

 

相關鏈接:

Mysql那些事兒之(一)mysql的安裝

/database/201210/162314.html;

Mysql那些事兒之(二)有關數據庫的操作

/database/201210/162315.html;

Mysql那些事兒之(三)有關數據表的操作

/database/201210/162316.html;

Mysql那些事兒之(四)數據表數據查詢操作

/database/201210/162317.html;

Mysql那些事兒之(五)操作時間

/database/201210/162318.html;

Mysql那些事兒之(六)字符串模式匹配

/database/201210/163969.html;

Mysql那些事兒之(七)深入select查詢

/database/201210/163970.html;

Mysql那些事兒之(八)索引

/database/201210/163971.html;

Mysql那些事兒之(九)常用的函數

/database/201210/164229.html;

Mysql那些事兒之(十)觸發器一

/database/201210/164516.html

Mysql那些事兒之(十一)觸發器二

/database/201210/164766.html

 

存儲過程是經過編譯之後存放在數據庫中的sql語句集合。

存儲過程怎麼寫

看例子:

存儲過程的語法

  www.aiwalls.com  

Sql代碼  

create procedure proc_name (proc_peremeter1,…..)  –存儲過程名稱和參數  

[characteristic ….]   

routine_body  –存儲過程   

調用存儲過程的語法

Sql代碼  

call proc_name  –調用存儲過程  

示例 創建存儲過程

當然創建存儲過程之前先建立相關的表,為瞭學習隻建立一個簡單的表結構;

Sql代碼  

CREATE TABLE filmall (  

  id smallint(5) NOT NULL,  

  film_id smallint(6) NOT NULL,  

  name varchar(40) DEFAULT NULL,  

  store_id smallint(6) NOT NULL,  

  txt text,  

  PRIMARY KEY (`id`)  

) ;    www.aiwalls.com  

在數據表裡插入數據。

寫一個簡單的存儲過程:

Sql代碼  

–存儲過程的名稱為proc_film_store,參數為3個:前面兩個為輸入,後面一個為輸出  

Sql代碼  

delimiter $$  

Sql代碼  

create procedure proc_film_store (IN p_film_id INT,IN p_store_id INT,OUT p_film_count INT)  

BEGIN  

SELECT txt FROM filmall WHERE film_id = p_film_id AND store_id = p_store_id;  

SELECT FOUND_ROWS() INTO p_film_count;  –將條數放入變量中  

END $$  

Sql代碼  

delimiter ;  

 現在就可以調用存儲過程瞭。

Sql代碼  

call proc_film_store(1,1,@a);—輸入參數  

–執行完之後會輸出查詢出來的數據  

    www.aiwalls.com  

–輸出查詢到的條數  

select @a;  

 存儲過程就OK瞭。

Sql代碼  

–還有一點要說明的是,書寫存儲過程時,一般會用到如下命令  

–書寫存儲過程之前,改變結束符  

delimiter $$  –這個語句的意思是將結尾符;替換為$$  

–寫完存儲過程之後,再將結束符改回來  

delimiter ;  

 

發佈留言