国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySql的存儲過程學習小結 附pdf文檔下載

2024-07-24 12:49:20
字體:
來源:轉載
供稿:網友
存儲過程是一種存儲在數據庫庫中的程序(就像正規(guī)語言里的子程序一樣),準確的來說,MySql支持的“routine(例程)”有兩種:一是我們說的存儲過程,二是在其它sql語句中可以返回值的函數(使用起來和mysql預裝載的函數一樣,如pi())。

一個存儲過程包括名字,參數列表,以及可以包括很多sql語句的sql語句集。在這里對局部變量,異常處理,循環(huán)控制和if條件語句有新的語法定義。

下面是一個包括存儲過程的實例聲明:
復制代碼 代碼如下:

CREATE PROCEDURE procedurel /*name 存儲過程名*/
(IN parameter1 INTEGER) /*parameters 參數*/
BEGIN /*start of blokc 語句塊頭*/
DECLARE variable1 CHAR(10); /*variables變量聲明*/
IF parameter1 = 17 THEN /*start of IF IF條件開始*/
SET variable1 = 'birds'; /*assignment賦值*/
END IF; /*end of IF IF結束*/
INSERT INTO table1 VALUES (variable1);/*statement SQL語句*/
END /*end of block 語句塊結束*/


MySQL 版本:5.0.45 phpMyAdmin版本:2.11.3
首先看MySQL 5.0參考手冊中關于創(chuàng)建存儲過程的語法說明:
CREATE
[DEFINER = { user | CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
proc_parameter:
[ IN | OUT | INOUT ] param_name type
type:
Any valid MySQL data type
characteristic:
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
routine_body:
Valid SQL procedure statement
如果你對MySQL還不太熟悉的話,單單看這個語法結構當然不足以進行MySQL存儲過程編程。我之前基本都是使用MS SQL SERVER,所以以下記錄我熟悉MySQL存儲過程的過程,也是重點介紹MS SQL SERVER與MySQL區(qū)別較大的地方。
第一步,當然是寫個Hello Word的存儲過程,如下:
復制代碼 代碼如下:

CREATE PROCEDURE phelloword()
BEGIN
SELECT 'Hello Word!' AS F;
END;

將上面創(chuàng)建phelloword存儲過程的語句拷到phpMyAdmin中執(zhí)行,報如下錯誤:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
在這個問題上我糾纏了很久,在MySQL的命令行工具中執(zhí)行同樣不成功,但是根據提示信息可以知道執(zhí)行在 SELECT 'Hello Word!' AS F;處結束,后面的END;沒有執(zhí)行,這顯然會導致錯誤。
這里需要選擇以個分隔符,語法如下:DELIMITER //
分隔符是通知MySQL客戶端已經輸入完成的符號。一直都是用“;”,但是在存儲過程中不行,因為存儲過程中很多語句都需要用到分號。
因此上面的存儲過程改為:
復制代碼 代碼如下:
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴安盟| 独山县| 铜陵市| 四会市| 盐山县| 仲巴县| 定日县| 崇阳县| 融水| 宝清县| 惠水县| 望谟县| 囊谦县| 手游| 固镇县| 金乡县| 洛南县| 邢台市| 浙江省| 晋宁县| 清新县| 辽宁省| 海口市| 日照市| 资兴市| 翼城县| 蒲江县| 土默特左旗| 南投县| 射洪县| 万全县| 玉林市| 临潭县| 桃源县| 稻城县| 万全县| 沂水县| 凤冈县| 磴口县| 漠河县| 南靖县|