Python连接MySQL数据库,批量生成测试数据。
效果如图所示:
代码如下:
import os import random import time import pymysql as ps db=ps.connect(host='192.168.1.1',user='root',password='123456',database='test',charset='utf8') #连接数据库 cur=db.cursor() #游标用来执行SQL语句 try: #intable=input('输入要创建的表:') #手动输入表名 #cur.execute('drop table {}'.format(intable)) intable='user1' #默认定义user1表 cur.execute('drop table {}'.format(intable)) create_table=cur.execute('create table if not exists {0}(id int primary key, name varchar(100),age int,salary int,dt datetime)'.format(intable)) db.commit() print(intable,'表已创建') except: print('创建',intable,'表失败') #ID不重复,循环100次 for id in range(0,100): print(id) #生成随机姓名 str=[chr(i) for i in range(97,123)] #97-123为小写字母,65-91为大写 for j in str: name=random.choice(str)+random.choice(str)+random.choice(str)+random.choice(str) #随机组成4个字母名字 #生成年龄 age=random.randrange(20,40,1) #年龄20-40,步长为1 #生成工资 salary=random.randrange(10000,20000,100) #生成日期 date1=(2021,1,1,0,0,0,0,0,0) #年月日分时秒 date2=(2022,3,1,0,0,0,0,0,0) start=time.mktime(date1) end=time.mktime(date2) #生成日期 tm=random.randrange(start,end) #开始与结束时间 date_tuple=time.localtime(tm) #生成元组形式 dt=time.strftime('%Y-%m-%d',date_tuple) #转换字符串形式 #插入数据 data=cur.execute("insert into user1 values({0},'{1}',{2},{3},'{4}')".format(id,name,age,salary,dt)) data_all=cur.execute('select * from user1') db.commit() #提交SQL变更 list=cur.fetchall() #提取所有数据 print(list)