python pymysql的方法
cursor游标的作用:使得用户能够从得到的记录集中一次一行或者多行前进或者向后浏览和处理数据的能力,可以看作是记录集的指针,可以获取和处理结果中指定位置的数据。即查询的结果是一个临时文件,游标可以最这个临时文件进行for循环操作
with 提供了在任何情况下,帮助用户自动关闭和注销资源的操作。
conn.commit() :在进行增删改的情况下,需要用户手动提交事务,否则操作会不起作用
cursor():返回的不是查询的数据集,而是本次操作影响的行数
cursor.fetchone() | cursor.fetchall() :返回的才是查询到的数据集
pandas 的read_sql()函数提供了从数据库中查询数据并返回dataframe的操作
常规操作:
#导入模块
import pymysql
#连接数据库
db_paras = {"host":"xx","user":"xx","password":"xx","database":"xx"}
conn = pymysql.connect(charset='utf8', **db_paras)
try:
with conn.cursor() as cursor: ##创建游标,with进行上下文的管理
num = cursor.execute("select user_id, name from users_profile where name = '%s'" %("张三"))
num = cursor.execute("select user_id, name from users_profile where name = '{}'".format("张三")) #传入查询sql语句,并返回影响的行数
num = cursor.execute("delete from users_profile where id = 2")
arr = cursor.fetchall() #获取查询的结果列表
for i in arr:
print(i)
conn.commit() #当进行增删改操作时,必须手动提交事务,否则操作会失效
finally:
conn.close() #不管有无异常,最终都关闭数据库连接
推荐方法:read_sql()
#使用read_sql()更简单的获取数据,并将数据转化为dataframe
#import pandas as pd
#连接数据库
db_paras = {"host":"xx","user":"xx","password":"xx","database":"xx"}
conn = pymysql.connect(charset='utf8', **db_paras)
sql_ = "select user_id, name from users_profile where name = '{}'".format("张三")
df = pd.read_sql(sql_, conn)
df.to_csv("xx.txt", header=True, index=False, sep = "\t") #将结果写入文件
print(df)
返回的结果:
user_id name
0 40849 张三
1 53198 张三
2 92865 张三
3 119162 张三
4 131591 张三
… … …
357 42566194 张三
358 43043871 张三
359 44096446 张三
360 44185098 张三
361 45423578 张三
[362 rows x 2 columns]
来源:CSDN
作者:追梦杏花天影
链接:https://blog.csdn.net/u010569893/article/details/103924965