zoukankan      html  css  js  c++  java
  • 使用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()
  • 相关阅读:
    asp.net core系列 76 Apollo 快速安装模式下填坑和ASP.NetCore结合使用
    asp.net core系列 75 Elasticsearch与中文分词配置
    asp.net core系列 74 Exceptionless服务端安装
    nginx for windows
    asp.net core系列 73 Exceptionless+Nlog以及Apollo介绍
    asp.net core系列 72 Exceptionless使用介绍
    asp.net core系列 71 Web架构分层指南
    asp.net core系列 70 即时通迅-WebSocket+Redis发布订阅
    asp.net core系列 69 Amazon S3 资源文件上传示例
    asp.net core系列 68 Filter管道过滤器
  • 原文地址:https://www.cnblogs.com/banbosuiyue/p/11967898.html
Copyright © 2011-2022 走看看