python 用 pymysql 向数据表插入数据
一、 加载库、封装函数
import pandas as pd
import pymysql
def mycursor(db_name=None):
'''连接数据库,创建游标'''
config = dict(zip(['host', 'user', 'port', 'password'],
['192.168.137.155', 'shanger', 3306, '0123']))
config.update(database=db_name)
connection = pymysql.connect(**config)
cursor = connection.cursor()
return cursor
def use(db_name):
'''切换数据库,返回游标'''
return mycursor(db_name)
def insert_many(table, data):
'''向全部字段插入数据'''
val = '%s, ' * (len(data[0])-1) + '%s'
sql = f'insert into {table} values ({val})'
cursor.executemany(sql, data)
cursor.connection.commit()
def query(sql):
'''以数据框形式返回查询据结果'''
cursor.execute(sql)
data = cursor.fetchall() # 以元组形式返回查询数据
header = [t[0] for t in cursor.description]
df = pd.DataFrame(list(data), columns=header) # pd.DataFrem 对列表具有更好的兼容性
return df
def select_database():
'''查看当前数据库'''
sql = 'select database();'
return query(sql)
def show_tables():
'''查看当前数据库中所有的表'''
sql = 'show tables;'
return query(sql)
def select_all_from(table):
sql = f'select * from {table};'
return query(sql)
二、插入数据
1、选则数据库、查看数据
2、插入数据
data = [
('德岛', '100'),
('香川', '200'),
('爱媛', '150'),
('高知', '200'),
('福冈', '300'),
('佐贺', '100'),
('长崎', '200'),
('东京', '400'),
('群马', '50')]
insert_many('poptbl', data)
select_all_from('poptbl')
非学无以广才,非志无以成学。