使用mysql.connector 操作mysql数据库,首先需要创建连接,第二步是获得cursor,想要执行sql语句,需要调用cursor的execute方法。在上一篇教程中,我们已经向city表里写入了几条数据,现在演示如何获取这些数据
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, '深圳')
fetchone 从查询获取到的数据集合中取出一条数据
data = mycursor.fetchone() # fetchone 获取集合中的一条
print(data) # (11, '北京')
fetchmany 可以获取多条数据,需要指定获取数据条目的数量
data = mycursor.fetchmany(2) # fetchmany 获取2两条数据
print(data) # [(11, '北京'), (12, '上海')]
前面的例子里,查询获得数据都是以元组的形式返回的,这种格式不利于查看和处理,最受欢迎的格式是字典格式,这种格式需要在创建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