您的位置:首页 > 数据库 > MySQL

pymysql的使用

2018-08-29 15:18 218 查看

PYMYSQL

import pymysql

client = pymysql.connect(
ip='127.0.0.1',  # IP
port=3306,  # 端口
user='root',  # 账号
password='',  # 密码
database='t1',  # 库
charset='utf8'  # 字符编码
)

cursor = client.cursor(pymysql.cursors.DictCursor)  # 拿到游标,将拿到的信息转换成字典

user_info = [
(3, "alex"),
(4, "lxx"),
(5, "yxx")
]
# for user in user_info:
#   sql = 'insert into t1 values(%s,"%s");' % (user[0], user[1])
#   res = cursor.execute(sql)  # 拼接sql语句

还有一种简单的操作可以取代上面的for 循环

增加一条数据到数据库

sql = 'insert into t1 values(%s,"%s")'
cursor.executemany(sql, user_info)

删除一条信息

cursor.execute('delete from t1 where id=3;')

更改信息

cursor.execute('update t1 set password="12345" where name ="lxx";')

查询语句

user_name = input('请输入账号名:').strip()
user_password = input('请输入密码:').strip()

sql = 'select id from user where name=%s and pwd=%s;'
rows = cursor.execute(sql, (user_name, user_password))

if rows:
print('登陆成功')
else:
print('账号或者密码错误')

查询语句把结果拿到

sql = 'select id from user where id>3;'
rows = cursor.execute(sql)
print(cursor.fetchall())  # 全部拿到,拿过一次第二次拿就没有
print(cursor.fetchone())  # 拿一条信息
print(cursor.fetchmany(2))  # 拿2条信息

控制指针,有2种方式(这样就可以实现重复读取信息)

cursor.scroll(0, mode='absolute')  # 绝对位置移动(从行首开始)
cursor.scroll(3, mode='relative')  # 相对当前位置移动(相对当前的位置往后移动3条信息)

try:
cursor.execute(sql)
cursor.execute(sql)
cursor.execute(sql)
client.commit()
except Exception as e:
client.rollback()  # 回溯, 如果上面的sql语句出现了错误那么就会回溯到没有插入数据的时候

client.commit()  # 要想成功执行SQL语句,必须调用commit插入到数据库
cursor.close()  # 关闭MYSQL客户端
client.close()  # 关闭连接
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  PYMSQL 使用