python操作mysql增删改查

# ### python 操作 mysql 增删改查

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()

猜你喜欢

转载自www.cnblogs.com/banbosuiyue/p/11967898.html