需求: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表,进行大量的数据插入,数据满足以下条件
- 记录数: 100 条
- 姓名 : 组合生成 xing.txt ming.txt
- 年龄 : 24–40 之间的随机
- 手机号码: 139开头 后面8位随机 )
- 身份证号码:date +%N%N 随机生成18位
- 入学时间: 当前时间
- 所选课程 : 1-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` 秒"