目录本地数据库操作MySQL连接MySQL执行sql查询语句游标使用转成DataFrame保存成CSV数据SQL插入数据执行SQL删除语句使用sqlalchemy连接数据库查询语句1查询语句2写入数据...
目录
本地数据库操作mysql
连接MySQL
执行sql查询语句
游标使用
转成DataFrame
保存成CSV数据
SQL插入数据
执行SQL删除语句
使用sqlalchemy
连接数据库
查询语句1
查询语句2
写入数据
使用read_sql读取
本文介绍的是如何使用Pandas来操作MySQL数据库。主要是包含查询MySQL中的数据,以及如何往数据库中写入数据。

先安装两个库:
pymysqlsqlalchemy
pipinstallpymysql pipinstallsqlalchemy
本地数据库
查看一个本地数据库中某个表的数据。这份数据是《MySQL经典50题》的一个表之一:

部分习题答案:


mysql-uroot-p--安装mysql,进入数据库输入暗文密码 showdatabases;--显示全部数据库 usetest;--使用某个数据库 showtables;--查看数据库下的全部表 select*fromStudent;--查看某个表的全部内容

操作MySQL
连接MySQL
以pymysql模块为例,讲解如何连接数据库。
In [1]:
importpandasASPd importpymysql fromsqlalchemyimportcreate_engine
In [2]:
connection=pymysql.connect( host='127.0.0.1',#本机ip地址 port=3306,#mysql默认端口号 user="root",#用户名 password="password",#密码 charset="utf8",#字符集 db="test"#数据库 ) cur=connection.cursor()#建立游标 cur
Out[2]:
<pymysql.cursors.Cursor at 0x11ddc1190>
connect()方法常用的参数:
调用 cursor() 方法即可返回一个新的游标对象,在连接没有关闭之前,游标对象可以反复使用
执行sql查询语句
In [3]:
sql="""#待执行的sql语句 select*fromStudent; """ #执行sql语句 cur.execute(sql)
Out[3]:
8
In [4]:
cur
结果表明是个游标对象:
Out[4]:
<pymysql.cursors.Cursor at 0x11ddc1190>
In [5]:
cur.description
主要返回游标的属性信息,官网的描述为:

Out[5]:
(('s_id', 253, None, 20, 20, 0, False),
('s_name', 253, None, 20, 20, 0, True),
('s_birth', 253, None, 20, 20, 0, True),
('s_sex', 253, None, 20, 20, 0, True))
In [6]:
#列名 columns=[col[0]forcolincur.description] columns
Out[6]:
['s_id', 's_name', 's_birth', 's_sex']
游标使用
下图显示的是如何取出一条或者多条数据(按照顺序查询)

通过游标获取全部的数据:

fetch相关的函数都是获取结果集中剩下的数据,多次调用的时候只会从剩余数据中查询:

当第二次调用的时候结果就是空集。
通过游标获取查询的结果集的特点:
1.可以获取1条、多条和全部php数据
2.在获取数据的时候是按照顺序读取的
3.fetchall函数返回剩下的所有行
如果是末尾,则返回空元组;否则返回一个元组,其元素是每一行的记录封装的一个元组
转成DataFrame


#列名 columns=[col[0]forcolincur.description] #数据集合 data=[] foriincur.fetchall(): data.append(i) df=pd.DataFrame(data,columns=columns)
保存成CSV数据

SQL插入数据
往MySQL数据库中插入数据:
importpandasaspd
importpymysql
fromsqlalchemyimportcreate_engine
connection=pymysql.connect(
host='127.0.0.1',#本机ip地址
port=3306,#mysql默认端口号
user="rpythonoot",#用户名
password="11112222",#密码
charset="utf8",#字符集
db="test"#数据库
)
cur=connection.cursor()#建立游标
#待执行SQL语句
sql="""
insertintotest.Student(s_id,s_name,s_birth,s_sex)values("09","吴越","1998-08-08","男")
"""
#执行sql语句
cur.execute(sql)
很关键一步,要记得提交,这样最终才会写入数据库:
connection.commit()

执行SQL删除语句


使用完之后记得关闭连接:
connection.close()
使用sqlalchemy
第二种常用的方法是通过sqlalchemy来连接数据库:
连接数据库
importpandasaspd
fromsqlalchemyimportcreate_engine
#依次填写MySQL的用户名、密码、IP地址、端口、数据库名
#create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库",其他参数)
engine=create_engine("mysql+pymysql://root:password@localhost:3306/test")
查询语句1

查询语句2

写入数据
将Pandas中的DataFrame写入新的表testdf中:

showtables;

使用read_sql读取
使用Pandas自带的read_sql函数能够自行读取数据,读取上面创建的数据.
官网:https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html
importpandasaspd
fromsqlalchemyimportcreate_engine
#依次填写MySQL的用户名、密码、IP地址、端口、数据库名
engine=create_engine("mysql+pymysql://root:password@localhost:3306/test")
#sql语句
sql4="select*fromtestdf;"
df4=pd.read_sql(sql4,engine)

到此这篇关于Pandas操作MySQL的方法详解的文章就介绍到这了,更多相关Pandas操作MySQL内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!










