Python中MySQL的初步知识,连接数据库,查找数据库中内容——read_sql_query,read_sql_tabl,read_sql,to_sq的应用

1.引入包,输入库的名称和电脑本机ip地址,一般IP地址都是127.0.0.1,还有数据库连接名

import pandas as pd
from sqlalchemy import create_engine

engine=create_engine('mysql+pymysql://root:[email protected]:3306/world?charset=utf8')
#mysql+pymysql://root:[email protected]:3306/world?charset=utf8
print(engine)
df1=pd.read_sql_table("city",engine)//找到表city,read_sql_table只能读取数据库的某一个表格,不能实现查询的操作
print(df1)
df2=pd.read_sql_query("show tables",con=engine)#将city表格中的所有内容展现出来,read_sql_query只能实现查询操作,不能直接读取数据库中的某个表
print(df2)
df3=pd.read_sql("select * from city",con=engine)#read_sql是上面两者的综合,既能读取数据库中的某一个表,也能够实现查询操作
print(df3)

2.数据库数据存储
将DataFrame写入数据库中,同样也要依赖SQLAlchemy库的create_engine函数创建数据库连接。数据库数据读取有3个函数,但是数据存储只有一个to_sql方法。其语法如下:
DataFrame.to_sql(name ,con ,schema=None, if_exists=‘fail’, index=True, index_label=None, dtype=None)
其中参数如下表:

参数名称 说明
name 接收string。代表数据库表名
con 接收数据库连接。无默认
if_exists 接收fail,replace和append。fail表示如果表名存在,则不执行写入操作;replace表示如果存在,则将原数据库表删除,再重新创建;append则表示在原数据库表的基础上追加数据。默认为fail
index 接收boolean。表示是否将行索引作为数据传入数据库。默认为true
index_label 接收string或者sequence。代表是否用索引名称,如果index参数为true,此参数为None,则使用默认名称。如果为多重索引,则必须使用sequence形式。默认为None
dtype 接收dict。代表写入的数据类型(列名为key,数据格式为values),默认为None

使用该方法练习:
即使用to_sql方法写入数据
#利用to_sql方法写入数据.to_sql()

df1.to_sql('test',con=engine,index=False,if_exists='replace')#在world数据库中有三个表,然后在这个的基础上在增加一个表,
# 然而在Navicat中却没有添加到#con表示接收数据连接
formlist1=pd.read_sql_query('show tables',con=engine)
print('新增一个表格后,world数据库数据表清单为','\n',formlist1)

Python中MySQL的初步知识,连接数据库,查找数据库中内容——read_sql_query,read_sql_tabl,read_sql,to_sq的应用_第1张图片

你可能感兴趣的:(数据库-Python)