Python如何使用从数据库mysql读取数据,效率最高的是使用函数读取。
简单操作,从数据库中读取和保存数据回数据库。
一、安装并导入包
安装包pymysql
在终端中输入如下代码:
conda install pymysql
显示版本和done表示安装完成。
导入包和函数create_engine
import pymysql
import pandas as pd
from sqlalchemy import create_engine
二、建立连接
这里需要准备好mysql的环境,mysql用户名和密码,最好有navicat可视化软件
建立连接的格式如下:
coon=create_engine('mysql+pymysql://user:password@IP:3306/databasename')
查看数据库的连接信息:这里是使用navicat查看
1)打开Navicat 在左上角连接的用户名上查看连接信息:
2)查看数据库信息,查看这些信息用户名:root
端口或者IP:实际连接真实数据库 这里输入IP
端口:3306
#建立连接
conn = create_engine('mysql+pymysql://root:password@localhost:3306/school')
#查询语句代码sql
sql='select * from student'
三、读取数据
这里使用pandas的pd.read_sql读取数据,存储为数据框DataFrame
df1=pd.read_sql(sql,conn)
注意:这里易报错!
如果报错为:系统错误,应该是连接的问题,去到sql中解决,可以参考这个文章python报OperationalError: (1366, "Incorrect string value..."的问题解决www.cnblogs.com
python查看数据集信息:
四、编写函数高效读取数据
我的数据库:
函数效果:
只要需要读取数据的时候就直接使用函数query直接读取就可以了
代码:
def query(table):#定义一个函数用来专门从数据库中读取数据
host='localhost'
user='root'
password='password'
database='school'
port=3306
conn=create_engine('mysql+pymysql://{}:{}@{}:{}/{}'.format(user,password,host,port,database))
sql='select * from '+str(table)
results=pd.read_sql(sql,conn)
return results
五、读取完的数据保存到数据库中
使用pandas包的to_sql就可以把数据保存到数据库中
我们读取一个新的excel文件到pytohn中,然后使用to_sql把数据保存到数据库中,其中con是建立连接,index=False是不需要索引。
去数据库的可视化软件navicat中查看是否已成功保存到数据库中
成功把数据从excel读取到python中,并从pytho中存储到数据库中。
#把数据保存到数据库中
df_1.to_sql('dfdb',con=conn,index=False)