Python 中执行 SELECT 语句获取表数据

在使用 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. 仅获取部分列

如果只想查询表中部分列(例如只要nameaddress),可以修改 SELECT 语句:

mycursor.execute("SELECT name, address FROM customers")
myresult = mycursor.fetchall()

for row in myresult:
    print(row)

输出结果中将只包含nameaddress这两列信息。

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表数据的基本方法,包括查询所有列、指定列以及获取单条记录。根据项目需求灵活运用,就能高效管理并读取数据库信息。