通过游标获取全部的数据:
fetch相关的函数都是获取结果集中剩下的数据,多次调用的时候只会从剩余数据中查询:
当第二次调用的时候结果就是空集。
通过游标获取查询的结果集的特点:
1.可以获取1条、多条和全部数据
2.在获取数据的时候是按照顺序读取的
3.fetchall函数返回剩下的所有行
- 如果是末尾,则返回空元组;
- 否则返回一个元组,其元素是每一行的记录封装的一个元组
转成DataFrame
#?列名 columns?=?[col[0]?for?col?in??cur.description] #?数据集合 data?=?[] for?i?in?cur.fetchall(): ????data.append(i) ???? df?=?pd.DataFrame(data,columns=columns)
保存成CSV数据
SQL插入数据
往MySQL数据库中插入数据:
import?pandas?as?pd import?pymysql from?sqlalchemy?import?create_engine connection?=?pymysql.connect( ??host='127.0.0.1',??#?本机ip地址 ??port=3306,??#?mysql默认端口号 ??user="root",??#?用户名 ??password="11112222",??#?密码 ??charset="utf8",?#?字符集 ??db="test"??#?数据库 ) cur?=?connection.cursor()?#?建立游标 #?待执行SQL语句 sql="""?? insert?into?test.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来连接数据库:
连接数据库
import?pandas?as?pd from?sqlalchemy?import?create_engine #?依次填写MySQL的用户名、密码、IP地址、端口、数据库名 #?create_engine("数据库类型+数据库驱动://数据库用户名:数据库密码@IP地址:端口/数据库",其他参数) engine?=?create_engine("mysql+pymysql://root:password@localhost:3306/test")
查询语句1
查询语句2
写入数据
将Pandas
中的DataFrame
写入新的表testdf
中:
show?tables;
使用read_sql读取
使用Pandas自带的read_sql函数能够自行读取数据,读取上面创建的数据.
官网:https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html
import?pandas?as?pd from?sqlalchemy?import?create_engine #?依次填写MySQL的用户名、密码、IP地址、端口、数据库名 engine?=?create_engine("mysql+pymysql://root:password@localhost:3306/test") #?sql语句 sql4?=?"select?*?from?testdf;" df4?=?pd.read_sql(sql4,?engine)
到此这篇关于Pandas操作MySQL的方法详解的文章就介绍到这了,更多相关Pandas操作MySQL内容请搜索
更多SQL内容来自木庄网络博客