• 技术文章 >Python技术 >Python基础教程

    Pymysql之Cursor常用API

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-07-06 15:29:14原创3195

    Cursor常用API

    1、cursor.execute(query, args=None):执行sql语句。

    参数:

    query (str):sql语句。

    args (tuple, list or dict):sql语句中如果有变量,或者格式化输出,会在这里填充数据。

    Returns:返回一个int值,表示sql语句影响到的行数。

    下面演示插入数据的四种方式:

    import pymysql.cursors
    # 连接数据库
    connect = pymysql.connect(
        host='127.0.0.1',
        user='root',
        password='123',
        db='demo_temp',
        charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )
    with connect.cursor() as cursor:   # 创建游标
        # 第一种方式向表中插入数据
        sql = """
            INSERT INTO users (user,passwd) VALUES ('123','123')
            """
        cursor.execute(sql)
        # 第二种方式向表中插入数据
        sql = """
               INSERT INTO users (user,passwd) VALUES (%s,%s)
               """
        cursor.execute(sql,['456','456'])
        # 第三种方式向表中插入数据
        sql = """
                   INSERT INTO users (user,passwd) VALUES (%s,%s)
                   """
        cursor.execute(sql, ('789', '789'))
        # 第四种方式向表中插入数据
        sql = """
                   INSERT INTO users (user,passwd) VALUES (%(a)s,%(b)s)  
                   """
        cursor.execute(sql, {'a':'abc','b':'123'})  # 这里的'a'和'b'要和上面VALUES中对应
        connect.commit()  # 插入数据后必须更新
        # 查询数据
        sql = """
            select * from users
            """
        cursor.execute(sql)
        ret = cursor.fetchall()  # 提取查询数据
        print(ret)
    connect.close()   # 关闭数据库连接

    2、cursor.executemany(query, args):可以执行多条sql语句。

    参数:

    query :sql语句

    args:可迭代对象

    Returns:返回sql语句影响到的行数。

    相关推荐:《Python视频教程

    下面是方法实例:

    import pymysql.cursors
    # 连接数据库
    connect = pymysql.connect(
        host='127.0.0.1',
        user='root',
        password='123',
        db='demo_temp',
        charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )
    with connect.cursor() as cursor:   # 创建游标
        # 插入多条数据
        sql = """
                   INSERT INTO users (user,passwd) VALUES (%s,%s)  
                   """
        ret_row = cursor.executemany(sql,[['a','123'],['b','234'],['c','456']])  # 在args中传入一个可迭代对象。
        connect.commit()  # 插入数据后必须更新
        print(f'当前受影响了{ret_row}行')
        # 查询数据
        sql = """
            select * from users
            """
        cursor.execute(sql)
        ret = cursor.fetchall()  # 提取查询数据
        print(ret)
    connect.close()   # 关闭数据库连接

    3、cursor.fetchone():从查询语句中获取一条查询结果。

    4、cursor.fetchall():获取所有查询到的结果。

    5、cursor.fetchmany(size):根据size获取相应的行数。

    6、cursor.mogrify(query, args=None):返回执行的sql语句,下面是示例:

    import pymysql.cursors
    # 连接数据库
    connect = pymysql.connect(
        host='127.0.0.1',
        user='root',
        password='123',
        db='demo_temp',
        charset='utf8',
        cursorclass=pymysql.cursors.DictCursor
    )
    with connect.cursor() as cursor:   # 创建游标
        sql = """
            select * from users
            """
        cursor.execute(sql)
        ret_sql = cursor.mogrify(sql)   # 返回执行的sql语句
        cursor.fetchmany(2)             # 提取查询数据
        print(ret_sql)
    connect.close()   # 关闭数据库连接

    7、cursor.close():关闭游标,关闭游标后,游标内所有数据将被清空。

    相关推荐:

    Pymysql之Connection中常用API

    专题推荐:python pymysql cursor api
    品易云
    上一篇:Pymysql之Connection中常用API 下一篇:Python进程之并行与并发的区别

    相关文章推荐

    • Python如何使用数据库的连接池

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网