使用shell脚本生成随机数据

需求:1.使用建表脚本,创建 class 库, m_class表,students表

[root@mysql-80 /test]# cat up_create.sh 

#!/bin/bash
mysql -uroot <<EOF
create database IF NOT EXISTS class;
use class;
create table IF NOT EXISTS m_class(kid  tinyint  unsigned primary key,课程名称  varchar(20) not null);
insert into class.m_class(kid,课程名称) values (1,"云计算运维");
insert into class.m_class(kid,课程名称) values (2,"Java开发");
insert into class.m_class(kid,课程名称) values (3,"Python");
insert into class.m_class(kid,课程名称) values (4,"嵌入式开发");
insert into class.m_class(kid,课程名称) values (5,"HTML5前端");
insert into class.m_class(kid,课程名称) values (6,"Oracle数据");
insert into class.m_class(kid,课程名称) values (7,"数据分析与应");
insert into class.m_class(kid,课程名称) values (8,"内核驱动开发");

create table IF NOT EXISTS class.students(sid int auto_increment primary key,姓名  char(6) not null,性别  enum('F','M') default 'M',年龄 tinyint,身份证号码  char(18) not null unique key,手机号码  char(11) not null  unique key,所选课程  tinyint  default 0,入学时间 timestamp default now(),是否就业  enum('Y','N')  default 'N',就业薪资 smallint(5) unsigned NOT NULL DEFAULT '0');

编写一个插入脚本, 对 students表,进行大量的数据插入,数据满足以下条件

  1. 记录数: 100 条
  2. 姓名 : 组合生成 xing.txt ming.txt
  3. 年龄 : 24–40 之间的随机
  4. 手机号码: 139开头 后面8位随机 )
  5. 身份证号码:date +%N%N 随机生成18位
  6. 入学时间: 当前时间
  7. 所选课程 : 1-8 之间的随机数
  8. 就业薪资: 7000 ---- 15000 之间的随机整数。

把姓氏存入xing.txt

[root@mysql-80 /test]# cat xing.txt



















把名字存入ming.txt

[root@mysql-80 /test]# cat ming.txt

德华
永琪


学友
杰伦

超越

国荣
家驹

思琪
紫琪
若男

飞飞
永义

生成随机数脚本

[root@mysql-80 /test]# cat test.sh =========================

#!/bin/bash

a_ran(){
count=`expr $2 - $1 + 1`
R=`echo $RANDOM`
C=`expr $R % $count + $1`
echo $C
}

a_age=`a_ran 24 40`
a_gz=`a_ran 7000 15000`
a_phone=`a_ran 10000000  99999999`

echo "年龄=$a_age  工资=$a_gz  电话=139$a_phone"

使用shell脚本批量随机插入数据至数据库表中

#!/bin/bash

read -p "请输入要插入的数据量: " num
time1=`date +%s`
a_ran(){
count=`expr $2 - $1 + 1`
R=`echo $RANDOM`
C=`expr $R % $count + $1`
echo $C
}

for ((i=0;i<=$num;i++))
do
a_age=`a_ran 24 40`
a_gz=`a_ran 7000 15000`
a_phone=`date +%N`
a_xing=`a_ran 1 20`
a_class=`a_ran 1 8`
a_id=`date +%N%N`
xing=`shuf /test/xing.txt | sed -n ''$a_xing'{p}'`
a_ming=`a_ran 1 20`
ming=`shuf /test/ming.txt | sed -n ''$a_ming'{p}'`
A=("M" "F")
a_A=`a_ran 0 1`
a_sex=`echo ${A[$a_A]}`

mysql -uroot <<EOF
use  class;
insert into class.students(姓名,性别,年龄,身份证号码,手机号码,所选课程,是否就业,就业薪资) values ("$xing$ming","$a_sex",$a_age,"$a_id","13$a_phone",$a_class,"Y",$a_gz);
EOF
done

time2=`date +%s`
echo "插入完成,总用时 `expr $time2 - $time1` 秒"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值