shell脚本中的mysql查询

时间:2014-05-31 14:19:36

标签: mysql shell

我需要在Shell-Script中创建一个数据库并考虑以下场景插入到数据库中。 我的问题是“如何为每个注册号生成随机数作为标记并插入数据库”?

场景: 1)创建一个名为“students”的表(reg_id,subject,marks)选择合适的数据类型和长度。注意:如果存在学生表,请先将其删除。 2)根据以下标准生成记录并将其插入表中。       一个。学生reg_id应该像“idx”。 “x”应该从1开始。例如:id1,id2 ..... id138       湾每个学生都应该只有8个科目的分数。 (选修科目:艺术,计算机,文学)       C。应使用参数更改记录的最大数量。       d。主题标记可以在0到100之间变化。

这是我写的代码:

#!/bin/bash

NoOfSubjects=8

# create students table
mysql -u root school << EOF
drop table students;
create table students (reg_id varchar (10) not null, subject varchar(20), marks int);
EOF

echo "Enter number of students"
read NoOfStudents

# get list of subjects from teachers table
results=`mysql -u root school -e "select subject from teachers;"` 
#get results into array
read -r -a arr <<< ${results}

# get marks from terminal
studentCount=1
subjectCount=1
count=1
while [ ${studentCount} -le ${NoOfStudents} ]
do
    echo "Enter marks for student :" ${studentCount} " with spaces"
        #marks=$(( RANDOM % 100 ))
        #echo $marks
        #count=`expr ${count} + 1`
    read marks
    student_id="id"${studentCount}

    # enter to db
    for input in ${marks}
    do
        if [ ${input} -ge 0 ] && [ ${input} -le 100 ]
        then
            `mysql -u root school -e "insert into students(reg_id, subject, marks) values ('${student_id}','${arr[$subjectCount]}',${input})"`
            subjectCount=`expr ${subjectCount} + 1`
        else
            echo "Invalid marks: " ${input}
        fi
    done

    studentCount=`expr ${studentCount} + 1`
    subjectCount=1
done

0 个答案:

没有答案