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')

 

 

posted @ 2019-08-04 22:36  赏尔  阅读(4540)  评论(0编辑  收藏  举报