一、创建student表
-- ----------------------------
-- Table structure for students
-- ----------------------------
DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '姓名',
`code` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学号',
`class` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '一班' COMMENT '所在班级',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of students
-- ----------------------------
INSERT INTO `students` VALUES ('1', '张三', '202001001', '一班');
INSERT INTO `students` VALUES ('2', '李四', '202001002', '一班');
INSERT INTO `students` VALUES ('3', '王五', '202001003', '一班');
INSERT INTO `students` VALUES ('4', '赵六', '202001004', '一班');
示意图:
二、使用while循环向students表中插入数据
(存储过程)
1. 定义存储过程
DELIMITER $$
DROP PROCEDURE if EXISTS insertStudents; # 如果存在test存储过程则删除
CREATE procedure insertStudents() # 创建无参存储过程,名称为insertStudents
BEGIN
DECLARE i INT; # 申明变量
SET i = 0; # 变量赋值
WHILE i<5 DO # 结束循环的条件: 当i大于5时跳出while循环
INSERT INTO students(name, code, class) VALUES('xxx', '2020010' + i + 10, '一班'); # 往students表添加数据
SET i = i+1; # 循环一次,i加1
END WHILE; # 结束while循环
SELECT * FROM sudents; # 查看students表数据
END $$ # 结束定义语句
DELIMITER ; # 重新将分隔符设置为;
执行结果:
2.调用存储过程
CALL insertStudents(); #调用存储过程
3.删除存储过程
DROP PROCEDURE insertStudents; #删除存储过程
(函数)
1. 创建函数
SET GLOBAL log_bin_trust_function_creators=TRUE;
DELIMITER $$
DROP FUNCTION if EXISTS insertStudents; # 如果存在insertStudents函数则删除
CREATE FUNCTION insertStudents(i INT(10)) RETURNS INT(10) # 创建函数 学习while循环的用法
BEGIN
WHILE i<5 DO # 结束循环的条件: 当i大于5时跳出while循环
INSERT INTO students(name, code, class) VALUES('xxx', '2020010' + i + 10, '一班'); # 往students表添加数据
SET i = i+1; # 循环一次,i加1
END WHILE; # 结束while循环
RETURN (SELECT COUNT(*) FROM students);
END $$
DELIMITER ;
执行结果:
2. 调用函数
SELECT insertStudents(3); #调用函数
执行结果:
3. 删除函数
DROP FUNCTION insertStudents; #删除函数