MYSQL面试--存储过程(六)

-- 9.储存过程使用
-- 资料:http://www.cnblogs.com/wangjikun/p/5685489.html    储存过程案例
-- 创建表
CREATE TABLE test( 
ID INT PRIMARY KEY AUTO_INCREMENT ,
test_name VARCHAR(20),
test_num INT);

-- 编写储存过程
DELIMITER $                                                           /*(意思是mysql语句的结尾换成以$结束,mysql默认是;结束)*/
CREATE PROCEDURE pro1(IN n INT)                               /*创建一个名为pro1的存储过程,调用存储过程时,可以通过输入参数n来指定循环的次数*/
BEGIN                                                                 /*开始*/
DECLARE num001 INT;
DECLARE num002 INT;                                /*定义num001和num002的数据类型为int*/
SET num001 = 1 , num002 = 10;                             /*设置num001=1,num002=10*/
WHILE n - num001 >= 0 DO                                     /*当num001小于等于n时执行下面的操作*/
INSERT INTO test(test_name,test_num)
VALUES(CONCAT("zhangsan" , num001) , num002);        /*在test表中插入数据test_name=zhangsan+num001,test_num=num002,contat意为将张三和num001连起来*/
SET num001=num001+1,num002=num002 + 2;             /*设置num001=num001+1,num002=num002*2*/
END WHILE;                                                          /*当num>100时,不再执行插入操作循环结束*/
END $                                                                /* 存储过程结束*/
DELIMITER ;                                                          /*(mysql语句的结尾换成以;结束)*/

-- 调用储存过程
CALL pro1(100) ;

-- 删除表、储存过程
DROP TABLE test;
DROP PROCEDURE pro1;

你可能感兴趣的:(MYSQL)