首页
/
每日頭條
/
生活
/
mysql存儲過程與存儲函數
mysql存儲過程與存儲函數
更新时间:2025-01-02 12:02:06

案例所涉及到的表如下:

CREATE TABLE `t_goods` (

`g_id` varchar(20) NOT NULL COMMENT '商品編号',

`g_name` varchar(30) DEFAULT NULL COMMENT '商品名稱',

`g_price` float DEFAULT NULL COMMENT '商品價格',

`g_discount` float DEFAULT NULL COMMENT '折扣價格',

`g_star` int(11) DEFAULT NULL COMMENT '顧客評分(1:一星2:二星依次類推)',

`g_author` varchar(10) DEFAULT NULL COMMENT '作者',

`g_press` varchar(50) DEFAULT NULL COMMENT '出版社',

`g_publish_time` varchar(12) DEFAULT NULL COMMENT '出版時間(格式2019-12-12)',

`g_img_path` varchar(100) DEFAULT NULL COMMENT '商品圖片所在路徑',

`g_desc` varchar(500) DEFAULT NULL COMMENT '内容概述',

`g_number` int(11) DEFAULT NULL COMMENT '商品的數量',

PRIMARY KEY (`g_id`)

) ENGINE=MyISAM DEFAULT CHARSET=gb2312;

部分參考數據如下:

mysql存儲過程與存儲函數(MySQL存儲過程的使用總結)1

一、MySQL存儲過程的創建

建立個存儲過程,将商品編号g_id=’ hadoop_001’這本書的價格加10元,并顯示結果。實現過程如下:

DELIMITER//

CREATE PROCEDURE add_price()

BEGIN

UPDATE t_goods SET g_price = g_price 10 WHERE g_id='hadoop_001' ;

SELECT * FROM t_goods;

END;

//

CALL add_price()

二、MySQL存儲過程的參數

分别建立個帶參數in、out、inout的存儲過程:

1、帶in的參數

DELIMITER//

CREATE PROCEDURE demo_in(IN p_in INT)

BEGIN

SELECT p_in;

SET p_in=2;

SELECT p_in;

END;

//

SET @p_in=1

CALL demo_in(@p_in)

CALL demo_in(100)

2、帶out參數

DELIMITER//

CREATE PROCEDURE demo_out(OUT p_out INT)

BEGIN

SELECT p_out;

SET p_out=2;

SELECT p_out;

END;

//

SET @p_out=1

CALL demo_out(@p_out) /*未被定義,返回為null */

SELECT @p_out; /*返回為2 */

3、帶inout

DELIMITER//

CREATE PROCEDURE demo_inout(INOUT p_inout INT)

BEGIN

SELECT p_inout;

SET p_inout=2;

SELECT p_inout;

END;

//

DELIMITER

SET @p_inout=1

CALL demo_inout(@p_inout)

SELECT @p_inout;

三、MySQL存儲過程的選擇結構

使用選擇結構判斷如果商品編号是hadoop_001,則輸出其商品名稱。實現過程參考如下:

DELIMITER//

CREATE PROCEDURE goods_demo1()

BEGIN

DECLARE v1 VARCHAR(20);

DECLARE v2 VARCHAR(20);

SELECT g_id,g_name INTO v1,v2 FROM t_goods WHERE g_id='hadoop_001';

IF v1='hadoop_001' THEN

SELECT v2;

END IF;

END;

//

CALL goods_demo1()

四、MySQL存儲過程的循環結構練習

使用循環結構實現1 2 3 … 100 = ? ,實現過程如下:

DELIMITER //

CREATE PROCEDURE while_demo()

BEGIN

DECLARE i INT;

DECLARE _sum INT;

SET i=0;

SET _sum=0;

WHILE i<=100 DO

SET _sum=_sum i;

SET i=i 1;

END WHILE;

SELECT _sum;

END ;

//

CALL while_demo()

結果為:

mysql存儲過程與存儲函數(MySQL存儲過程的使用總結)2

五、MySQL存儲過程的CASE分支語句

建立個存儲過程,參數是訂單狀态pay_status ,其值為整數類型,使用case語句判斷 pay_status的值,然後輸出相應的結果。規則如下:

(1)pay_status = 0 ,則輸出“微信支付”

(2)pay_status = 1 ,則輸出“支付寶支付”

(3)pay_status = 0 ,則輸出“銀行卡支付”

DELIMITER //

CREATE PROCEDURE case_demo (IN pay_status INT)

BEGIN

DECLARE i INT;

SET i=pay_status;

CASE i

WHEN 0 THEN

SELECT '微信支付';

WHEN 1 THEN

SELECT '支付寶支付';

ELSE

SELECT '銀行卡支付';

END CASE;

END ;

//

CALL case_demo(1)

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
軟柿子和硬柿子是一個品種嗎
軟柿子和硬柿子是一個品種嗎
軟柿子和硬柿子不是一個品種,軟柿子和硬柿子的區别如下:1、口感不同。一個香脆一個甜軟,口感很不一樣。...
2025-01-02
手圍怎麼量
手圍怎麼量
1、準備刻數清晰的皮尺(軟尺),測量手腕最細處周長即可。2、用線纏繞手腕一周,并标記好結點處位置,測...
2025-01-02
生活中放大鏡有哪些用途
生活中放大鏡有哪些用途
1、放大鏡利用凸透鏡成放大、倒立,實像可運用在放映機、幻燈機上。2、放大鏡利用凸透鏡成倒立、縮小,實像可運用在照相機上。3、放大鏡利用凸透鏡成正立、放大,虛像可運用在放大鏡、老花鏡上。放大鏡:用來觀察物體微小細節的簡單目視光學器件,是焦距比眼的明視距離小得多的會聚透鏡。物體在人眼視網膜上所成像的大小正比于物對眼所張的角(視角)。視角愈大,像也愈大,愈能分辨物的細節。移近物體可增大視角,但受到眼睛調
2025-01-02
客廳大怎麼布置
客廳大怎麼布置
1、軟性劃分:軟性劃分是目前家庭裝修中比較常見的一種分區方式。在劃分每個功能性區域時,設計師不會将它硬性地同其他空間隔開,而是采用一種暗示”的手法來區分各個功能性區域。例如,在大客廳中使用不同的軟裝飾品來劃分區域。2、硬性劃分:硬性劃分主要是通過隔斷、家具的設置,使每個功能性空間相對封閉,并能從大空...
2025-01-02
淘寶口令怎麼使用
淘寶口令怎麼使用
第一、首先打開手機淘寶app,如圖1所示。會出現一個新的界面,如圖2所示。第二、将你收到的淘寶口令複制下來,如圖1箭頭所示所示。再打開淘寶,會彈出一個消息框,如圖2所示。第三、點擊查看詳情,如圖1箭頭所示。就進入了商品的界面了,如圖2所示。第四、上述方法是别人給你的淘口令,你也可以把淘口令給别人。打...
2025-01-02
Copyright 2023-2025 - www.tftnews.com All Rights Reserved