python中使用 pymysql操作MySQL数据库

本文介绍了 python中使用 pymysql操作MySQL数据库

pymysql是 python中 操作MySQL的工具包

python代码中导入pymysql

import  pymysql

创建连接

语法:conn = pymysql.connect(host=‘127.0.0.1’, port=端口号, user=‘数据库用户名’, passwd=‘密码’, db=‘数据库名’)

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='@123456', db='testdb')

创建游标

cursor = conn.cursor()

游标设置为字典类型

# 游标设置为字典类型
cursor = conn.cursor("cursor"=pymysql.cursors.DictCursor)
sql = "select * from department;"
# 执行sql语句的函数,使用下面函数进行拼接,防止SQL注入
cursor.execute(sql)
# cursor.scroll(1,mode='relative')
result = cursor.fetchone()
print(result)
输出结果:
{'id': 1, 'title': '财务'}

执行sql

cursor.execute()

用法:执行sql语句

cursor.execute(sql)

批量执行sql语句

cursor.executemany()

用法:批量执行sql语句

cursor.executemany(sql,[('销售'), ('经理')])

每次只取一条结果

cursor.fetchone()

用法:SQL执行select默认只是拿一个结果,多次执行该语句可以依次向下拿数据

游标遍历

cursor.scroll()

用法:注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置,如:

cursor.scroll(1,mode=‘relative’) # 相对当前位置移动
cursor.scroll(2,mode=‘absolute’) # 相对绝对位置移动

cursor.fetchmany() 设置返回值个数

用法:可以设置返回值的个数cursor.fetchmany(num)

cursor.execute(sql)
# cursor.scroll(1,mode='relative')
# result = cursor.fetchone()
# print(result)
result = cursor.fetchmany(2)
print(result)
输出结果:
((1, '财务'), (2, '公关'))

获取所有结果

cursor.fetchall()

用法:顾名思义就是拿到所有的结果

pymysql完整使用代码实例

import pymysql

user = input('请输入用户名称>>>')
# 连接数据库
conn  = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='testdb')

# 创建游标
cursor = conn.cursor()

# 查询是否存在该用户
sql = "SELECT uid FROM users WHERE username = %(u)s"

cursor.execute(sql, {'u': user})
# 获取到用户的id
uid = cursor.fetchone()
# print(uid[0], type(uid[0]))
if uid:
# 这里的%s如果换成%d就会报错因为execute无论传入什么类型都要用%s来占位
sql2 = "SELECT purview from power WHERE pid in 
(SELECT power_id FROM use_pow WHERE user_id = %s)"
cursor.execute(sql2, uid[0])
result = cursor.fetchall()
print(result)
else:
print("没有该用户")
cursor.close()
conn.close()
上一篇 下一篇


推荐文章

评论
说点什么吧?

发表评论

取消回复
  最新文章