• 使用pymysql进行数据库的增删改查


    # ### 使用pymysql进行数据库的增删改查

    python 操作mysql 默认开启事务,必须在增删改之后,提交数据,
    才会对数据库产生变化,否则默认回滚
    提交数据 conn.commit()
    回滚数据 conn.rollback()

    execute 执行sql
    executemany 执行多条sql (插入时,可以使用)

    conn=pymysql.connect(host="127.0.0.1",user="root",password="123456",database="testdb1")
    """使用这个语句可以让查到的数据变成 字段:记录 的字典形式,方便查看"""
    cursor=conn.cursor(cursor=pymysql.cursors.DictCursor)


    # 增

    # sql="insert into t1(first_name,last_name,age,sex,money) values(%s,%s,%s,%s,%s)"
    sql="insert into t1 values(%s,%s,%s,%s,%s,%s)"
    # 一次插入一条数据
    res=cursor.execute(sql,("","永灵",81,1,9.9,8))
    print(res)
    #一次插入多条数据
    # res=cursor.executemany(sql,(("吗","训",20,0,15000),("常","远",90,0,10000),("黎","德亮",18,1,8.8)))
    # print(res) #代表插入数据次数
    
    # 获取最后一条数据的id号 针对于单条语句的执行,返回最后的id
    print(cursor.lastrowid) 
    '''如果没有id号就查的是0,这个id是真实的id,而不是算的第多少行,就是搜索你的自增
    的那个字段,按自增的那个字段最后插入的一个值给你返回,没有自增字段统统返回是0'''
    # 如果是执行多条数据executemany , 通过倒序查一条的方式获取
    # select id from t1 order by id desc limit 1

    # 改

    sql = "update t1 set first_name= %s where id=%s"
    res = cursor.execute(sql,("王二麻子",8))
    print(res)
    
    if res:
        print("更新成功")
    else:
        print("更新失败")

    # 查

    sql = "select * from t1" # 6~65
    res = cursor.execute(sql)
    print(res)
    
    # (1) 获取一条数据 fetchone
    res = cursor.fetchone()
    print(res)#{'id': 6, 'first_name': '常', 'last_name': '远', 'age': 90, 'sex': 0, 'money': 10000.0}
    
    # (2) 获取多条数据 fetchmany 默认搜索一条,上一次查询的数据,往下获取
    data = cursor.fetchmany(3)
    print(data)

     for row in data:
     if row["sex"]==1:
     sex="男"
     else:
     sex="女"
     print("姓:{},名:{},年龄:{},性别:{},收入:{}".format(row["first_name"],row["last_name"],row["age"],sex, row["money"]))

    # ### 滚动  可以自定义查询的位置

    sql = "select * from t1 where id >= 50"
    res = cursor.execute(sql)
    # 1.相对滚动
    # 先搜索一条 查的id=50
    res = cursor.fetchone()
    print(res)
    # 再向后滚动3条 id=50的查了,从id=51开始滚3条 => 滚到id=53后,查就查的id=54
    cursor.scroll(3,mode="relative")
    # 再向后滚动2条 57
    cursor.scroll(2,mode="relative")
    # 在往前滚2条
    cursor.scroll(2,mode="relative")
    # 2.绝对滚动 相对于最开始第一条数据进行运算
    cursor.scroll(0,mode="absolute")
    cursor.scroll(5,mode="absolute")
    # 在进行增删改的时候,必须提交数据,才真正进行修改,默认开启事务处理
    conn.commit()
    cursor.close()
    conn.close()
  • 相关阅读:
    MYSQL数据损坏修复方法
    MYSQL数据损坏修复方法
    MYSQL 定时自动执行任务
    MYSQL 定时自动执行任务
    MYSQL 定时自动执行任务
    NLog日志框架使用探究
    NLog日志框架使用探究
    SPFA算法 O(kE)
    codevs 1077 多源最短路
    code vs 2602 最短路径问题
  • 原文地址:https://www.cnblogs.com/banbosuiyue/p/11967898.html
Copyright © 2020-2023  润新知