MySQL 存储过程
向数据库中插入100万条记录,不得不提及MySQL的存储过程
MySQL的存储过程从5.0版本开始支持,它是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。
简言之就是一组可编程函数,为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
特点
- 增强了SQL语言的功能和灵活性
- 可封装、可以回传值
- 有着较快的执行速度
- 能够减少网络流量
基本语法
-
声明语句:
DELIMITER $$
-
创建函数:
CREATE FUNCTION 函数名()
-
存储过程开始和结束符号:
BEGIN .... END
-
变量赋值:
SET 变量值 =1
-
定义变量:
DECLARE 变量名 INT DEFAULT 变量值 ;
测试
创建数据库
创建并执行函数
#声明
DELIMITER $$
#创建函数
CREATE FUNCTION mock_data ()
#定义返回值
RETURNS INT
BEGIN
#定义变量
DECLARE num INT DEFAULT 1000000;
DECLARE i INT DEFAULT 0;
#循环
WHILE i < num DO
#插入语句
INSERT INTO `user` (`name`,`gender`,`age`) VALUES (CONCAT('用户',i),FLOOR(RAND()*2),FLOOR(RAND()*100));
SET i = i + 1;
END WHILE;
#返回i
RETURN i;
END;
查询记录
SELECT mock_data();