mysql与python交互
知识点
背景
1 | # 非主键取默认值的方式:default |
同步表数据
1 | # 从已知表中选择数据插入到新表中 |
pymysql安装
1 | 安装pymysql |
pymysql使用
流程图
实现代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27from pymysql import *
def main():
# 创建connection连接
conn = connect(host="localhost", port=3306, user="root", password="kmn123", database="tomexam", charset="utf8")
# 获得cursor对象
csl = conn.cursor()
# 执行sql,如果是查询,则会返回受影响的行数值
count = csl.execute("select * from tm_question")
# 为避免sql注入,将sql中参数部分弄成execute传递的参数列表,sql语句中有多少个拼接参数,则列表中就有对应数量的元素
count = csl.execute("select * from tm_question where name = %s", ["name"])
# 执行sql,如果是增、删、改,则需要提交commit,他可以再一个connection过程中提交执行之前所有的sql修改
conn.commit()
# 执行sql,如果是增、删、改导致了错误,在未提交commit之前, 提交rollback(),可以撤回之前执行的sql
conn.rollback()
for i in range(count):
# fetchone():从游标结果中一次只取出一个结果,再次取时就会迭代输出新的,返回元组
result = csl.fetchone()
# fetchmany(num):从游标结果中一次取出指定数量的数据,再次取时就会迭代输出新的,默认为1,返回元组
result = csl.fetchmany(5)
# fetchall():从游标结果中一次取出指定所有的数据,返回元组
result = csl.fetchall()
# 关闭游cursor对象
csl.close()
conn.close()
归纳
为了便于记忆,提供脑图