import pymysql
# 连接数据库
db = pymysql.connect(
host='数据库地址',
port=端口号 需要数字,
user='用户名',
password='密码',
database='数据库名',
charset='utf8'
)
# 创建执行sql的光标对象,返回结果已元祖显示
# cursor = db.cursor()
# 返回结果已 字段名:值 字典形式显示
cursor = db.cursor(cursor=pymysql.cursors.DictCursor)
sql = ""
# 执行sql
cursor.execute(sql)
# 关闭光标
cursor.close()
# 关闭数据库连接
db.close()
查询
data = cursor.execute(sql)
# 查询一条数据
data.fetchone()
# 查询多条数据,条数根据传参
data.fetchmany(3)
# 查询全部数据
data.fetchall()
在执行查询sql,可以使用变量接收查询结果
在获取查询结果时,需要注意指针的位置。每次获取查询结果都是从指针后开始的。指正的起始位置为0,所以会存在第一次查询得到。第二次查询不到的情况。
举个例子,假设上面代码获取的查询结果有10条,在执行fetchone()时,返回查询结果第一条,这时指针就在第一条之后。再执行fetchmany(3)时,返回的查询结果是第二条到第四条。最后执行fetchall()返回剩下的6条数据。
可以三个查询一起执行,然后再把依次注释两条执行。对比下结果。会更好理解。