Python - PyMySQL操作数据库

之前用的Python2,连接MySQL用的是MySQLdb。现在换成python3.x了,由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 PyMySQL模块,以下将介绍PyMySQL的安装及常用操作。

一、安装

pip install PyMySQL

二、常用操作

  1. 查询数据

    import pymysql
    
    # 连接数据库
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    
    # 查询数据
    sql = "select * from user"
    cursor.execute(sql)  # 执行sql
    
    # 查询所有数据,返回结果默认以元组形式,所以可以进行迭代处理
    for i in cursor.fetchall():
        print(i)
    print('共查询到:', cursor.rowcount, '条数据。')
    
    # 获取第一行数据
    result_1 = cursor.fetchone()
    print(result_1)
    
    # 获取前n行数据
    result_3 = cursor.fetchmany(3)
    print(result_3)
    
    cursor.close()  # 关闭游标
    conn.close()  # 关闭连接
    
  2. 插入数据

    执行完插入语句后一定要执行.commit()进行提交事务,可以插入多条后统一提交,否则操作无效

    import pymysql
    
    # 连接数据库
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    # 插入数据
    # 数据直接写在sql后面
    sql = "insert into username(id,name) values(%s, %s)"  # 注意是%s,不是s%
    cursor.execute(sql, [3, '王五'])  # 列表格式数据
    cursor.execute(sql, (4, '马六'))  # 元组格式数据
    
    # 数据单独赋给一个对象
    sql = "insert into username values(%s,%s)"
    data = (5, '老七')
    cursor.execute(sql, data)  #sql和data之间以","隔开
    
    sql = "insert into username values(%s,'%s')"
    data = (6, '小八')
    cursor.execute(sql % data) #sql和data之间以"%"隔开,此时它的sql中注意要给中文字符对应的占位符加上引号,即"%s",不然会报错:unsupported format character
    
    conn.commit()   # 提交,不然无法保存插入或者修改的数据(这个一定不要忘记加上)
    cursor.close()  # 关闭游标
    conn.close()  # 关闭连接
    
  3. 修改数据

    执行完修改语句后一定要执行.commit()进行提交事务,可以修改多条后统一提交,否则操作无效

    import pymysql
    
    # 连接数据库
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    # 修改数据
    sql = "update username set name='%s' where id=%s"  #注意%s什么时候加引号,什么时候不加
    data = ('改名了', 1)
    cursor.execute(sql % data)
    
    sql = "update username set name=%s where id=%s"
    data = ('也改名了', 2)
    cursor.execute(sql, data)
    
    conn.commit()   # 提交,不然无法保存插入或者修改的数据
    
    cursor.close()  # 关闭游标
    conn.close()  # 关闭连接
    
  4. 删除数据

    执行完删除语句后一定要执行.commit()进行提交事务,可以删除多条后统一提交,否则操作无效

    import pymysql
    
    # 连接数据库
    conn = pymysql.connect(
        host='127.0.0.1',
        user='root',
        passwd='root',
        port=3306,
        db='test',
        charset='utf8'
    )
    
    # 创建一个游标
    cursor = conn.cursor()
    
    # 删除数据
    sql = "delete from username where id=%s"
    data = (2)
    cursor.execute(sql, data)
    
    conn.commit()   # 提交,不然删除操作不生效
    cursor.close()  # 关闭游标
    conn.close()  # 关闭连接
    
欢迎关注同名微信公众号:程序猿杂记

程序猿杂记

技术|交流|福利
发布了63 篇原创文章 · 获赞 87 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/weixin_44110998/article/details/102962525