MySQL_MySQL存儲過程(重要)

引入:

        我們要實現對數據庫表的一個操作,實現這一個需要使用多條SQL語句進行操作。同時,這樣的操作在我的程序中是使用比較頻繁的。回想我們以前學習java的時候。我們需要需要完成一個特定的功能,而這一個功能使用的頻率比較多。那麼這一個時候我們是選用了把實現的代碼抽取出來,寫成一個方法,每當我需要實現這一個功能的時候就去調用這一個方法即可。那麼在數據庫中有沒有類似的操作呢?可以實現對一些特定的功能實現類似方法的操作?那麼就是存儲過程。

存儲過程概述

存儲過程概述

1.概述
  所謂的存儲過程就是一組預先編譯好的SQL語句的集合,理解成批處理語句。

2.使用存儲過程的好處
  (1)、提高代碼的重用性。
  (2)、簡化操作。
  (3)、減少了編譯次數並且減少了和數據庫服務器的連接次數,提高了效率。

 存儲過程創建

存儲過程的創建

1.創建存儲過程語法:
  CREATE PROCEDURE 存儲過程名(參數列表)
  BEGIN
	存儲過程體(一組合法的SQL語句)
  END


2.創建過程注意事項

(1)、參數列表包含三部分
參數模式  參數名   參數類型
如:
in       stuname  varchar(20)

參數模式:
in:該參數可以作爲輸入,也就是該參數需要調用方傳入值
out:該參數可以作爲輸出,也就是該參數可以作爲返回值
inout:該參數既可以作爲輸入又可以作爲輸出,也就是該參數既需要傳入值,又可以返回值

(2)、使用注意事項

A:如果存儲過程體僅僅只有一句話,begin end可以省略。

B:存儲過程體中的每條sql語句的結尾要求必須加分號。

C 存儲過程的結尾可以使用 delimiter 重新設置
  語法:
  delimiter 結束標記
  如:
  delimiter $

存儲過程的調用

存儲過程的調用:

CALL 存儲過程名(實參列表);

類似於方法的調用。

存儲過程使用測試

1. 空參列表,存儲多條記錄(實際存儲過程在存儲多條記錄效果更佳),創建以及調用

創建測試使用數據庫表 

DROP TABLE IF EXISTS `admin`;

CREATE TABLE `admin` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(10) NOT NULL,
  `password` varchar(10) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

創建存儲過程並調用 

 

 2.參數模式的基本使用,如使用帶'in'模式參數的存儲過程,傳入參數,找出其對應的值

表beauty

表boys 

創建存儲過程並調用 

 

 3.out 模式參數的存儲過程,實現結果以及數據庫表如2

 

 4.創建帶inout模式參數的存儲過程,實現傳入a和b兩個值,最終a和b都翻倍並返回

 

存儲過程的刪除操作

刪除存儲過程語法

語法:drop procedure 存儲過程名;

如:刪除存儲過程myp1;

 

查看存儲過程的相關信息

查看存儲過程的信息

語法:SHOW CREATE PROCEDURE  存儲過程名稱;

如:查看myp1存儲過程的相關信息

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章