pymysql 常用操作

# 常用datetime格式化  2020-10-15 11:47:09
d3_str = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

批量插入

import pymysql


def insert_to_mysql(to_db_list):
    mysql_db = pymysql.connect(host="HOST_IP", port=3306, user="username", password="password",
                               database="db", charset="utf8")
    cursor = mysql_db.cursor()
    sql = "INSERT INTO `your_db`.`your_table`(`colum1`, `colum2`, `colum3`) VALUES (%s,%s,%s)"

    try:
        # cursor.execute()
        cursor.executemany(sql, to_db_list)  # 批量插入
        
        effect_rows = cursor.rowcount
        
        mysql_db.commit()
        cursor.close()
        print('数据库添加成功,插入 {}条数据'.format(effect_rows))
        return effect_rows
    except Exception as e:
        mysql_db.rollback()
        print('数据库执行失败')
        print(e)
        return 0

my_list = []
my_list.append(('v1', 'v2', 'v3'))

cnt = insert_to_mysql(my_list)

  

查询

def get_id_name():
    cursor = mysql_db.cursor()
    sql = "select id, name from `your_db`.`table`"
    cursor.execute(sql)
    res = cursor.fetchall()

    # print(res)
    return res


my_list = get_id_name()

for index in range(len(my_list)):
    print(my_list[index][0])  # id 
    print(my_list[index][1])  # name

根据ID查询

sql = "SELECT company_id FROM company_tables where company_name = '{0}'".format(name)
cursor.execute(sql)

  

更新

def update_by_id(update_list):
    """根据ID更新col1, col2, col3
    list 依次为 col1, col2, col3, id

    :param update_list:
    :return:
    """

    cursor = mysql_db.cursor()
    sql = "UPDATE `your_db`.`table` SET col1=(%s),col2=(%s),col3=(%s) WHERE id=(%s)"

    try:
        # cursor.execute()
        cursor.executemany(sql, update_list)  # 批量插入
        mysql_db.commit()
        cursor.close()
        print('数据库更新成功')
    except Exception as e:
        mysql_db.rollback()
        print('数据库更新失败')
        print(e)

my_list = []
my_list.append(('v1', 'v2', 'v3', 'id'))
update_by_id(my_list)

  

参考:

https://blog.csdn.net/qq_34405401/article/details/101909406?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160308892919725255503260%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160308892919725255503260&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-9-101909406.pc_first_rank_v2_rank_v28&utm_term=pymysql+%E9%80%9A%E8%BF%87id%E8%8E%B7%E5%8F%96&spm=1018.2118.3001.4187

原文地址:https://www.cnblogs.com/ycc1/p/13819866.html