Python连接MySQL——pymysql模块
1、介绍
import pymysql #载入 #创建数据库连接 con = pymysql.connect(host='localhost',port=3306,user='root',password='密码',db='数据库名',charset='utf8') # host:数据库主机地址,本机就是localhost # port:端口号 # user:数据库的用户名 # password:数据库密码 # db:要访问的数据库名 # charset:‘utf-8’编码 # 使用cursor()创建一个游标对象 cursor=con.cursor() #使用execute()执行SQL语句 cursor.execute('select * from tabel') #接受全部分返回结果 res=cursor.fetchall() print(res) # 关闭连接 con.close() #结果是元组形式,不是可以直接使用的列联表的格式,需要转换。
#可以封装函数进行执行和转换的操作,之后直接调用
2、封装函数
import pymysql import pandas as pd #方法主要包含两部分,输入的参数和要执行的SQL语句 #两个参数分别如下: #DB:连接数据库的参数 #SQL:要执行的SQL语句 def get_mysqldata(DB,SQL): conn = pymysql.connect(host=DB['host'],port=DB['port'],user=DB['user'],password=DB['password'],db=DB['db'],charset='utf8') # 创建一个游标 cursor=conn.cursor() #执行SQL语句 cursor.execute(SQL) #执行上面参数SQL传过来的语句 #接受全部分返回结果 data=cursor.fetchall() # cols字段信息 cols = cursor.description #会输出元组形式的数据 # 执行 conn.commit() # 关闭连接 conn.close() #转变数据类型,因为上面读出来的是元祖类型,要转化成列表才能使用 col=[] for i in cols: col.append(i[0]) data = list(map(list,data)) #转换成list形式:map(list,data)将data中的每个数据(每一行)一一转化成list,在被最外面的list转化成一个大的列表 data = pd.DataFrame(data,columns = col) return data DB = {'host':'localhost', 'port':'3306', 'user':'root', 'password':'密码', 'db':'数据库名'} SQL = "select * from tabel" result = get_mysqldata(DB,SQL) display(result)
# 如果数据量多,可以使用迭代器分批次取数据