第3节,mysql.connector 查询数据

使用mysql.connector 操作mysql数据库,首先需要创建连接,第二步是获得cursor,想要执行sql语句,需要调用cursor的execute方法。在上一篇教程中,我们已经向city表里写入了几条数据,现在演示如何获取这些数据

1. fetchall获取查询的全部数据

import mysql.connector

# 第一步,创建连接
mydb = mysql.connector.connect(
    host="10.110.30.3",  # 数据库主机地址
    user="flink_user",  # 数据库用户名
    passwd="123456",  # 数据库密码
    port=6606,
    database='flink_db'
)

sql = "select * from city"
mycursor = mydb.cursor()        # 第二步,创建cursor

mycursor.execute(sql)           # 第三步,执行sql
datas = mycursor.fetchall()     # 第四步, fetchall 获取全部数据
for data in datas:
    print(data)

程序输出结果

(11, '北京')
(12, '上海')
(13, '广州')
(14, '深圳')

2. fetchone 和 fetchmany

fetchone 从查询获取到的数据集合中取出一条数据

data = mycursor.fetchone()      # fetchone 获取集合中的一条
print(data)   # (11, '北京')

fetchmany 可以获取多条数据,需要指定获取数据条目的数量

data = mycursor.fetchmany(2)      # fetchmany 获取2两条数据
print(data)     # [(11, '北京'), (12, '上海')]

3. 获取字典形式的返回值

前面的例子里,查询获得数据都是以元组的形式返回的,这种格式不利于查看和处理,最受欢迎的格式是字典格式,这种格式需要在创建cursor时指定dictionary

sql = "select * from city"
mycursor = mydb.cursor(dictionary=True)        # 第二步,创建cursor

mycursor.execute(sql)           # 第三步,执行sql
data = mycursor.fetchone()      # fetchone 获取集合中的一条
print(data)                     # {'id': 11, 'name': '北京'}

除了字典格式,还可以使用named_tuple格式

sql = "select * from city"
mycursor = mydb.cursor(named_tuple=True)        # 第二步,创建cursor

mycursor.execute(sql)           # 第三步,执行sql
data = mycursor.fetchone()      # fetchone 获取集合中的一条
print(data)                     # Row(id=11, name='北京')

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案