程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql存儲過程教程

mysql存儲過程教程

編輯:關於MYSQL數據庫
MySQL存儲過程實例教程

  實例:MySQL存儲過程的創建

  實例說明

  為了保證數據的完整性、一致性,提高應用的性能,常采用存儲過程技術。MySQL 5.0之前的版本並不支持存儲過程,隨著MySQL技術的日趨完善,存儲過程將在以後的項目中得到廣泛的應用。本實例將介紹在MySQL 5.0以後的版本中創建存儲過程。

  MySQL存儲過程-技術要點

  一個存儲過程包括名字、參數列表,以及可以包括很多SQL語句的SQL語句集。下面為一個存儲過程的定義過程: create procedure proc_name (in parameter integer)begindeclare variable varchar(20);if parameter=1 thenset variable='MySQL';elseset variable='PHP';end if;insert into tb (name) values (variable);end;

  MySQL中存儲過程的建立以關鍵字create procedure開始,後面緊跟存儲過程的名稱和參數。MySQL的存儲過程名稱不區分大小寫,例如PROCE1()和proce1()代表同一個存儲過程名。存儲過程名不能與MySQL數據庫中的內建函數重名。

  存儲過程的參數一般由3部分組成。第一部分可以是in、out或inout。in表示向存儲過程中傳入參數;out表示向外傳出參數;inout表示定義的參數可傳入存儲過程,並可以被存儲過程修改後傳出存儲過程,存儲過程默認為傳入參數,所以參數in可以省略。第二部分為參數名。第三部分為參數的類型,該類型為MySQL數據庫中所有可用的字段類型,如果有多個參數,參數之間可以用逗號進行分割。

  MySQL存儲過程的語句塊以begin開始,以end結束。語句體中可以包含變量的聲明、控制語句、SQL查詢語句等。由於存儲過程內部語句要以分號結束,所以在定義存儲過程前應將語句結束標志“;”更改為其他字符,並且該字符在存儲過程中出現的幾率也應該較低,可以用關鍵字delimiter更改。例如: MySQL>delimiter //

  存儲過程創建之後,可用如下語句進行刪除,參數proc_name指存儲過程名。 drop procedure proc_name

  MySQL存儲過程-實現過程

  (1)MySQL存儲過程是在“命令提示符”下創建的,所以首先應該打開“命令提示符”窗口。

  (2)進入“命令提示符”窗口後,首先應該登錄MySQL數據庫服務器,在“命令提示符”下輸入如下命令:

  MySQL –u用戶名 –p用戶密碼

  (3)更改語句結束符號,本實例將語句結束符更改為“//”。代碼如下:

  delimiter //

  (4)創建存儲過程前應首先選擇某個數據庫。代碼如下:

  use 數據庫名

  (5)創建存儲過程。

  (6)通過call語句調用存儲過程。

  實例的關鍵技術是如何創建傳入參數的存儲過程,具體實現代碼如下: delimiter //create procedure pro_reg (in nc varchar(50), in pwd varchar(50), in email varchar(50),in address varchar(50))begininsert into tb_reg (name, pwd ,email ,address) values (nc, pwd, email, address);end;//

  “delimiter //”的作用是將語句結束符更改為“//”。

  “in nc varchar(50)……in address varchar(50)”表示要向存儲過程中傳入的參數。

  與其他的大型數據庫例如Oracle   DB2SQL Server等相比,MySQL自有它的不足之處,如規模小、功能有限(MySQL Cluster的功能和效率都相對比較差)等,但是這絲毫也沒有減少它受歡迎的程度。以上MySQL存儲過程教程希望對大家有幫助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved