1.用execute 和 executemany 的用法:
(1)
#导入模块
import pymysql
#连接数据库
conn=pymysql.connect(host='localhost',user='root',passwd='123456',db='wn',port=3306)
#root:主机的IP地址
#user:用户名
#passwd:密码
#db:需要用到的数据库名字
#port:数据库端口号
cur=conn.cursor()
cur.execute('insert into student values(%s,%s,%s,%s,%s)' ,(name,age,chinese,English,total))
#或者
cur.execute('insert into student values(%s,"%s",%d,%d,%d)'(name,age,chinese,English))
conn.commit()#插入完成之后进行提交
cur.close()#关闭游标
conn.close()#关闭数据库
(2)
s=[((name,age,chinese,English))]#需要列表或者元组相互嵌套
cur.executemany('insert into student values(%s,%s,%s,%s)',s)
#cursor.executemany(sql,values),返回值为受影响的行数,values列表或者元组相互嵌套
2.计算学生总成绩
import pymysql
from faker import Faker
conn=pymysql.connect(host='localhost',user='root',passwd='123456',db='wn',port=3306)
cur=conn.cursor()
num=Faker(locale='zh_CN')
total=0
for i in range(5):
age=num.random_int(17,19)
chinese=num.random_int(min=0,max=100)
English=num.random_int(min=0,max=100)
cur.execute('insert into student values(%s,%s,%s,%s,%s)' ,(num.name(),age,chinese,English,total))
conn.commit()
cur.close()
cur=conn.cursor()
count=cur.execute('select * from student')
s=cur.fetchall()
for i in s:
nsum=i[2]+i[3]
nname=i[0]
cur.execute('update student set total=%s where uname=%s',(nsum,nname))
conn.commit()
cur.close()
conn.close()