代码(数据库第二次作业)

pip install pymysql
pip install faker
import pymysql

import random
from faker import Faker
# 连接到数据库
mydb = pymysql.connect(
    host="localhost",
    user="root",
    password="032100",
    database="stu_qinfengmin"
)

# 创建cursor对象
mycursor = mydb.cursor()
fake = Faker("zh_CN")
name_set = set()
# 执行2000条SQL语句
for i in range(2000):
    while True:
        Sname = fake.name()
        if Sname not in name_set:
            name_set.add(Sname)
            break
        else:
            continue
    Sno = str(2008000000 + i)
    Ssex = random.choice(['女', '男'])
    Sage = fake.random_int(min=18, max=25)
    Sdept=random.choice(['CS','art','MA','IS'])

    # 组装SQL语句
    sql = "INSERT INTO student_qfm (`Sno`, `Sname`, `Ssex`, `Sage`, `Sdept`) VALUES ('{}','{}','{}','{}','{}')".format(Sno,Sname, Ssex, Sage, Sdept)
    #values = (Sno,Sname, Ssex, Sage, Sdept)

    # 执行SQL语句
    mycursor.execute(sql)
    
# 提交更改
mydb.commit()

# 关闭连接
mycursor.close()
mydb.close()
import pymysql
import random
# 连接到数据库
mydb = pymysql.connect(
    host="localhost",
    user="root",
    password="032100",
    database="stu_qinfengmin"
)
mycursor = mydb.cursor()

for i in range(2000):
    # 生成随机的课程号
    Cno =int(1+i)
    # 生成随机的课程名
    Cname='Course '+str({i+1})
    # 生成随机的先修课号
    Cpno =random.randint(1, i+1) 
    # 生成随机的学分
    Ccredit = random.choice([1, 2, 3, 4])# {i%4+1}
    course_data = (Cno, Cname, Cpno, Ccredit)
    sql = "INSERT INTO course_qfm (Cno, Cname, Cpno, Ccredit) VALUES (%s, %s, %s, %s)"
    mycursor.execute(sql, course_data)
sql1="UPDATE course_qfm SET Cpno = NULL WHERE Cno = Cpno"
mycursor.execute(sql1)
mydb.commit()
# 关闭连接
mycursor.close()
mydb.close()
import pymysql
import random
from datetime import datetime, timedelta

# 生成随机时间
def random_time():
    start = datetime(2009, 3, 1, 0, 0, 0)
    end = datetime(2009, 3, 16, 0, 0, 0)
    delta = end - start
    int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
    random_second = random.randrange(int_delta)
    return start + timedelta(seconds=random_second)

# 连接数据库
db = pymysql.connect(host="localhost", user="root", password="032100", database="stu_qinfengmin")
cursor = db.cursor()

# 插入数据到sc表
for i in range(100000):
    grade=random.randint(0,101)
    sno=random.randint(2008000000,2008002001)
    cno=random.randint(1,2001)
    sql= "INSERT INTO sc_qfm (sno, cno, grade, CHOOSE_TIME)VALUES(%s, %s, %s,%s)"
    values=(sno, cno, grade,random_time())

    # 先检查是否存在重复的sno和cno的对应关系
    check_query = "SELECT * FROM sc_qfm WHERE sno = %s AND cno = %s"
    cursor.execute(check_query, (sno, cno))
    result = cursor.fetchone()
    # 如果不存在则插入数据
    if not result:
        insert_query = "INSERT INTO sc_qfm (sno, cno, grade, CHOOSE_TIME)VALUES(%s, %s, %s,%s)"
        cursor.execute(insert_query, (sno, cno, grade, random_time()))
        db.commit()

db.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值