在使用 MySQL 数据库时,最常见的操作之一就是查询数据。本文将示例如何利用 Python 和 mysql-connector 驱动执行 SELECT 语句,从表中获取所需记录。
1. 查询表中所有列(SELECT *)
以下示例展示如何连接到数据库并读取名为 customers 表的全部数据:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="yourusername", # 替换成你的MySQL用户名
password="yourpassword", # 替换成你的MySQL密码
database="mydatabase"
)
mycursor = mydb.cursor()
# SELECT * 表示获取所有列
mycursor.execute("SELECT * FROM customers")
# fetchall() 会返回所有查询结果行
myresult = mycursor.fetchall()
for row in myresult:
print(row)
程序运行后,会逐行输出customers表中的全部记录。
2. 仅获取部分列
如果只想查询表中部分列(例如只要name和address),可以修改 SELECT 语句:
mycursor.execute("SELECT name, address FROM customers")
myresult = mycursor.fetchall()
for row in myresult:
print(row)
输出结果中将只包含name与address这两列信息。
3. 使用 fetchone() 获取单条记录
有时你只需要读取第一条记录,可以使用fetchone()方法:
mycursor.execute("SELECT * FROM customers")
one_record = mycursor.fetchone()
print(one_record)
fetchone()只会返回查询结果中的第一行。如果你继续调用fetchone(),就会返回下一行;若已到结果末尾,则返回None。
4. 注意事项
- 通过
mycursor.execute()执行SELECT语句后,先确定数据表和列名是否正确。 - 使用
fetchall()获取大量数据时,需要考虑内存使用情况。若数据量庞大,可逐条或分批获取。 - 确保已在
mysql.connector.connect()中指定正确的database,否则查询会出错。
通过以上介绍,你已经掌握了Python中查询MySQL表数据的基本方法,包括查询所有列、指定列以及获取单条记录。根据项目需求灵活运用,就能高效管理并读取数据库信息。