python对mysql的绝对操控总结

本文介绍了一个使用Python进行MySQL数据库操作的实用类,涵盖了连接数据库、判断表存在性、创建表、写入数据及读取数据等功能。通过具体代码实例,帮助读者理解和掌握MySQL的基本增删改查操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前沿

对mysql操控的几行代码总结,增删改查。

import pymysql
from sqlalchemy import create_engine
import pandas as pd
import numpy as np

class use_mysql(object):
    # con = pymysql.connect(**config)
    # mycursor = con.cursor()
    def __init__(self,config=None):
        if config is None:
            # 连接数据库
            config = {
                'user': 'root',
                'password': '12345',
                'host': '127.0.0.1',
                'port': 3306,
                'database': 'supcon'
            }
        self.config=config
        self.name='zwl'
        self.con=pymysql.connect(**self.config)
        self.mycursor=self.con.cursor()

    # 判断表是否存在
    def existsTable(self, tb_name):
        stmt = "SHOW TABLES LIKE '{}'".format(tb_name)
        self.mycursor.execute(stmt)
        res=self.mycursor.fetchone()
        if res:
            stats='exists'
        else:
            stats='not exists'
        return stats

    # 删除表
    def dropTable(self, tb_name):
        stmt = "DROP TABLE IF EXISTS {} ".format(tb_name)
        self.mycursor.execute(stmt)
        return True

    # 创建表
    def createTable(self, tb_name,df):
        type_category = {'int64': 'int', 'string': 'char(255)', 'float': 'double'}
        field = []
        for col in df.columns:
            type = str(df[col].dtypes)
            field.append('{} {}'.format(col, type_category[type]))
        field = ",".join(field)
        stmt = '''create TABLE {}\n({}) '''.format(tb_name,field)
        print('create sql:',stmt)
        self.mycursor.execute(stmt)
        return True

    #存储数据到mysql
    def writeTable(self,tb_name,df):
        config=self.config
        user,pswd,url,database=config['user'],config['password'],config['host'],config['database']
        charset='utf8'
        conn='mysql+pymysql://{}:{}@{}/{}?charset={}'.format(user,pswd,url,database,charset)
        engine=create_engine(conn, encoding='utf-8')

        df.to_sql(name=tb_name, con=engine, if_exists='append', index=False, index_label=False)
        return True

    # 读mysql表内容
    def get_mysql_data(self,sql):
        cur=self.mycursor
        conn=self.con
        try:
            cur.execute(sql)
            index = cur.description
            field_names = [field[0] for field in index]
            record = cur.fetchall()
            if len(record)>0:
                df = pd.DataFrame(list(record))
            else:
                df=pd.DataFrame(['']*len(field_names))
            df.columns = field_names
        except:
            df = ''
        cur.close()
        return df
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑小柒是西索啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值