MySQL快速构造百万数据

MySQL快速构造百万数据

一、创建数据表

在某个数据库里创建用于测试的数据表student,并设置主键id自增,示例使用四个字段:

create table student(
id int(4) primary key not null auto_increment,
sname varchar(32) not null,
phone varchar(32) not null,
score int(3) not null
);

二、插入数据

往student表中插入两条数据:

INSERT INTO student (sname, phone, score) VALUES ('test_1', '13000000000', 87),('test_2', '13000000001', 81);

使用 查询插入语句,作用是先查询再把查询的结果插入。语法如下:

INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...) SELECT 字段1, 字段2, ... FROM <表名>

先试一下效果,执行如下命令:

INSERT INTO student (sname, phone, score) SELECT sname,phone,score FROM student

执行完刷新student表,会发现记录由原来的两条变成四条,也就是2的指数倍增长

多执行几次查询插入语句,就会得到想要的百万数据了。

三、更新数据

数据量是满足了,但是数据真实性还有待提高。实际不会所有人的姓名、手机号、成绩都是一样的,因此需要对姓名、手机号、成绩字段记录进行修改。

1、修改姓名:

这里我们可以把姓名设置为 test_id 的格式,保证数据唯一性。test_id 的格式可以利用MySQL里的函 CONCAT 进行字符串拼接:

UPDATE student SET sname = CONCAT('test_',id)

执行完上述修改语句后,查询结果中,sname字段已经变成 test_id 格式了。

2、修改手机号:

手机号可以从13000000000开始,依次递增,比如设为13000000000+id:

UPDATE student SET phone = 13000000000+id

执行完上述语句,手机号就变成递增了,且保持唯一性。

3、修改成绩:

成绩的话,可以设为 0-100 之间的随机数,利用 MySQL 里的 RAND 函数生成随机数:

UPDATE student SET score = RAND()*100

注意:RAND()函数生成的是0-1的随机数,作为成绩,*100 即可。

至此,构造百万级数据就大功告成啦。

你可能感兴趣的:(mysql,数据库,sql)