数据库教程:MySQL存储过程创建例子

1. 无参数输入的存储过程:DELIMITER $$DROP PROCEDURE IF EXISTS `testUser`;CREATE PROCEDURE testUser()BEGINSELECT * FROM `user` WHERE name = ‘zz’;END $$DELIMITER ;//调用CALL testUser(); 【说明】:SQL 语句默认是以分号作为语句结束标志,DELIMITER $$则将语句结束标志改为$$,保证存储过程的完整, 因为存储过程中可


1. 无参数输入的存储过程:
DELIMITER $$ DROP PROCEDURE IF EXISTS `testUser`; CREATE PROCEDURE testUser() BEGIN 	SELECT * FROM `user` WHERE name = 'zz'; END $$ DELIMITER ;  //调用 CALL testUser(); 

 【说明】:

SQL 语句默认是以分号作为语句结束标志,DELIMITER $$则将语句结束标志改为$$,保证存储过程的完整, 因为存储过程中可能有多个语句

2. 带参数输入的存储过程:
DELIMITER $$ DROP PROCEDURE IF EXISTS `userById`; CREATE PROCEDURE userById(in num int) BEGIN 	SELECT * FROM `user` WHERE id = num; END $$ DELIMITER ;  //调用 CALL userById(2); 

 【说明】:

in代表参数输入,num参数名,int为参数类型
调用时传入参数,则语句相当于SELECT * FROM user WHERE id = 2;

3. 存储过程批量插入构造数据:

利用存储过程往user表批量构造数据,startNum为起始序号,num为构造总条数

DELIMITER $$ DROP PROCEDURE IF EXISTS `insertBatch`; CREATE PROCEDURE insertBatch(in num int,in startNum int) BEGIN 	DECLARE i int DEFAULT 0; 	DECLARE user_name VARCHAR(10) DEFAULT "username"; 	WHILE i<num DO 		INSERT INTO user(id,name,age,sex) value(startNum,user_name,18,"0"); 		SET i = i+1; 		SET startNum = startNum+1; 		SET user_name = CONCAT("username",i); 	END WHILE; END $$ DELIMITER ;  //调用:从id=3开始构造10条数据 CALL insertBatch(10,3); 

 【说明】:

DECLARE声明局部变量(只能在BEGIN-END内声明)DECLARE i int DEFAULT 0;
SET i = i+1;SET 为变量赋值,此处每次循环递增1。 SET i = i+1;

 【调用结果】:
MySQL存储过程创建例子

需要了解更多数据库技术:MySQL存储过程创建例子,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/814249.html

(0)
上一篇 2021年9月14日
下一篇 2021年9月14日

精彩推荐