MySQL函数(记录自用)动态插入100万条个人信息

记录一个今日遇到之前很少用的函数

1、CONCAT()

用于将两个或多个字符串连接成一个字符串。

CONCAT('用户', i)

这个例子中,将字符串 '用户' 和变量 i 的值连接在一起,生成类似 '用户0''用户1' 等用户名称。

2、FLOOR()

用于将一个数字向下取整到最接近的整数。

SELECT FLOOR(4.7);  -- 结果是 4
SELECT FLOOR(-4.7); -- 结果是 -5
FLOOR(RAND() * 2)

这个表达式首先生成一个随机数(RAND()),然后乘以 2,最后用 FLOOR() 向下取整,结果将是 0 或 1。这个值用于生成性别字段的随机值(通常用 0 和 1 表示)。

3、RAND()

生成一个介于 0 和 1 之间的随机浮点数。

SELECT RAND();  -- 结果可能是 0.123456789(示例)
CONCAT('18', FLOOR(RAND() * (999999999 - 100000000) + 100000000))

这个表达式用来生成一个随机的电话号码。RAND() 生成一个随机浮点数,乘以一个范围(999999999 - 100000000),然后加上一个最小值(100000000),最终用 FLOOR() 将结果取整,确保生成的号码在指定的范围内。

总结

  • CONCAT():用于连接多个字符串生成一个新的字符串。
  • FLOOR():用于将数字向下取整,舍去小数部分。
  • RAND():用于生成一个 0 到 1 之间的随机浮点数。

这些函数在 SQL 查询和数据处理过程中非常有用,特别是在需要生成动态数据或处理数值时。

举个栗子!!!

向用户表里插入100万条不同的数据:

-- 1418错解决方案(创建函数前执行此语句)
set global log_bin_trust_function_creators=true;

-- 插入100万条数据
DELIMITER $$	-- 写函数之前要写的标志
CREATE FUNCTION mock_data()	-- 创建mock_data()函数
RETURNS INT -- 返回整数
BEGIN
	DECLARE num INT DEFAULT 1000000; -- 设置一个常量num,值为100万
	DECLARE i INT DEFAULT 0;
	WHILE i < num DO
  		INSERT INTO app_user(`name`, `email`, `phone`, `gender`, `password`, `age`)
   		VALUES(CONCAT('用户', i), '24736743@qq.com', CONCAT('18', FLOOR(RAND()*(999999999-100000000)+100000000)),FLOOR(RAND()*2),UUID(), FLOOR(RAND()*100));
  		SET i = i + 1;
	END WHILE;
	RETURN i;
END;

-- 执行函数
SELECT mock_data();

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值