python读取数据库数据格式_python 连接数据库读取及写入

一、数据库连接

数据库产品名+连接工具名://用户名:密码@数据库ip地址:数据库端口号/数据库名?charset=数据库编码格式

中文编码格式一般有utf-8、utf-16、gbk、gb2312、gb18030

1 importpandas as pd2 from sqlalchemy importcreate_engine3

4 con = create_engine('mysql+pymysql://root:123456@localhost:3306/day3?charset=gbk')

二、数据库读取

python读取数据库数据格式_python 连接数据库读取及写入_第1张图片

①read_sql_table只能读表

1 #read_sql_table只能读表

2 pd.read_sql_table('dept',con)

python读取数据库数据格式_python 连接数据库读取及写入_第2张图片

②read_sql_query 只能查询

1 #read_sql_query 只能查询

2 sql = 'select * from join_course a left join join_score b \3 on a.course_id=b.course_id where a.course_id="003"'

4 pd.read_sql_query(sql,con)

1501858-20200407215834391-893367221.png

③read_sql 既能查询也能读表

1 #read_sql读表

2 pd.read_sql('join_score',con)

python读取数据库数据格式_python 连接数据库读取及写入_第3张图片

1 #read_sql查询

2 sql = 'select * from join_course a left join join_score b \3 on a.course_id=b.course_id where a.course_id="003"'

4 pd.read_sql(sql,con)

python读取数据库数据格式_python 连接数据库读取及写入_第4张图片

三、数据库存储

①dataframe数据格式存储,首先列名与插入数据库的表名要一致

1 #构造数据

2 data = pd.DataFrame([[1,'004',90]],columns=['student_id','course_id','grade'])3 data

1501858-20200407220324318-413160809.png

1 #if_exists接收fail,replace,append。fail表示如果表名存在则不执行写入操作;replace表示如果存在,

2 #将原数据库表删除,再重新创建;append则表示在原数据库表的基础上追加数据。默认为fail。3

4 data.to_sql('join_score',con,if_exists='append',index=False) #追加

1 #查看表中数据,增加了几行(由于执行了多次)

2 pd.read_sql_table('join_score',con)

python读取数据库数据格式_python 连接数据库读取及写入_第5张图片

②另一种连接存储

1 importpymysql2 db = pymysql.connect(user='root',password='123456',host='127.0.0.1',database='day3',charset='gbk')3

4 cursor = db.cursor() #定义游标

5 cursor.execute('insert into join_score values(6,"006",95)') #执行插入语句

6 db.commit() #事故提交后才能真正的写入

7

8 #查询表

9 pd.read_sql_table('join_score',con=con)

python读取数据库数据格式_python 连接数据库读取及写入_第6张图片

③pymysql连接的查询

1 importpymysql2 db = pymysql.connect(user='root',password='123456',host='127.0.0.1',database='day3',charset='gbk')3 cursor = db.cursor() #定义游标

4 cursor.execute('select * from join_score') #执行查询语句

5 pd.DataFrame(list(cursor.fetchall())) #去除结果

④pymysql连接的删除

1 importpymysql2 db = pymysql.connect(user='root',password='123456',host='127.0.0.1',database='day3',charset='gbk')3 cursor = db.cursor() #定义游标

4 cursor.execute('delete from join_score where student_id =1') #执行查询语句

5 db.commit() #跟插入一样,要提交事故执行的语句才能有效

6 db.close()

四、总结

from sqlalchemy import create_engine这个连接的数据库,可以实现增、查工作;而import pymysql

db = pymysql.connect(user='root',password='123456',host='127.0.0.1',database='day3',charset='gbk')

连接的数据库可以实现增删查改的功能,更偏向于数据库语句的操作。

你可能感兴趣的:(python读取数据库数据格式)