标签:back sel llb 端口 自己 ase name password 案例
python操作mysql数据库,主要就是通过pymysql模块
pip install pymysql
1)建立数据库连接对象 conn
2)通过 conn 创建操作sql的 游标对象
3)编写sql交给 cursor 执行
4)如果是查询,通过 cursor对象 获取结果
5)操作完毕,端口操作与连接
注意
1.对记录增删改默认需要commit()
准备
import pymysql
一.建立连接
conn = pymysql.connect(user='root', passwd='root', database='t5')
二.获取游标对象
# 注:游标不设置参数,查询的结果就是数据元组,数据没有标识性
# 设置pymysql.cursors.DictCursor,查询的结果是字典,key是表的字段cursor = conn.cursor(pymysql.cursors.DictCursor)
三.增删改查
创建表
sql1="create table zx(id int)"
cursor.execute(sql1)
增
#单条添加
sql2='insert into zx values(%s)'
cursor.execute(sql2,(1,))
cursor.execute(sql2,(2,))
cursor.execute(sql2,(3,))
conn.commit()
#多条添加
cursor.executemany(sql2, [(4,), (5,)])
conn.commit()
删
sql3="delete from zx where id =%s"
cursor.execute(sql3,3)
conn.commit()
改
sql4='update zx set id=10 where id =2'
cursor.execute(sql4)
conn.commit()
查
sql5='select * from zx'
cursor.execute(sql5)
#fetchone() 偏移一条取出
r1=cursor.fetchone()
print(r1)
#fetchmany(n) 偏移n条取出
r2=cursor.fetchmany(1)
print(r2)
#fetchall() 偏移剩余全部
r3=cursor.fetchall()
print(r3)
结果
{'id': 1}
[{'id': 10}]
[{'id': 4}, {'id': 5}]
结束
#释放端口与连接
cursor.close()
conn.close()
# 操作游标
# cursor.scroll(0, 'absolute') # absolute绝对偏移,游标重置,从头开始偏移
cursor.scroll(-2, 'relative') # relative相对偏移,游标在当前位置进行左右偏移
#转账案例
try:
sql1 = 'update t2 set money=money-1 where name="tom"'
r1 = cursor.execute(sql1)
sql2 = 'update t2 set money=money+1 where name="ruakei"' # 转入的人不存在
r2 = cursor.execute(sql2)
except:
print('转账执行异常')
conn.rollback()
else:
print('转账没有异常')
if r1 == 1 and r2 == 1:
print('转账成功')
conn.commit()
else:
conn.rollback()
不要自己拼接参数,交给pymysql占位填充!
sql = 'select * from user where name=%s and password=%s'
row = cursor.execute(sql, (usr, pwd))
if row:
print('登录成功')
else:
print('登录失败')
标签:back sel llb 端口 自己 ase name password 案例
原文地址:https://www.cnblogs.com/zx125/p/11595346.html