zoukankan      html  css  js  c++  java
  • python操作mysql

    1、单条数据操作

    1)、常用方法

    import pandas as pd
    import pymysql
    
    db = {
        'host': '192.168.1.1',  # 服务器地址
        'port': 3306,  # 端口号
        'user': 'root',  # 用户名
        'password': '12345678',  # 密码
        'db': 'database',  # 数据库
        'charset': 'utf8mb4'}  # 编码
    
    
    conn = pymysql.connect(**db)  # 连接数据库
    cursor = conn.cursor()  # 生成游标,通过指针操作mysql
    curs_sql = f'select * from tb_name where id_name="{id_name}"'  #  sql语句。
    try:
        cursor.execute(curs_sql)  # 执行sql语句
    except:
        conn.rollback()  # 如果发生异常,就回滚
    conn.commit()  # 提交事务
    cursor.close()  # 关闭游标
    conn.close()  # 关闭数据库连接

    注:此方法可能存在转义问题,比如数据种存在单双引号等,可能使得sql语句引号混乱发生冲突,所以如果所筛选的字段数据中带有引号,最好在字符串引号前面加上\三个转义符。

    2)推荐方法:

    insert_data = ('数据')  # 元组格式,与下面sql语句中的%s 一 一 对应
    curs_sql = f'select * from tb_name where id_name=%s'  #  sql语句
    try:
        cursor.execute(curs_sql, insert_data)  # 执行sql语句
    except:
        conn.rollback()  # 如果发生异常,就回滚

    此方法不存在转义问题

    2、多条数据操作

    此方法不存在转义问题,内部机制会自行处理

    import pandas as pd
    import pymysql
    
    db = {
        'host': '192.168.1.1',  # 服务器地址
        'port': 3306,  # 端口号
        'user': 'root',  # 用户名
        'password': '12345678',  # 密码
        'db': 'database',  # 数据库
        'charset': 'utf8mb4'}  # 编码
    
    
    conn = pymysql.connect(**db)  # 连接数据库
    cursor = conn.cursor()  # 生成游标,通过指针操作mysql
    sql = "update tb_name set g_rank=%s, number=%s where name=%s"  # sql语句,此处数据用%s代替,与后面列表中数据是 一 一 对应关系
    
    try:
        cursor.executemany(sql, [(g_rank1, number1, name1),(g_rank2, number2, name2),(g_rank3, number3, name3)......])  # 批量插入数据,与sql中%s是一一对应关系
    except:
        conn.rollback()  # 如果发生异常,就回滚
    conn.commit()  # 提交事务
    cursor.close()  # 关闭游标
    conn.close()  # 关闭数据库连接
  • 相关阅读:
    快速排序算法C++实现[评注版]
    浮躁的程序员
    扬长避短使用Windbg和Visual Studio高效调试调试你的代码
    程序员,代码,理想,老男孩
    Windows Server 2008 R2 如何启动kernel dbg进行双机内核调试『续bcdedit 用法详解』
    Windows Server 2008 R2 如何启动kernel dbg进行双机内核调试『配置详解』
    忙着活或忙着死[转]
    SQL2005使用游标的实例(SBO中计算到期应收账款)
    C#编写的Windows计算器源代码
    请登录真正的BBS
  • 原文地址:https://www.cnblogs.com/jaysonteng/p/12533550.html
Copyright © 2011-2022 走看看