用jupyter读取mysql中的数据的两种方式

不管是采用哪种方式都应该先保证创建了目标数据库,即在mysql–data文件夹下有以目标数据库名称命名的子文件夹。且子表应该为以下格式,而不是.sql(未执行命令)文件。
用jupyter读取mysql中的数据的两种方式_第1张图片
用jupyter读取mysql中的数据的两种方式_第2张图片
首选方法二
(因为仅SQLAlchemy可连接支持read_sql_table。)

原文链接:https://blog.csdn.net/weixin_44274975/article/details/88622221
方法一:

import pymysql
import pandas as pd
# 连接mysql
conn = pymysql.connect(host='localhost', user='root',password='123456',
                       database='testdb',charset="utf8")
sql_1 = "select * from meal_order_detail1"
#利用pandas直接获取数据
data = pd.read_sql(sql_1, conn)
data.head()  #前五行

conn = pymysql.connect(host='你的主机名', user='用户名',password='密码',
                       database='数据库名称',charset="utf8")

方法二(《Python数据分析与应用》P81)

#SQLAlchemy连接MySQL数据库的代码
from sqlalchemy import create_engine
#创建一个MySQL连接器,用户名为root,密码为123456
#地址为127.0.0.1,数据库名称为testdb,编码为UTF-8
engine = create_engine('mysql+pymysql://root:[email protected]:3306/testdb?charset=utf8')
print(engine)

在这里插入图片描述

用read_sql_query,read_sql_table,read_sql读取数据

import pandas as pd
formlist = pd.read_sql_query('show tables',con=engine)
print(formlist)

在这里插入图片描述

import pandas as pd
detail1 = pd.read_sql_table('meal_order_detail1',con=engine)
print(len(detail1))

在这里插入图片描述

#使用read_sql读取订单详情表
detail1 = pd.read_sql('select * from meal_order_detail1',con= engine)
print('使用read_sql函数+SQL语句读取的订单详情表长度为:',len(detail1))

在这里插入图片描述

#使用to_sql方法写入数据(先创建要添加的DataFrame,再在to_sql中指定表名)(相当于MySQL中的insert和create table语句)
df = pd.DataFrame({'balance': [10000.000], 'account':
                   ['13579.SH'], 'charges': [0.0005]})
df.to_sql(name='my_balance', con=engine, if_exists='replace',
            index=False, index_label='id')
#查看添加数据后的数据库表格清单
formlist2 = pd.read_sql_query(sql_1,con = engine)
print(formlist2)

if_existsl可以有三个参数:
fail的意思如果表存在,啥也不做
replace的意思,如果表存在,删了表,再建立一个新表,把数据插入
append的意思,如果表存在,把数据插入,如果表不存在创建一个表!!

来自:https://blog.csdn.net/qnloft/article/details/87979937

如果是往新表中添加数据,则在to_sql中的是新表名及 if_exists=‘replace’;
如果是往旧表中添加数据,则在to_sql中是原数据库中存在的表名及 if_exists=‘append’;
自主选择什么情况下使用fail.
用jupyter读取mysql中的数据的两种方式_第3张图片

#查看新添加进的数据
info3 = pd.read_sql_table('my_balance',con = engine)
print(info3)

在这里插入图片描述

你可能感兴趣的:(《Python数据分析与应用》)