下面是mysql5.1儲存過程和函式的基本語法:
(1)儲存過程
create
[definer = ]
procedure sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
(2)函式
create
[definer = ]
function sp_name ([func_parameter[,...]])
returns type
[characteristic ...] routine_body
(3)引數說明
proc_parameter:[ in | out | inout ] param_name type
func_parameter:param_name type
type: any valid mysql data type
characteristic:
comment 'string'
| language sql
| [not] deterministic
| | sql security
routine_body:valid sql routine statement
(4)in\out\inout三種型別介紹
in:引數傳遞至儲存過程內部,儲存過程可能會修改該變數,但是當從儲存過程中返回時,並不會修改該引數,對caller不可見;
out:引數傳遞給儲存過程,其初始值為null,當從儲存過程返回時,該值對caller可見;
inout:引數傳遞給儲存過程,其初始值可以由caller設定,儲存過程中可以修改該變數,並且修改結果對caller看見;
(5)介紹乙個命令列定義簡單的儲存過程的流程:
mysql> delimiter //
mysql> create procedure ******proc (out param1 int)
-> begin
-> select count(*) into param1 from t;
-> end//
query ok, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> call ******proc(@a);
query ok, 0 rows affected (0.00 sec)
mysql> select @a;
+------+
| @a |
+------+
| 3 |
+------+
1 row in set (0.00 sec)
簡單的介紹上述語句:
delimiter // 我們將delimiter(定界符)從「;」變為「//」,可以使在儲存過程中的「;」,可以不被直譯器進行解析,從而可以傳遞給伺服器進行執行;
(7)簡單的介紹一下函式執行過程
mysql> create function hello (s char(20))
mysql> returns char(50) deterministic
-> return concat('hello, ',s,'!');
query ok, 0 rows affected (0.00 sec)
mysql> select hello('world');
+----------------+
| hello('world') |
+----------------+
| hello, world! |
+----------------+
1 row in set (0.00 sec)
簡單的介紹上述語句:
returns char(50) deterministic:定義了函式的返回型別
return concat():函式的返回語句,如果return的型別和returns定義返回的型別不同,會將其轉換為returns的型別,例如,returns型別是set或者enum,而return型別為integer,那麼會將其強制轉化為對應於set和enum對應的string
(8)routine_body:執行體,用begin和end包括,可以包括ddl語句,如create和drop等,還可以使用儲存過程以及transaction的commit語句;
(9)可以使用stored procedure來接受返回result set結果,而不能使用stored function;在routine中不能使用use,有implicit的use database的宣告;
MySQL 5 1 約束簡化
建立表的時候指定約束 primary key主鍵 notnull 非空default 123 預設 unique 唯一constraint fk cid foreign key lie2 references bookcategory category id 外來鍵 ondelete cascade...
MySQL 5 1 原始碼安裝
yum y install libaio ncurses tar zxf mysql 5.1.62.tar.gz cd mysql 5.1.62 a useradd g mysql mysqlgame b configure prefix usr local mysqlgame with chars...
MySql5 1參考手冊
1.關於mysql 2.安裝mysql 3.教程 4.mysql程式概述 5.資料庫管理 6.mysql中的複製 7.優化 8.客戶端和使用工具程式 9.語言結構 10.字符集支援 11.列型別 12.函式和操作符 13.sql語句語法 14.外掛程式是儲存引擎體系結構 15.儲存引擎和表型別 16...