项目中需要对数据库中的数据进行比对,人工执行sql比对非常耗时,用python脚本可以节省很多人力。
1.下载pymysql模块
pycharm下载方式:File--》Settings--》Project--》Project Interpreter,点击右侧【+】号,弹出的Available Packages中搜索“pymsql”,选中待下载选项,点击左下角【Install Package】按钮,可以自动安装成功。
也可以执行“pip install pymsql”命令下载
2.在python脚本中引用pymsql模块,初始化数据库,通过游标执行sql语句
import pymysql
class connect_to_mysql(object):
#数据库信息写在字典中,以参数方式传给自定义类进行数据库初始化
def __init__(self,mysql_info):
self.connect = pymysql.connect(
host=mysql_info["host"],
port=mysql_info["port"],
user=mysql_info["user"],
password = mysql_info["password"],
db=mysql_info["db"],
charset="utf8",
cursorclass=pymysql.cursors.DictCursor#查询数据量大时,加游标可以节省资源,提高查询效率
)
self.cursor=self.connect.cursor()
def __del__(self):
self.cursor.close()#访问结束自动关闭游标
self.connect.close()#访问结束自动关闭连接
#自定义一个方法,讲要执行的sql语句做为参数传递
def excute_sql(self,sql):
results = []
counts=self.cursor.execute(sql)
print(counts)
rows = self.cursor.fetchall()#获取所有的执行结果
#根据数据需要,对查询结果进行修改,此处未验证插入和修改、删除数据,如果有需要,这块代码可以根据需要稍作调整
for result in rows:
print(result)
s = []
for k in result:
s.append(result[k])
str1 = str(s)
str2 = str1.replace("[", "", 1)
str2 = str2[:-1] + ""
results.append(str2)
# rows = self.cursor.fetchone()
# print(rows)
# print(results)
return results
3.定义main()方法,访问数据库,执行sql语句
def main():
mysql_info ={
"host" : "60.xx.xx.xxx",#数据库ip
"port" : xxxx,#数据库端口
"user" : "username",#数据库访问用户名
"password" : "xxxx",#数据库密码
"db" : "dbname"#db名称
}
#初始化数据库连接,数据库访问信息以字典方式传给初始化方法
new_connect = connect_to_mysql(mysql_info)
sql = "SELECT code FROM `tv_student` where name like '%张三%'"
new_connect.excute_sql(sql)
if __name__ == '__main__':
main()