为了练习python和SQL,利用python和pymysql搭建数据库和SQL表
用户信息表数据设置:
主要根据python中的随机函数,编写一些随机数据
import pymysql import pandas as pd import sqlalchemy import random import string import radar def user_name(): name_1 = ['赵','钱','孙','李','周','吴','郑','王','冯','陈','褚','卫','蒋','沈','韩','杨','朱','秦','尤','许', '何','吕','施','张','孔','曹','严','华','金','魏','陶','姜','戚','谢','邹','喻','柏','水','窦','章', '云','苏','潘','葛','奚','范','彭','郎','鲁','韦','昌','马','苗','凤','花','方','俞','任','袁','柳', '酆','鲍','史','唐','费','廉','岑','薛','雷','贺','倪','汤','滕','殷','罗','毕','郝','邬','安','常', '乐','于','时','傅','皮','卞','齐','康','伍','余','元','卜','顾','孟','平','黄','和','穆','萧','尹', '姚','邵','湛','汪','祁','毛','禹','狄','米','贝','明','臧','计','伏','成','戴','谈','宋','茅','庞', '熊','纪','舒','屈','项','祝','董','梁','杜','阮','蓝','闵','席','季','麻','强','贾','路','娄','危', '江','童','颜','郭','梅','盛','林','刁','钟','徐','邱','骆','高','夏','蔡','田','樊','胡','凌','霍', ] name_2 = ['骏','宇','玄','璀','紫','子','全','超','益','莉','信','美','奎','琪','豪','浩','槐','文','巧','治','瑜','雯','诗','涵','曦','嵘','天','誉','喜','伟','嘉','欣', '卿','钰','勇','寅','天','宸','兵','祥','运','昊','泽','仁','淳','轩','子','泳','瑶','源','杰','正','驿','豪','财','熙','海','辉','辉','天','华','峻','龙','嘉', '诚','嘉','运','财','喜','伟','天','俊','熙','熙','利','君','帝','云','海','伟','熙','霞','艳','宗','书','文','国','熙','林','天','录','熙','明','俊','敬','贵', '艺','心','艾','悦','思','甜','帅','梅','莲','婷','伯','沁','苹','苗','龙','尔','仕','墨','驿','森','桥','丹','东','墨','满','阳','骏','鹏','毓','昆','金','宇', '宇','木','金','豪','天','洋','宇','捷','治','智','浩','泽','搏','朗','朗','桐','喜','伊','萱','彤','正','裕','馨','湘','锦','湘','玉','元','坤','子','侦','山', '水','茂','阳','海','乐','晨','杰','高','启','夫','玉','舟','凌','璇','雨','扬','晨','亭','艳','昊','洋','晴','雨','雨','晨','雨','辰','骞','娴','颖','晞','朝', '晓','小','蕾','雯','悦','月','秋','绮','书','彤','诗','韬','羿','程','惠','忻', ] name_len=random.randint(2,3) #名字长度 name='' for i in range(name_len): if (i==0) : #姓 a=random.choice(name_1) else : #名 a = random.choice(name_2) name=name+a return name def user_sex(): i=random.random() if(i>0.95): #5%的数据设置为位置,其他随机男或女 a='未知' else: a=random.choice(['男','女']) return a def user_age(): a=random.randint(18,60) #18-60岁随机 return a def user_email(): i = random.random() e='' #设置30%的qq邮箱,其他的设置成其他的 if (i > 0.7): a=str(random.randint(100000000,9999999999))+'@qq.com' else: for j in range(random.randint(4,10)): e=e+random.choice(string.ascii_letters.lower()) a=e+'@'+random.choice(['163','sina','126'])+'.com' return a def user_phone(): #简单随机11位数字,懒得验证前3位了 a=random.randint(10000000000,19999999999) return a def user_city(): c1=['上海','北京','广州','深圳'] c1_new=['成都','重庆','杭州','西安','武汉','苏州','郑州','南京','天津','长沙','东莞','宁波','佛山','合肥','青岛'] c2=['昆明','沈阳','济南','无锡','厦门','福州','温州','金华','哈尔滨','大连','贵阳','南宁','泉州','石家庄','长春','南昌','惠州','常州','嘉兴','徐州','南通','太原','保定','珠海','中山','兰州','临沂','潍坊','烟台','绍兴'] c3=['台州','海口','乌鲁木齐','洛阳','廊坊','汕头','湖州','咸阳','盐城','济宁','呼和浩特','扬州','赣州','阜阳','唐山','镇江','邯郸','银川','南阳','桂林','泰州','遵义','江门','揭阳','芜湖','商丘','连云港','新乡','淮安','淄博','绵阳','菏泽','漳州','周口','沧州','信阳','衡阳','湛江','三亚','上饶','邢台','莆田','柳州','宿迁','九江','襄阳','驻马店','宜昌','岳阳','肇庆','滁州','威海','德州','泰安','安阳','荆州','运城','安庆','潮州','清远','开封','宿州','株洲','蚌埠','许昌','宁德','六安','宜春','聊城','渭南'] c4=['宜宾','鞍山','南充','秦皇岛','亳州','常德','晋中','孝感','丽水','平顶山','黄冈','吉林','龙岩','枣庄','郴州','日照','马鞍山','衢州','鄂尔多斯','包头','邵阳','玉林','榆林','西宁','德阳','泸州','临汾','南平','焦作','宣城','毕节','淮南','黔南','滨州','黔东南','茂名','三明','湘潭','梅州','乐山','黄石','韶关','衡水','怀化','张家口','永州','十堰','曲靖','大庆','舟山','宝鸡','景德镇','北海','娄底','吉安','汕尾','锦州','咸宁','大同','恩施','营口','长治','赤峰','抚州','漯河','眉山','东营','铜仁','拉萨','汉中','黄山','阳江','大理','盘锦','达州','吕梁','承德','红河','百色','丹东','益阳','濮阳','河源','铜陵','鄂州','内江','梧州','淮北','安顺','晋城'] c5=['延边','贵港','萍乡','湘西','遂宁','云浮','辽阳','广安','防城港','天水','荆门','牡丹江','自贡','绥化','钦州','安康','随州','玉溪','通辽','庆阳','巴音郭楞','丽江','张家界','松原','贺州','吴忠','四平','阜新','伊犁','文山','酒泉','本溪','西双版纳','凉山','来宾','巴中','抚顺','德宏','定西','阳泉','克拉玛依','保山','雅安','嘉峪关','乌兰察布','黔西南','楚雄','资阳','河池','朔州','呼伦贝尔','陇南','铜川','普洱','巴彦淖尔','喀什','兴安','阿拉善','乌海','阿克苏','白城','中卫','昌吉','锡林郭勒','海东','商洛','临沧','攀枝花','鸡西','张掖','通化','石嘴山','平凉','白银','鹤岗','白山','崇左','伊春','博尔塔拉','临夏','固原','儋州','双鸭山','海西','林芝','金昌','和田','塔城','甘孜','辽源','黑河','吐鲁番','七台河','武威','阿勒泰','甘南','阿坝','昌都','迪庆','三沙','怒江','日喀则','大兴安岭','海北','阿里','海南','黄南','果洛','玉树','克孜勒苏','哈密','山南','那曲'] #设置1-5线城市列表,按照一定比例随机 i = random.random() if i<=0.3: a=random.choice(c1) elif i<=0.5: a = random.choice(c1_new) elif i<=0.7: a = random.choice(c2) elif i<=0.85: a = random.choice(c3) elif i <= 0.95: a = random.choice(c4) else: a = random.choice(c5) return a def user_cr_time(): #随机时间 a=radar.random_datetime('2020-01-01 00:00:00','2023-06-04 23:59:59') return a def user_job(): a=random.choice(['教师','工人','记者','演员','厨师' ,'医生','护士','司机','军人','律师' ,'商人','会计','店员','出纳','作家' ,'导游','模特','警察','歌手','画家' ,'裁缝','翻译','法官','保安','花匠' ,'服务员','清洁工','建筑师','理发师','采购员' ,'设计师','消防员','机修工','推销员','魔术师' ,'模特儿','邮递员','售货员','救生员','运动员' ,'工程师','飞行员','管理员','机械师','经纪人' ,'审计员','漫画家','园艺师','科学家','主持人' ]) #随机设置职业 return a def inser_sql_user(id): #拼接成完整的SQL a="""INSERT INTO prod.user_info VALUES ("""+str(id)+""",'"""+user_name()+"""','"""+str(user_sex())+"""',"""+str(user_age())+""",'"""+user_email()+"""',"""+str(user_phone())+""",'"""+user_city()+"""','"""+str(user_cr_time())+"""','"""+user_job()+"""');""" return a